zoukankan      html  css  js  c++  java
  • 【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了(【计组课题】图像和图形)

  • 相关阅读:
    进制详解:二进制、八进制和十六进制
    学编程难吗?多久能入门?
    英语和数学不好,能学编程吗?
    C语言是菜鸟和大神的分水岭
    C语言究竟是一门怎样的语言?
    通俗地理解什么是编程语言
    哪款C语言编译器(IDE)适合初学者?
    spring task
    spring静态工厂方法得到单例bean
    多个切面表达式
  • 原文地址:https://www.cnblogs.com/liez/p/5318025.html
Copyright © 2011-2022 走看看