Python批量处理图片Resize与格式转换实战
本文介绍利用Python批量处理图片的方法。首先通过os模块遍历目录,结合cv2模块将指定文件夹内的JPG图片统一调整为300x300像素并保存。其次解决在含多种图像文件夹中批量将JPG转换为PNG时遇到的重命名报错问题,提供基于os.rename的正确转换代码。适用于需要快速统一图片尺寸或格式的场景。
Python批量调整图片尺寸实现
出差制作PPT时需要插入图片,但原图尺寸过大必须进行resize处理。面对十几张图片,逐一手动处理较为繁琐。鉴于近期正在学习Python,通过实际项目来巩固知识是最佳途径,因此编写了一段批量处理图片resize的代码。在此过程中,深入熟悉了Python内置的os模块以及OpenCV库中的cv2模块。
具体实现代码如下:
// python code
import os
import cv2
''' 设置图片路径,该路径下包含了14张jpg格式的照片,名字依次为0.jpg, 1.jpg, 2.jpg,...,14.jpg'''
DATADIR="D:\Code\ToolBox"
'''设置目标像素大小,此处设为300'''
IMG_SIZE=300
'''使用os.path模块的join方法生成路径'''
path=os.path.join(DATADIR)
'''使用os.listdir(path)函数,返回path路径下所有文件的名字,以及文件夹的名字,
例如,执行下行代码后,img_list是一个list,值为['0.jpg','1.jpg','10.jpg','11.jpg','12.jpg','13.jpg','14.jpg',
'2.jpg','3.jpg','4.jg', '5.jpg', '6.jpg', '7.jpg',
'8.jpg', '9.jpg'],注意这个顺序并没有按照从小到大的顺序排列'''
img_list=os.listdir(path)
ind=0
for i in img_list:
'''调用cv2.imread读入图片,读入格式为IMREAD_COLOR'''
img_array=cv2.imread(os.path.join(path,i),cv2.IMREAD_COLOR)
'''调用cv2.resize函数resize图片'''
new_array=cv2.resize(img_array,(IMG_SIZE,IMG_SIZE))
img_name=str(ind)+'.jpg'
'''生成图片存储的目标路径'''
save_path='D:\\Code\\resized\\'+str(ind)+'.jpg'
ind=ind+1
'''调用cv.2的imwrite函数保存图片'''
cv2.imwrite(save_path,new_array)
批量将JPG转换为PNG的解决方案
补充知识:Python批量修改JPG为PNG(针对包含大量图像的文件夹场景)
经发现,网络上部分批量将JPG转换为PNG的代码在针对包含多种图像的文件夹执行rename操作时,常会出现“系统找不到指定文件”的错误。
import os
'''要重命名的图片路径'''
file_path = "pngpairdataset/test"
files = os.listdir(file_path)
for file in files:
if file.endswith('jpg'):
#要指明重命名之后的路径
src = os.path.join(file_path, file)
r_name = file.split('.')[0] + '.png'
dct = os.path.join(file_path, r_name)
os.rename(src, dct)
以上关于基于Python代码批量处理图片resize及格式转换的内容即为分享的全部,希望能为大家提供参考,也希望大家多多支持本站。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













