当前位置:   article > 正文

利用python更改图片格式和分辨率_python 图像的大小 尺寸 分辨率

python 图像的大小 尺寸 分辨率

手头有许多图片,需要对图片进行一下预处理,包括统一格式为jpg,还有统一一下分辨率。这里采用python 来进行处理。

1.统一格式

手头的图片格式有PNG和JPG的,这里统一为JPG格式的。
先贴上代码再做说明:

import os
import string
dirName = "D:\picturetool\\new_picture\\"

li=os.listdir(dirName)

for filename in li:
    newname = filename
    newname = newname.split(".")
    if newname[-1]=="png":
        newname[-1]="jpg"
        newname = str.join(".",newname)
        filename = dirName+filename
        newname = dirName+newname
        os.rename(filename,newname)
        print(newname,"updated successfully")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

将需要处理的图片放到一个文件夹里,然后将该文件夹的路径赋值给dirName这个变量。运行就可以了。

2.统一分辨率

先贴代码:

import os
from PIL import Image

def resize_image():
    # 获取输入文件夹中的所有文件
    files = os.listdir("D:\picturetool\\new_picture\\")

    output_dir = "D:\picturetool\samesize_picture2\\"
    # 判断输出文件夹是否存在,不存在则创建
    if not os.path.exists(output_dir):
        os.makedirs(output_dir)

    for file in files:
        img = Image.open("D:\picturetool\\new_picture\\"+ file)
        if img.mode == "P":
            img = img.convert('RGB')
        if img.mode == "RGBA":
            img = img.convert('RGB')
        img = img.resize((480, 240), Image.ANTIALIAS)
        img.save(os.path.join(output_dir, file))


if __name__ == '__main__':
    resize_image()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

这里处理采用了PIL这个库进行处理。首先将要处理的图片放在一个文件夹,将文件夹地址赋值给一个变量。我这里是将图片放在 new_picture 这个文件夹里, 然后赋值给 file 这个变量,再将需要输出的文件夹地址赋值给另一个变量。
在调用resize这个函数前,首先要对图片模式进行统一。PIL库里图片有多种模式,先统一为RGB,不然在统一分辨率时会报错。cannot write mode P as JPEG
这部分可以参照:

https://blog.csdn.net/z704630835/article/details/84968767

统一模式后输入需要的分辨率然后进行运行即可。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/403447
推荐阅读
相关标签
  

闽ICP备14008679号