利用python更改图片格式和分辨率

tech2022-10-18  112

手头有许多图片,需要对图片进行一下预处理,包括统一格式为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")

将需要处理的图片放到一个文件夹里,然后将该文件夹的路径赋值给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()

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

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

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

最新回复(0)