Python模拟动态产生字母验证码图片功能

  

  

模拟生成验证码,首先要做的是生成随机的字母,然后对字母进行模糊处理。这里介绍一下Python提供的枕头模块。

  

  

公益诉讼:Python图像库,Python的图像处理标准库,功能强大。

  

公益诉讼是第三方库,使用之前需要先进行安装。具体的命令如下:(如果安装了水蟒,这一步可以跳过)

  

<代码>美元pip安装枕头

  

下面先简单介绍枕头的功能。

  

  

缩放图像,是枕头的一个功能,示例如下:

        从公益诉讼导入图像   #打开图片,注意路径   img=Image.open (“pitbull.jpeg”)   #获得图片尺寸   体重、身高=img.size   打印(“原图片尺寸:{}x {} '。格式(体重、身高)   #进行缩放,缩放50%   img。缩略图((体重//2,身高//2))   打印(“调整后的图片尺寸:{}x {} '。格式(体重//2,身高//2))   #将缩放后的图片保存   img.save (thumbnail.jpg, jpeg)      

枕头还有其他的功能,例如旋转,剪切,滤镜,输出文字,调色板等。

  

ImageFilter   

下面尝试模糊图片处理:

        从公益诉讼导入图像,ImageFilter   #打开图片文件,注意路径   img=Image.open (“pitbull.jpeg”)   #应用模糊滤镜   img2=img.filter (ImageFilter.BLUR)   img2.save (blur.jpg, jpeg)      

ImageFilter是Python提供的图像滤波,而ImageFilter。模糊是模糊滤波。

  

上面代码具体的效果如下:

  

 Python模拟动态产生字母验证码图片功能“> <img src=

  

同时枕头的ImageDraw提供了一些列绘图方法,使我们可以直接绘图。下面使用这种方法来尝试生成字母验证码图片:

  

        从公益诉讼导入图像,ImageDraw ImageFont ImageFilter   从随机进口randint   def random_char ():   '''   生成随机的字母   返回:   返回随机的字母   '''   返回对应(randint (65、90))   def random_color ():   '''   生成随机颜色,每个颜色值在64 - 255年之间   返回:   返回随机的颜色,返回值的类型为元组。例如(65、98、243):   '''   返回(randint (64, 255), randint (64、255), randint (64、255),)   def random_color_2 ():   '''   生成随机颜色,每个颜色值在32 - 127之间   返回:   返回随机颜色,返回值类型为元组。例如(33、87、121)   '''   返回(randint (127), randint (127), randint (127))   #生成的图片比例   宽度=60 * 4   身高=60   形象=形象。新(RGB,(宽度、高度),(255、255、255))   #创建字体对象   字体=ImageFont.truetype (YaHeiConsolas。ttf, 36)   #创建画对象   画=ImageDraw.Draw(图片)   #填充每个像素   x的范围(宽度):   y的范围(高度):   画画。点((x, y),填补=random_color ())   #输出字母   范围的t (4):   画画。文本((60 t + 10 * 10), random_char(),字体=字体,填补=random_color_2 ())   #对生成的字母进行模糊效果处理   形象=image.filter (ImageFilter.BLUR)   image.save (code.jpg, jpeg)      

代码具体实现过程是,先用随机颜色填充背景,再生成字母,最后对图片进行模糊处理。具体实现效果如下:

  

 Python模拟动态产生字母验证码图片功能

  

代码在运行的过程中,可能会出现下面的错误:

  

IOError:那么不能打开资源

  

出现这个问题的原因是公益诉讼无法定位到字体文件的位置,可以考虑直接提供绝对位置。

  

字体绝对=ImageFont.truetype('//道路/字体。ttf, 36)

  

本篇文章提及枕头的仅是简单的部分功能,如果要继续了解公益诉讼的强大功能,可以参考枕头官方文档:

  

https://pillow.readthedocs.org/
  

  

  

以上所述是小编给大家介绍的Python模拟动态产生字母验证码图片功能,希望对大家有所帮助,如果大家有任何疑问请给我留的言,小编会及时回复大家的。在此也非常感谢大家对网站的支持。
  如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python模拟动态产生字母验证码图片功能