Python3第三方模块之Pillow模块的使用详解
一、安装Pillow
如果你安装了anaconda,pillow就可以直接用了,否则你需要通过这个命令安装使用。
pip install pillow
如果遇到 Permission denied
安装失败,请加上 sudo
重试
二、操作图像
来看看最常见的图像缩放操作,只需三四行代码:
from PIL import Image #打开一个jpg文件,注意是当前路径: im = Image.open('test.jpg') #获得图像尺寸: w,h = im.size print('Original image size: %sx$s'%(w,h)) #缩放到50%: im.thumnail((w//2,h//2)) print('Resize image to: %sx%s'%(w//2,h//2)) #把缩放后的图像用jpeg格式保存 im.sava('thumbnall.lph')
其他功能如切片、旋转、滤镜、输出文字、调色板等一应俱全。
比如,模糊效果也只需几行代码:
from PIL import Image, ImageFilter #打开一个jpg图像文件,注意是当前路径: im= Image.open('test.jpg') #应用模糊滤镜: im2 =im.filter(ImageFilter.BLUR) im2.save('blur.jpg','jpeg')
PIL的 ImageDraw
提供了一系列绘图方法,让我们可以直接绘图。比如要生成字母验证码图片:
from PIL import Image, ImageDraw, ImageFont, ImageFilter import random #随机字母 def rndChar(): return chr(random.randint(65,90)) #随机颜色: def rndColor(): return (random.randint(64, 255), random.randint(32,127)) # 240 x 60: width = 60 * 4 height = 60 image = Image.new('RGB', (width, height), (255, 255, 255)) # 创建Font对象: font = ImageFont.truetype('Arial.ttf', 36) # 创建Draw对象: draw = ImageDraw.Draw(image) # 填充每个像素: for x in range(width): for y in range(height): draw.point((x, y), fill=rndColor()) # 输出文字: for t in range(4): draw.text((60 * t + 10, 10), rndChar(), font=font, fill=rndColor2()) # 模糊: image = image.filter(ImageFilter.BLUR) image.save('code.jpg', 'jpeg')
我们用随机颜色填充背景,再画上文字,最后对图像进行模糊,得到验证码图片如下:
其他问题
如果运行的时候报错:
IOError: cannot open resource
这是因为PIL无法定位到字体文件的位置,可以根据操作系统提供绝对路径,比如:
'/Library/Fonts/Arial.ttf'
到此这篇关于Python3第三方模块之Pillow模块的使用详解的文章就介绍到这了,更多相关Python3的Pillow模块内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Python中使用pypdf2合并、分割、加密pdf文件的代码详解
这篇文章主要介绍了Python中使用pypdf2合并、分割、加密pdf文件的代码,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下2019-05-05python使用正则表达式(Regular Expression)方法超详细
这篇文章主要介绍了python使用正则表达式(Regular Expression)方法超详细,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2019-12-12
最新评论