通过案例实战深入认识python图像处理库Pillow

什么是Pillow

首先我们需要了解一下PIL(Python Imaging Library),它是Python2中非常强大的图像处理标准库,但只支持到Python2.7。Pillow是在PIL的基础上创建了兼容的版本,支持最新Python 3.x,又加入了许多新特性。

安装

pip install pillow

 

其中Image是pillow库的一个常用的模块,提供了很多图片处理的方法。

pillow图像处理的简单使用

图片信息显示

 from  PIL  import  Image  #  操作图片的类型 


 #  加载图片 
image = Image.open( '  test1.jpg  '  )  #  打开图片  #  image.show() 

 #  查看图像大小(宽度,高度)(6621, 4414) 
 print  (image.size)  #  # 获取模式 
 print (image.mode)  #  RGB  #
#
# 显示的文件的格式 JPEG print (image.format) #
#
# 图片的详细信息{'jfif': 257, nsity': (72, 72......), print (image.info) #
#
# 保存为另一张图片(可以更改图片的格式) image.save( ' test2.bmp ' )
 #  Python视频教程、源码、电子书、软件、解答、学习路线图、加群 924040232 

修改图片

修改图片尺寸

 from  PIL  import  Image, ImageFilter  #  读取图片 
image = Image.open( '  test.jpg  '  )  print  (image.size)  #  修改图片的尺寸,以像素为单位)以二元组表示:(宽度,高度) 
image1 = image.resize((image.size[0]//3, image.size[1]//3 ))  #  image1.show()  #  #  #  保存下来 
image1.save( '  test.jpg  ' )

裁剪旋转图片

 from  PIL  import  Image, ImageFilter  #  读取图片 
image = Image.open( '  test1.jpg  '  )  #  裁剪图片  #  设置一个边缘间距[left, upper, right, lower] 左上角和右下角 
image1 = image.crop(box=(0, 0, 2000, 2000))  #  600 * 336 
 image1.show()  #  图片旋转 
image2 = image.rotate(45 )
image2.show()

为图片添加水印

可以为一张图片加上二维码

 from  PIL  import  Image  #  读取图片 
image = Image.open( '  test.jpg  '  )  #  读取粘贴的图片 
paste_image = Image.open( '  erweima.jpg  '  )
如果需要粘贴的图片较大,可以通过resize()修改一下尺寸
image.paste(paste_image)
# 默认把图片粘贴到左上角 image.show()

 

 

 from  PIL  import  Image  #  读取图片 
image = Image.open( '  test.jpg  '  )  #  读取粘贴的图片 
paste_image = Image.open( '  erweima.jpg  '  )  #  也可以指定需要粘贴的位置 设置二维码位置为右下角 
position = (image.size[0] - paste_image.size[0], image.size[1] - paste_image.size[1 ])
image.paste(paste_image,position)
image.show()
image.save(
" syzp.jpg " )

 

 

生成gif图片

 from  PIL  import  Image

images
= [] for i in range(5 ):
im
= Image.open( ' mkgif/{}.png ' .format(i + 1 ))
images.append(im)
images[0].save(
" test.gif " , save_all=True, loop=True, append_images=images[1:], duration=500)

 

 

标签: python

添加新评论