python模块之PIL模块(生成随机验证码图片)

python模块之PIL模块(生成随机验证码图片)

PIL简介

PIL:是Python Image Library的缩写,图像处理的模块。主要的类包括Image,ImageFont,ImageDraw,ImageFilter

PIL的导入

首先需要安装一下pillow包

pip install pillow

然后就可以调用PIL里的类了
from PIL import Image
from PIL import ImageFont
from PIL import ImageDraw
from PIL import ImageFilter

PIL常用方法

open()  #打开图片
 
new(mode,size,color)   #创建一张空白图片
 
save("test.gif","GIF")   #保存(新图片路径和名称,保存格式)
 
size()   #获取图片大小
 
thumbnail(weight,high)   #缩放图片大小(宽,高)
 
show()    #显示图片
 
blend(img1,img2,alpha)   #两张图片相加,alpha表示img1和img2的比例参数。
 
crop()   #剪切,提取某个矩阵大小的图像。它接收一个四元素的元组作为参数,各元素为(left, upper, right, lower),坐标系统的原点(0, 0)是左上角。
 
rotate(45)    #逆时针旋转45度
 
transpose()    #旋转图像
    transpose(Image.FLIP_LEFT_RIGHT)       #左右对换。
    transpose(Image.FLIP_TOP_BOTTOM)       #上下对换。
    transpose(Image.ROTATE_90)             #旋转 90 度角。
    transpose(Image.ROTATE_180)            #旋转 180 度角。
    transpose(Image.ROTATE_270)            #旋转 270 度角。
 
paste(im,box)#粘贴box大小的im到原先的图片对象中。
 
convert()    #用来将图像转换为不同色彩模式。
 
filters()     #滤镜
    BLUR   #虚化
    EMBOSS
resize((128,128))     #resize成128*128像素大小
 
convert("RGBA")    #图形类型转换
 
getpixel((4,4))   #获取某个像素位置的值
 
putpixel((4,4),(255,0,0))    #写入某个像素位置的值

PIL应用

我们主要用PIL来生成一张验证码的随机图,下面,我们就一步步来做一个小示例
1、生成一张固定尺寸固定颜色的图片
from PIL import Image
 
# 获取一个Image对象,参数分别是RGB模式。宽150,高30,红色
image = Image.new('RGB',(150,30),'red')
# 保存到硬盘,名为test.png格式为png的图片
image.save(open('test.png','wb'),'png')
2、生成一张随机颜色的图片
from PIL import Image
import random
 
def getRandomColor():
    '''获取一个随机颜色(r,g,b)格式的'''
    c1 = random.randint(0,255)
    c2 = random.randint(0,255)
    c3 = random.randint(0,255)
    return (c1,c2,c3)
 
# 获取一个Image对象,参数分别是RGB模式。宽150,高30,随机颜色
image = Image.new('RGB',(150,30),getRandomColor())
# 保存到硬盘,名为test.png格式为png的图片
image.save(open('test.png','wb'),'png')
3、生成一张带有固定字符串的随机颜色的图片
from PIL import Image
from PIL import ImageDraw
from PIL import ImageFont
import random
 
def getRandomColor():
    '''获取一个随机颜色(r,g,b)格式的'''
    c1 = random.randint(0,255)
    c2 = random.randint(0,255)
    c3 = random.randint(0,255)
    return (c1,c2,c3)
 
 
# 获取一个Image对象,参数分别是RGB模式。宽150,高30,随机颜色
image = Image.new('RGB',(150,30
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值