• 【python小练】0005


    第 0005 题:你有一个目录,装了很多照片,把它们的尺寸变成都不大于 iPhone5 分辨率的大小。

    首先,iphone5的分辨率是1136x640。

    if条件句判断横(纵)向是否大于对应的iphone5像素数,若是再减少像素。

    code:

    from PIL import Image
    import glob, os
    
    def resize():
        for files in glob.glob('*.jpg'):
            filepath,filename = os.path.split(files) #分割文件名和路径名
            fname,fext = os.path.splitext(filename)
            im = Image.open(files)
            w,h = im.size
            if w > 640:
                x = w/640.0
                w = 640
                h = int(h/x)
            if h>1136:
                x = h/1136.0
                h = 1136
                w = int(w/x)
            print(w, h)
            im0 = im.resize((w,h),Image.ANTIALIAS)
            im0.save('0005'+filename)
    
    resize()

    notes:

    1. glob module的glob.glob()挑出所有'.jpg'后缀的文件

    2. os.path module的split()分割文件名和路径名,splitext()分割文件名和后缀

    3. PIL.Image.Image class的resize()函数更改分辨率,Image.ANTIALIAS,如字面意思是“抗锯齿,平滑”。

    拿其中一张700x525的图片为例:

    运行程序后效果:

    ①加了光滑化

    ②未加光滑化:

    可以看见处理后的图片尺寸变小了。至于ANTIALIAS在这里并不明显,如果两张图同时打开重叠对比,肉眼其实可以轻松发现不同。

    (凑巧这周计算机组成原理的课题是相关内容,感觉这门课最有意思的地方就是每周的小组PPT了(【计组课题】图像和图形)

  • 相关阅读:
    vue.js
    kendo ui DatePicker 时区转换
    List Except 失效 差集失效
    RabbitMQ的安装
    net core 使用 Redis
    SQLSERVER学习八:事务和锁
    SQLSERVER学习七:存储过程
    SQLSERVER学习六:函数
    SQLSERVER学习五:流程控制语句
    SQLSERVER学习四:常用检索语句
  • 原文地址:https://www.cnblogs.com/liez/p/5318025.html
Copyright © 2020-2023  润新知