#Python系列#--图形库PIL/Pillow生成验证码

user

雨橙

中国.四川.成都

世界之上、唯有远见、惟爱不变。


PIL库:Python平台上图像处理标准库
目前已经升级成Pillow。

安装Pillow
pip install pillow


下面是生成验证码的代码示例:

#!/usr/bin/python
# _*_ coding:utf-8 _*_
# author: robinn

from PIL import Image,ImageFilter,ImageDraw,ImageFont
import random

im = Image.open("2.jpg")
#解决安装Pillow之后。pycharm无代码提示问题
assert isinstance(im, Image.Image)
w,h = im.size
print("with=%s,height=%s" % (w,h))

#缩放图片尺寸,加模糊滤镜
im.thumbnail((w/2,h/2))
w,h = im.size
im = im.filter(ImageFilter.BLUR)
im.save("2_thumb.jpg","jpeg")

#生成验证码

#随机生成字母
def getrand():
    return chr(random.randint(65, 90))

# 随机颜色
def rndColor():
    return (random.randint(64, 255), random.randint(64, 255), random.randint(64, 255))

width = 60 * 4
height = 60
img = Image.new("RGB",(width,height),(255,255,255))
imgfont = ImageFont.truetype("Moderan.ttf",36)
dw = ImageDraw.Draw(img)

#填充每个像素:
for x in range(width):
    for y in range(height):
        dw.point((x, y), fill=rndColor())

#输出文字:
for t in range(4):
    dw.text((60 * t + 10, 10), getrand(),font=imgfont)

img = img.filter(ImageFilter.EMBOSS)
# img = img.filter(ImageFilter.BLUR)
img.save("yzm.jpg","jpeg")

以上代码仅供参考。关于Python图形化操作的库很多。除了PIL,Pillow还有Mahotas,Pymorph,imagemagick等。
posted at