不会写毛笔字,也能制作精美的春联(用毛笔字写的春联)

安装模块:

以此安装以下模块

pip install io

pip install pillow

pip install numpy

pip install requests

调用模块

import iofrom PIL import Imageimport numpy as npimport requests

获取单个汉字字体

def get_word(ch, quality): fp = io.BytesIO(requests.post(url='http://xufive.sdysit.com/tk', data={'ch': ch}).content) im = Image.open(fp) w, h = im.size if quality == 'M': w, h = int(w * 0.75), int(0.75 * h) elif quality == 'L': w, h = int(w * 0.5), int(0.5 * h) return im.resize((w, h))

获取背景图

def get_bg(quality): return get_word('bg', quality)

生成春联

def write_couplets(text, HorV='V', quality='L', out_file=None): usize = {'H': (640, 23), 'M': (480, 18), 'L': (320, 12)} bg_im = get_bg(quality) text_list = [list(item) for item in text.split()] rows = len(text_list) cols = max([len(item) for item in text_list]) if HorV == 'V': ow, oh = 40 rows * usize[quality][0] (rows - 1) * 10, 40 cols * usize[quality][0] else: ow, oh = 40 cols * usize[quality][0], 40 rows * usize[quality][0] (rows - 1) * 10 out_im = Image.new('RGBA', (ow, oh), '#f0f0f0') for row in range(rows): if HorV == 'V': row_im = Image.new('RGBA', (usize[quality][0], cols * usize[quality][0]), 'white') offset = (ow - (usize[quality][0] 10) * (row 1) - 10, 20) else: row_im = Image.new('RGBA', (cols * usize[quality][0], usize[quality][0]), 'white') offset = (20, 20 (usize[quality][0] 10) * row) for col, ch in enumerate(text_list[row]): if HorV == 'V': pos = (0, col * usize[quality][0]) else: pos = (col * usize[quality][0], 0) ch_im = get_word(ch, quality) row_im.paste(bg_im, pos) row_im.paste(ch_im, (pos[0] usize[quality][1], pos[1] usize[quality][1]), mask=ch_im) out_im.paste(row_im, offset) if out_file: out_im.convert('RGB').save(out_file) out_im.show()

主程序

if __name__ == '__main__': text = input('请输入你要制作对联的内容[上下联之间要空一格]:') #text = '一代英豪生虎气 三春杨柳动莺歌' write_couplets(text, HorV='V', quality='M', out_file='D:/pythondata/result/对联.jpg') #HorV='H' 横版

最终效果:

不会写毛笔字,也能制作精美的春联(用毛笔字写的春联)

注意:该程序中调用的字体会有个别字无法生成,请选择能显示的文字撰写春联

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发表回复

您的电子邮箱地址不会被公开。