利用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")

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

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

  • 5
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值