使用pillow处理图像

本文介绍了Pillow库的使用,包括安装方法,以及打开图片、查看图片信息、剪切、制作缩略图、缩放、黏贴、翻转和旋转、操作像素、使用滤镜等操作。还给出了一个简单练习,用像素替换方式更改证件照背景,但人物边缘颜色处理效果欠佳。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、安装pillow

 pip install pillow
 

2、打开图片

from PIL import Image
im = Image.open('./templates/images/002-01.jpg')
im.show()

3、图片信息

print(im.format,im.size,im.mode)

4、剪切

ret = 200,0,300,50
im.crop(ret).show()

需要传入一个x0,y0,x1,y1 的集合

5、缩略图

size = 128,128
im.thumbnail(size)
im.show()

很明显制作缩略图会覆盖原图片对象。 

6、缩放

im2 = im.resize((100,600))
im2.show()

重设分辨率返回新的对象而不是修改原对象 

7、黏贴

im.paste(im2,(300,100))
im.show()

原地修改,不返回新的对象,不需要新变量接收 

8、翻转和旋转

im.rotate(90).show()

 

im.transpose(Image.FLIP_LEFT_RIGHT).show()

9、操作像素

for x in range(100,200):
    for y in range(0,100):
        im.putpixel((x,y),(128,128,128))

im.show()

10、滤镜

im.filter(ImageFilter.CONTOUR).show()

简单的练习:

使用像素替换的方式更改证件照的背景。

#目标图片
im1 = Image.open('./templates/tup.png')
#需要替换的颜色
im2 = Image.open('./templates/tu3.png')

im1_c1 = im1.getpixel((0, 0))
im2_c2 = im2.getpixel((0, 0))

#红色背景RGB的主要分布
color = ((x,y,z) for x in range(150,192) for y in range(12,38) for z in range(22,48))

width, height = im1.size


for x in range(width):
    for y in range(height):
        dot = (x,y)
        if im1.getpixel(dot) in color:
            im1.putpixel(dot, im2_c2)
im1.show()
im1.save('./templates/tup1.png')

将红色背景替换为蓝色背景。实际上的效果其实不是很好,人物边缘颜色比较难处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值