python 之PIL库

    科技2022-07-16  137

      python的第三方库PIL提供了对图片的相关的方法。今天通过制作一个验证码来介绍一下PIL库。

    1.image模块

    #使用open打开文件,传入一个图片地址,返回一个实例化图片对象,调用show来观看图片 pic=img.open(".\image\woman.jpg") pic.show()

     

     

     

     """

    new(mdoe,(width,height),color),mode是图片的模式,常用的有RGB,L(灰度模式),第2个参数是高度和宽度,color是背景色,可用rgb或者英文,返回一个图片对象

    save(path) 将生成的图片保存到本地文件中,可以保存为jpg,png,jpeg和bmp。

    """ pic1=img.new("RGB",(300,300),color="black")

    pic.save(r".\image\new.jpg")

     

    """

    使用resize()可实现对图片大小的改变

    """

    width,height=pic.size print(width,height) width=width/2 height=height/2 pic.resize((width,height))

    不想写了直接上最终的一个小程序----写一个生成验证码图片

    “”“

    验证码

    ”“”

    from PIL import Image as img from PIL import ImageFont as imgf from PIL import ImageDraw as imgd from PIL import ImageFilter import random #创建一个画布 pic=img.new("RGB",(100,50),"white") #pic.show() #添加背景,使用point对每一个像素点设置颜色 draw=imgd.Draw(pic) for i in range(100):     for j in range(50):         r=random.randint(0,120)         g=random.randint(0,120)         b=random.randint(0,120)         draw.point((i,j),fill=(r,g,b)) #pic.show() #添加滤镜,BLUE是对图片进行模糊处理 pic.filter(ImageFilter.BLUR) #添加字体,将字母和和数字保存在s中,通过随机生成下标来实现取值 s="aqwertyuiopasdfghklzxcvbnmQWERTYUIOPASDFGHJKLZXCBNM1234567890" s1="" for i in range(4):     s1=s1+s[random.randint(0,len(s))] print(s1) #添加中文编码,中文在GBK编码中是0x4e00-0x9fa5,由于后面的汉字较为生僻,故我们使用前1000个左右的汉字 s2="" for i in range(4):    s2+=chr(random.randint(0x4e00,0x4fff))#中文编码为ox4eoo-0x9fa5 #print(s2)

    #使用truetype生成一个字体对象,包括字体的格式和大小,字体格式可在“C:\Windows\Fonts\”中查看 font=imgf.truetype("C:\Windows\Fonts\STXINGKA.TTF",20)

    #Draw相当于胶水,把字体粘贴到图片上,使用Draw()将图片传入,使用text将字体传入,实现粘贴 ,draw=imgd.Draw(pic) draw.text((0,0),s2,"blue",font) pic.show()

     

    Processed: 0.008, SQL: 8