Python 练习册 0000、0010题 (pillow库)

最近找到一个练手的好东西,Python 练习册,每天一个小程序,花了几天时间搞完了,感觉不错,从中学习了很多库的使用。这里把答案和一些扩展的东西总结下。

第 0000 题:将你的 QQ 头像(或者微博头像)右上角加上红色的数字,类似于微信未读信息数量那种提示效果。 类似于图中效果

答案

img = Image.open('avatar.png')

draw = ImageDraw.Draw(img)
font = ImageFont.truetype("PalanquinDark-Regular.ttf", 70)
draw.text((img.size[0]-50, -20), "5", font=font, fill=(255, 0, 0))
img.save('avatar2.png')
img.show()

pillow其他使用

# 改变图片大小
# out = img.resize((128, 128))
# img.thumbnail(size)
# img.save('size.jpg')
# 复制粘贴
# box = (0, 0, 100, 100)
# region = img.crop(box)
# img.paste(region, (-100, -100, 0, 0))
# 镜像
# out = img.transpose(Image.FLIP_LEFT_RIGHT)
# 逆时针90度
# out = img.transpose(Image.ROTATE_90)
# out = img.rotate(90)
# img.show()
# 线
# draw.line([(0, img.size[1]/2), (img.size[0], img.size[1]/2), (0, 0)], fill=24)
# draw.line([(img.size[0]/2, img.size[1]), (img.size[0]/2, 0)], fill=24)
# del draw
# img.save('save.png')

第 0010 题:使用 Python 生成类似于下图中的字母验证码图片


import string
import random
from PIL import Image, ImageFont, ImageDraw, ImageFilter


def get_random_num():
    num_list = list()
    for i in range(4):
        num_list.append(random.choice(string.ascii_letters))
    return num_list


def get_random_color():
    color = (random.randint(30, 100), random.randint(30, 100), random.randint(30, 100))
    return color


def get_code_pic():
    image = Image.new('RGB', (240, 60), (180, 180, 180))
    font = ImageFont.truetype('font.ttf', 40)
    draw = ImageDraw.Draw(image)
    code = get_random_num()
    for i in range(4):
        draw.text((60*i+20, 0), code[i], font=font, fill=get_random_color())
    for _ in range(random.randint(1500, 3000)):
        draw.point((random.randint(0, 240), random.randint(0, 60)), fill=get_random_color())
    image = image.filter(ImageFilter.SMOOTH_MORE)
    # image.save('C:\\Users\\L\\Desktop\\img\\' + name + '.jpg')
    image.show()


get_code_pic()

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • # Python 资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列...
    aimaile阅读 26,823评论 6 427
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 178,769评论 25 709
  • 环境管理管理Python版本和环境的工具。p–非常简单的交互式python版本管理工具。pyenv–简单的Pyth...
    MrHamster阅读 3,949评论 1 61
  • 引言 想找一份Python开发工作吗?那你很可能得证明自己知道如何使用Python。下面这些问题涉及了与Pytho...
    VanessaC阅读 869评论 0 0
  • 昨夜不期闻汝嗔,不知是否感逝春?花飞絮飘总无情,独我怜之意深深。曾思治国平天下,奈何随性不修身!又作狂歌笑万世,目...
    林之白阅读 578评论 3 0

友情链接更多精彩内容