首页> TA的主页 > python,使用PIL库对图片进行操作

python,使用PIL库对图片进行操作

来自: 贾英 发布于: 2017-08-21 10:19:23
浏览(677) 评论(0) 赞(6) 收藏(0)

在做识别验证码时,需要对验证码图片进行一些处理,所以就学习了一下PIL的知识,下面是我总结的一些常用方法。

注明:图片的操作都需要Image库,所以要使用import Image导入库

1.打开图片

import Image
img=Image.open("code.jpg")

注:有些图片名称是包含中文的,就需要在“”前加上u,例:img=Image.open(u"阿布.jpg")

以下各个操作均是基于原图进行的修改,原图为:

2.展示图片

img.show()

 

3.打印图片信息

print img.mode,img.size,img.format

打印结果如下:

RGB (508, 493) JPEG

 

4.保存图片

img.save("img1.png","png")

说明:img为一个图片,存为一个名叫img1的图片,格式为png。后面的png不写也可以,直接按照文件名的后缀.png存为相应格式了。

 

5.创建一个新的图片

import Image
newImg = Image.new("RGBA",(640,480),(0,255,0))
newImg.save("newImg.png","PNG")

结果如下:

说明:“RGBA”为图片的mode,(640,480)为图片尺寸,(0,255,0)为图片颜色,颜色第四位为alpha值,可填可不填。

 

6.改变图片尺寸

smallimg=img.resize((128,128),Image.ANTIALIAS)

说明:(128,128)为更改后的尺寸,Image.ANTIALIAS有消除锯齿的效果。

没有消除锯齿的效果如下图:

7.图片类型转换convert

img=img.convert("RGBA")

说明:将img图片的mode转换为"RGBA"格式

 

8.img.split()分割通道

bands=img.split()
rIm=bands[0]
gIm=bands[1]
bIm=bands[2]
aIm=bands[3]

说明:将img代表的图片分割通道。

如果是RGBA,分割后就有四个通道。bands[0]、bands[1]、bands[2]、bands[3]分别代表了R(red)、G(green)、B(blue)、A(alpha)四个通道。

 

9.merge合并通道

img=img.convert("RGBA")
bands=img.split()
rIm=bands[0]
gIm=bands[1]
bIm=bands[2]
aIm=bands[3]
remadeImage=Image.merge("RGBA",(rIm,gIm,bIm,aIm))
remadeImage.save("remadeImage.png","png")

说明:使用Image.merge("RGBA",(rIm,gIm,bIm,aIm))将通道合成为一个图片,"RGBA"格式的图片通道分为R(red)、G(green)、B(blue)、A(alpha)。rIm,gIm,bIm,aIm分别为自定义的R、G、B、A。

 

10.粘贴图片

import Image
img=Image.open(u"阿布.jpg")
img1=Image.open("code.jpg")
img.paste(img1,(0,10))img.save("img2.png")

说明:img.paster(img1,(0,10)是将图片img1粘贴到图片img上。(0,10)是粘贴的坐标位置。


打赏

他们都在说 (共0 条评论)

我要说

你好,请后再进行评论!

评论请先登录

客户端

客户端

触屏版

触屏版

网页版

网页版

分享到: