【今日python】用Pillow实现图像处理:从基础到高级的图像编辑技巧!
今天咱玩玩Pillow,这玩意儿在Python里处理图片贼好用,从简单改大小到加滤镜,都能搞定。
##安装和导入Pillow
先装上,命令行里敲pipinstallPillow就行。然后在代码里导入:
fromPILimportImage
##打开和保存图像
这步简单,跟开冰箱门一样:
im=Image.open("my_cat.jpg")#替换成你的图片路径
im.save("my_cat_copy.png")#保存成png格式
##调整图像大小
图片太大?想压缩一下?小case!
size=(200,200)#新的尺寸
im.thumbnail(size)#注意是thumbnail,等比例缩放
im.save("my_cat_small.jpg")
温馨提示:thumbnail方法是等比例缩放,如果想要强制改成特定尺寸,用resize方法,不过图片可能会变形,跟照哈哈镜似的。
##旋转和翻转图像
想把猫咪倒过来?或者旋转90度?
im_rotated=im.rotate(45)#旋转45度,逆时针
im_flipped=im.transpose(Image.FLIP_LEFT_RIGHT)#水平翻转,还有其他翻转方式,自己查文档
im_rotated.save("my_cat_rotated.jpg")
im_flipped.save("my_cat_flipped.jpg")
##裁剪图像
只想留下一部分图片,就像用剪刀剪一样:
box=(100,100,400,400)#(左上角x,左上角y,右下角x,右下角y)
region=im.crop(box)
region.save("my_cat_cropped.jpg")
这box就像在图片上画个框,框里的就是你要留下的部分。
##颜色转换
把彩色照片变成复古的黑白照:
im_gray=im.convert("L")#"L"表示灰度模式
im_gray.save("my_cat_gray.jpg")
##图像增强
Pillow里有好多滤镜,可以给图片加点特效:
fromPILimportImageFilter
im_blurred=im.filter(ImageFilter.BLUR)#模糊效果
im_sharpened=im.filter(ImageFilter.SHARPEN)#锐化效果
im_blurred.save("my_cat_blurred.jpg")
im_sharpened.save("my_cat_sharpened.jpg")
还有其他滤镜,像ImageFilter.DETAIL、ImageFilter.EDGE_ENHANCE之类的,可以自己试试,看看有啥惊喜。
##绘制图形和文字
想在图片上画点东西,或者加点文字?
fromPILimportImageDraw
draw=ImageDraw.Draw(im)
draw.line((0,0)+im.size,fill=128)#画一条对角线
draw.text((10,10),"Hello,Cat!",fill="red")#加点文字
im.save("my_cat_with_text.jpg")
这fill参数可以设置颜色,可以用颜色名称,也可以用RGB值,比如(255,0,0)表示红色。
##像素操作
想玩点高级的?可以直接操作像素:
pixels=im.load()#获取像素数据
foriinrange(im.size[0]):
forjinrange(im.size[1]):
r,g,b=pixels[i,j]#获取每个像素的RGB值
#这里可以对像素进行各种操作,比如修改颜色
pixels[i,j]=(r,g,0)#把蓝色通道设为0
im.save("my_cat_modified.jpg")
温馨提示:像素操作比较耗时,图片大了可能会有点慢。
##图像通道和模式
每个图片都有颜色模式,RGB最常见,还有RGBA(带透明通道)、CMYK等等。可以用im.mode查看图片的模式。还可以分离通道,比如:
r,g,b=im.split()#分离RGB通道
这三个变量r、g、b就分别代表了红、绿、蓝三个通道的图像。
今天就先聊到这儿,Pillow还有好多功能,自己去探索吧!这玩意儿玩熟了,处理图片还不是小菜一碟?
领取专属 10元无门槛券
私享最新 技术干货