python批量循环图片识别_python如何进行批量图片处理

本文介绍了使用Python的PIL库批量处理图片,包括读取、缩放和保存图片,适用于调整图片大小和转换图片格式。通过示例代码展示了如何遍历指定目录下的所有.jpg和.png文件,进行图片尺寸修改,并提供了批量处理整个文件夹中图片的通用方法。
摘要由CSDN通过智能技术生成

python批量图片处理

本文实例讲述了python批量图片处理。分享给大家供大家参考,具体如下:

#!/usr/bin/python

#coding:utf-8

import os

from PIL import Image

#源目录

MyPath = 'C:/Users/Eric/Desktop/python_text/20161214/test_Image/'

#输出目录

OutPath = 'C:/Users/Eric/Desktop/python_text/20161214/outpath/'

def processImage(filesoure, destsoure, name, imgtype):

'''

filesoure是存放待转换图片的目录

destsoure是存在输出转换后图片的目录

name是文件名

imgtype是文件类型

'''

imgtype = 'jpeg' if imgtype == '.jpg' else 'png'

#打开图片

im = Image.open(filesoure + name)

#缩放比例

rate =max(im.size[0]/640.0 if im.size[0] > 60 else 0, im.size[1]/1136.0 if im.size[1] > 1136 else 0)

if rate:

im.thumbnail((im.size[0]/rate, im.size[1]/rate))

im.save(destsoure + name, imgtype)

def run():

#切换到源目录,遍历源目录下所有图片

os.chdir(MyPath)

for i in os.listdir(os.getcwd()):

#检查后缀

postfix = os.path.splitext(i)[1]

if postfix == '.jpg' or postfix == '.png':

processImage(MyPath, OutPath, i, postfix)

if __name__ == '__main__':

run()

希望本文所述对大家Python程序设计有所帮助。

python批量修改图片大小的方法

本文实例为大家分享了python批量修改图片大小的具体代码,供大家参考,具体内容如下

引用的模块

from PIL import Image

Image的使用

def resize_image(img_path):

try:

mPath, ext = os.path.splitext(img_path)

if astrcmp(ext, ".png") or astrcmp(ext, ".jpg"):

img = Image.open(img_path)

(width, height) = img.size

if width != new_width:

new_height = int(height * new_width / width)

out = img.resize((new_width, new_height), Image.ANTIALIAS)

new_file_name = '%s%s' % (mPath, ext)

out.save(new_file_name, quality=100)

Py_Log("图片尺寸修改为:" + str(new_width))

else:

Py_Log("图片尺寸正确,未修改")

else:

Py_Log("非图片格式")

except Exception, e:

print e

def printFile(dirPath):

print "file: " + dirPath

resize_image(dirPath)

return True

引用

if __name__ == '__main__':

path = "E:\pp\icon_setting.png"

new_width = 50

try:

b = printFile(path)

Py_Log("\r\n **********\r\n" + "*********图片处理完毕*********" + "\r\n **********\r\n")

except:

print "Unexpected error:", sys.exc_info()

上述是修改单一的图片,若要批量修改文件夹下的所有图片,则要使用循环,在上面基础添加 例如:

def BFS_Dir(dirPath, dirCallback=None, fileCallback=None):

queue = []

ret = []

queue.append(dirPath);

while len(queue) > 0:

tmp = queue.pop(0)

if os.path.isdir(tmp):

ret.append(tmp)

for item in os.listdir(tmp):

queue.append(os.path.join(tmp, item))

if dirCallback:

dirCallback(tmp)

elif os.path.isfile(tmp):

ret.append(tmp)

if fileCallback:

fileCallback(tmp)

return ret

第一个参数为图片的目录路径,第二个参数是(目录路劲的回掉方法),第三个参数是图片处理回掉方法

源代码参考:Python_Tool

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持码农之家。

以上就是本次给大家分享的关于java的全部知识点内容总结,大家还可以在下方相关文章里找到相关文章进一步学习,感谢大家的阅读和支持。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值