本文主要是介绍原创 Python练习册第10题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
这题感觉是第0题和第1题的组合,把随机生成的数字写在有噪点的背景图上就行了
不过查了Image.Draw.text 并没有旋转字符的方法,想要做出网上常见的那种验证码,就需要先生成旋转好的字符图片,再把图片合在一起才行了,我因为懒,所以没有旋转字符。
import os, random, string
from PIL import Image, ImageDraw, ImageFontif __name__ == '__main__':#随机种子范围取所有大小写字母和数字str_base = string.ascii_letters + string.digits#字符横坐标参数pos = 20#打开文件with Image.open('bg.png') as file:#创建一个Draw对象add_letter = ImageDraw.Draw(file)for i in range(4):#字号的随机数size = random.randint(25, 35)#载入字体并设置字号,字体用的是微软雅黑letter_font = ImageFont.truetype('msyh.ttc', size)#字符颜色的随机数r = random.randint(0, 255)g = random.randint(0, 255)b = random.randint(0, 255)#创建文字add_letter.text((pos, 0), random.choice(str_base), font = letter_font, fill = (r, g, b))#横坐标右移pos += 40#保存为新的文件file.save('verification.png')
图片效果
这篇关于原创 Python练习册第10题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!