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

例如有一幅图,文件名为“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’,上述代码的新文件名和原文件名相同。

  • 6
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值