Discuss / Python / 按照老师教程修改了下,但是在暂时无法同时随机字母和数字。

按照老师教程修改了下,但是在暂时无法同时随机字母和数字。

Topic source

Dominias

#1 Created at ... [Delete] [Delete and Lock User]
from PIL import Image, ImageDraw,ImageFont, ImageFilter
import random

# 随机字母(含大小写)
def rndChar():
    return chr(random.randint(65,122)) 

# 随机数字
def rndInt():
    return chr(random.randint(48,57))

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

# 随机颜色2
def rndColor2():
    return (random.randint(32,127), random.randint(32,127), random.randint(32,127))

# 300 * 60
width = 60 * 5
height = 60
image = Image.new('RGB', (width, height), (255,255,255))
# 创建Pont对象
font = ImageFont.truetype('C:\Windows\Fonts\Arial.ttf', 40)
#创建Draw对象
draw = ImageDraw.Draw(image)
#填充每个像素
for x in range(width):
    for y in range(height):
        draw.point((x,y), fill=rndColor())
# 输出文字
for t in range(5):
    draw.text((60 * t + 10, 10), rndChar(), font=font, fill=rndColor2())
# 模糊
image = image.filter(ImageFilter.BLUR)
image.save('code,jpg', 'jpeg')

Dominias

#2 Created at ... [Delete] [Delete and Lock User]
from PIL import Image, ImageDraw,ImageFont, ImageFilter
import random

# 随机字母(含大小写)
def rndChar():
    return chr(random.randint(65,122)) 

# 随机数字
def rndInt():
    return chr(random.randint(48,57))

# 随机数字和字母
def rndChorIn():
    return (chr(random.randint(48,57)) or chr(random.randint(65,122)))

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

# 随机颜色2
def rndColor2():
    return (random.randint(32,127), random.randint(32,127), random.randint(32,127))

# 300 * 60
width = 60 * 5
height = 60
image = Image.new('RGB', (width, height), (255,255,255))
# 创建Pont对象
font = ImageFont.truetype('C:\Windows\Fonts\Arial.ttf', 40)
#创建Draw对象
draw = ImageDraw.Draw(image)
#填充每个像素
for x in range(width):
    for y in range(height):
        draw.point((x,y), fill=rndColor())
# 输出文字
for t in range(5):
    draw.text((60 * t + 10, 10), rndChorIn(), font=font, fill=rndColor2())
# 模糊
image = image.filter(ImageFilter.BLUR)
image.save('code,jpg', 'jpeg')

这里面【rndChorIn】无法实现随机数字和字母。。

**最直接的方法在生成字母和数字函数之间再添加个随机选择:

 def rndString():
       l = random.randint(0,1)
       if l:
           return rndChar()
       else:
           return rndInt()

然后改下: draw.text((60 * t + 10, 10), rndString(), font=font, fill=rndColor2())


  • 1

Reply