Python聚多福

时间:2022-07-23
本文章向大家介绍Python聚多福,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

福字成图

概述

之前在支付宝集福时我从网上找了一部分福字图片,在家闲着没事就瞎搞了一下。主要是利用HZK16汉字库文件中的字体数据,然后再加上之前的获取的福字图片在一起绘制成一个福字图。

项目实现

(1)项目是建立在我之前获取的图片数据之前的,图片抓取就不再叙述了。

(2)汉字编码,利用HZK16汉字库对想要绘制的文字编码。

(3)图片在画布上绘制,把获取的图片在新的画布上绘制出来。

实现代码

汉字编码

# 根据读取到HZK中数据给我们的16*16点阵赋值
for k in range(len(font_rect) // 2):
    row_list = rect_list[k]
    for j in range(2):
        for i in range(8):
            asc = font_rect[k * 2 + j]
            flag = asc & key[i]
            row_list.append(flag)

图片读入

def read_directory(directory_name):
    for filename in os.listdir(directory_name):
        strDic = directory_name + "//" + filename
        imageList.append(strDic)

绘制文字图片

canvas = Image.new('RGB', (1600, 1600), '#FFFFFF')
n = 0
for i in range(16 * 16):
    # 点阵信息不为0,即代表此处要显示头像图片来组字
    if item[i] != 0:
        # 打开图片
        img = Image.open(imageList[n])
        # 缩小图片
        img = img.resize((100, 100), Image.ANTIALIAS)
        # 拼接图片
        canvas.paste(img, ((i % 16) * 100, (i // 16) * 100))
        n += 1
canvas.show()

实现效果