vfp 禁止image框随图片变_Python: 使用pillow库快速处理图片(1)

Pillow库是python中比较方便,好用的处理图片的库之一。

### 安装pillow
pip install pillow
#### 如果你使用的是Anaconda,其自带也pillow 可以使用conda进行更新
conda update xxx

首先导入相关库

from PIL import Image, ImageEnhance, ImageDraw, ImageFilter

1.查看图片基本信息

house = Image.open('./images/house.png')
#打印图片信息
print('format: {} size: {} mode:{}'.format(house.format,house.size,house.mode)) 
house.show() # 显示图片

format: PNG size: (640, 470) mode:RGBA

format:图片的格式信息

size:图片在尺寸信息

mode:图片的模式(RGB、RGBA、JEPG等)

2.创建图片缩略图

house_t=house.copy() # 复制一份图片
house_t.thumbnail((200,200))  #创建 200*200的缩略图
house_t.save('./images/house_t_200.png')  #保存缩略图

3.修改图片大小

house_r = Image.open('./images/house.png').resize((800,600))
house_r.show()
house_r.save('./images/house_r.png') # 保存修改后的图片

4.旋转图片

house_r=house_r.rotate(45) # 旋转45度
house_r.show()

771f2f817ced7966e6c34dcd9f53e2df.png

5.裁剪图片

house_crop = house.crop([100,100,300,280])
house_crop.show()
house_crop.save('./images/house_crop.png')

4547531aa8e834128d5117b846bea751.png

6.图片水平翻转

ImageOps 库包含了对于图像的一些基本操作方法,例:图像对比度,裁剪、灰度色彩、亮度等。

from PIL import ImageOps
house_m = ImageOps.mirror(house_r)
house_m.show()

cdc270a007b33b7279c277e395fbc5b6.png
翻转后

7.垂直翻转图像

filp_house = ImageOps.flip(house_2)
filp_house.show()

2b17814279b81d7fdd54b0deebd7248e.png
垂直翻转

8.向图像添加边框

image_boder = ImageOps.expand(house.copy(),border=20,fill='red')
image_boder.show()

3a5f0ed16e9442042bb6a63c0c0c9597.png

9.图片上绘制图形

ImageDraw模块提供简单的二维图形,可以使用此模块创建新图像、对现有图像进行注释或润色,以及动态生成图形以供Web使用.

image_shape = house.copy()#创建一份图片的copy
#[(250,79),(130,210)] 为左上角坐标、右下角坐标
ImageDraw.Draw(image_shape).rectangle([(250,79),(130,210)],width=5,outline='red')
#[(100,100),(300,450)]直线的起始及终点座标
ImageDraw.Draw(image_shape).line([(100,100),(300,450)],width=5,fill='blue')
image_shape.show()

5b363657327331d029556d75e15ea028.png

10.粘贴图片

将tree图片贴到house图片上

tree = Image.open('./images/tree.png').resize((200,200))
house_copy=house.copy()

house_copy.paste(tree,(100,100))
house_copy.show()

df7c139cce441413a7f676e3a91b473d.png

11. 调整图像亮度

ImageEnhance模块包含用于图像增强的方法。

ce214835f97d5ee6e6a4c5e5d829c1ec.png
原图
dark_sky=Image.open('./images/dark-sky.jpg')
dark_sky.show()
dark_sky = ImageEnhance.Brightness(dark_sky).enhance(2)
dark_sky.show()

7be5f21744cbeaacbf506cd8616d142d.png
亮度增加后

12.图像增强过滤器

dark_sky_filter = Image.open('./images/dark-sky.jpg')
dark_sky_filter=dark_sky_filter.filter(ImageFilter.SHARPEN)#锐化图像
# BLUR,CONTOUR,DETAIL,EDGE_ENHANCE,EDGE_ENHANCE_MORE,FIND_EDGES,SHARPEN,
# SMOOTH,SMOOTH_MORE,SHARPEN
dark_sky_filter.show()

0d39290291c849f78796910dfb26425f.png

13.修改图片颜色

# 修改颜色
house = Image.open('./images/house.png')
print(house.mode)
house.show()
r, g, b, a = house.split()
house_color = Image.merge('RGBA',(a,g,b,r)) #通过将各通道信息对换改变颜色
house_color.show()

263f57d997b7b7cd559970258c241e1a.png

14.彩色转换变黑白

# 图像转换为黑白色
house_bw = house.convert('L')
house_bw.show()

a3fa1769e7ead80693d088a912dd7279.png

15.修改图片透明度

house = Image.open('./images/house.png').resize((800,600))
dark_sky = Image.open('./images/dark-sky.jpg').resize((800,600))
r,g,b,alpha = house.split()

# alpha 透明度
alpha = alpha.point(lambda i: i>0 and 100)

com_image = Image.composite(house,dark_sky,alpha)
com_image.show()

d12bbcb50aa361db75e47f79cc153bcc.png

16.使用常量alpha在两个输入图像之间插入来创建新图像

house = Image.open('./images/house.png').resize((800,600))
sun = Image.open('./images/sun.png').resize((800,600))
print(house.mode)
blend = Image.blend(house,sun,0.2)
blend.show()
# rgba与rgb,jpeg不能blend

d8ed807f16571d7ba8a8a22414d44249.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值