首页 > 编程语言 > 详细

python PIL读取图像转换为灰度图及另存为其它格式(也可批量改格式)

时间:2015-11-03 22:30:19      阅读:426      评论:0      收藏:0      [点我收藏+]

例如有一幅图,文件名为“a.jpg‘. 读取: ``` from PIL import Image #或直接import Image im = Image.open(‘a.jpg‘) ``` 将图片转换成灰度图 --------- ``` im1 = im.convert(‘L‘) ``` 所以 打开图片并转换成灰度图的方法是: --------------- ``` im = Image.open(‘a.jpg‘).convert(‘L) ``` 转换图像格式: ------- ``` im.save(‘aa.gif‘) ``` 以上代码把a.jpg 打开并转换成灰度图(像素值在0-255之间),然后保存成aa.gif格式。可以把上一行代码中‘aa.gif‘改成路径加文件名,就可以保存到自己想要保存的地方了。 批量转换图像格式: --------- 如果要大量处理图像,例如有文件夹b,里边保存许多图片如aa.gif一类的,那么如下命令可以获得: ``` import os a = os.listdir(‘b‘) ``` 列表a中会把图片名无序存储 a = [ ‘aa.gif‘,[..],..],全是字符串。当然以上命令不仅可以用在这里,其它地方也是一样的,获得当前路径b下边所有的内容。 下面将创建一个包含文件夹中所有图像文件名的文件名列表: ``` import os def get_path(path): ‘‘‘返回目录中所有JPG图像的文件名列表‘‘‘ return [os.path.join(path,f) for f in os.listdir(path) if f endswith(‘.jpg‘)] ``` 要做其它使用,只要在上述代码稍做改动就可以。如去掉后边的if 语句,则返回所有格式的文件名。如调用 ``` pth = get_path(‘b‘) ``` 则pth = [‘b/aa.gif‘,[..],..]的内容,这就是path.join的作用。 然后将文件名列表pth中读取所有文件,并换成JPEG格式: ``` from PIL import Image import os for img in pth: outfile = os.path.splitext(img)[0] + ‘.jpg‘ if img != outfile: try: Image.open(img).save(outfile) except IOError: print ‘can not convert ‘,img ``` 原图像不论是什么格式,除了后缀变为‘jpg‘,上述代码的新文件名和原文件名相同。

python PIL读取图像转换为灰度图及另存为其它格式(也可批量改格式)

原文:http://www.cnblogs.com/Bryan-Tian/p/4934501.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!