用python实现一幅春联实例代码

目录
  • 前言
  • 代码展示
  • 效果展示
  • 总结

前言

过年了,家家户户都得贴春联,红红火火过大年~

春联是天朝传统节日完美衔接了民族文化的产物,以美好的诗词文字表达美好愿望,是天朝特有文学形式绽放。也是天朝人民自古以来的过年习俗,家家户户都必不可少。

咱们作为程序员,不知道你们会不会写毛笔字,反正我小时候练过,但是现在不会写了。不过对于美好生活的憧憬,可不比李白杜甫等大佬少,咱们用代码也是可以写出漂亮的春联,一样的向亲人朋友送上咱们美好的祝福。

哈哈 Python 生成不出来,字体原因,懒得改了,就用派森吧,大家可以自己去改改字体。

代码展示

" 模块导入"
import io
from PIL import Image
import numpy as np
import requests

" 字模下载 "
    """获取单个汉字图片
    ch          - 单个汉字或英文字母(仅支持大写)
    quality     - 单字分辨率,H-640像素,M-480像素,L-320像素
    """
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)

" 生成春联 "
    """
    text        - 春联内容,以空格断行
    HorV        - H-横排,V-竖排
    quality     - 单字分辨率,H-640像素,M-480像素,L-320像素
    out_file    - 输出文件名
    """
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()

text = '地位清高日月每从肩上过 门庭开豁江山常在掌中看'
write_couplets(text, HorV='H', quality='M', out_file='这个对联 牛逼.jpg')

效果展示

竖版

text = '丹凤呈祥龙献瑞 红桃贺岁杏迎春'
write_couplets(text, HorV='V', quality='M', out_file='福满人间.jpg')

提前祝大家新年快乐!!

总结

到此这篇关于用python实现一幅春联实例代码的文章就介绍到这了,更多相关python春联内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 利用Python代码制作过年春联

    目录 一.春联一 1.效果展示 2.代码展示 二.春联二 1.环境准备 2.效果展示 3.代码 一.春联一 1.效果展示 2.代码展示 index.html <!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8"> <title>css3春联切换</title> <link rel="stylesheet&qu

  • 用python实现一幅春联实例代码

    目录 前言 代码展示 效果展示 总结 前言 过年了,家家户户都得贴春联,红红火火过大年~ 春联是天朝传统节日完美衔接了民族文化的产物,以美好的诗词文字表达美好愿望,是天朝特有文学形式绽放.也是天朝人民自古以来的过年习俗,家家户户都必不可少. 咱们作为程序员,不知道你们会不会写毛笔字,反正我小时候练过,但是现在不会写了.不过对于美好生活的憧憬,可不比李白杜甫等大佬少,咱们用代码也是可以写出漂亮的春联,一样的向亲人朋友送上咱们美好的祝福. 哈哈 Python 生成不出来,字体原因,懒得改了,就用派森

  • 一分钟教你用Python写一幅春联

    目录 1. 前言 2. 代码中需要导入的模块 3. 下载字模 4. 下载龙凤呈祥背景底图 5. 生成春联 6. 测试样例 总结 1. 前言 春联是中国传统文化中最具内涵的元素之一,它以对仗工整.简洁精巧的文字描绘美好形象,抒发美好愿望,是中国特有的文学形式,是华人们过年的重要习俗.每逢春节期间,无论城市还是农村,家家户户都要精选一副大红春联贴于门上,辞旧迎新,以增加节日的喜庆气氛.据考证,这一习俗起于宋代,盛于明代.有据可查的最早的春联是“三阳始布,四序初开”,始见于莫高窟藏经洞出土的文物中,撰

  • 用python生成一张壁纸实例代码

    目录 前言 代码 效果 总结 前言 之前在csdn上看见用python写春联的,这次突发奇想用python制作一张壁纸,其元素包括背景.文字.图片. 知识点 用PIL创建一张纯色背景Image.new:图片上添加文字ImageDraw,cv2只能显示英文:转换图片的透明度:图片上叠加图片:jpg与png的区别. 代码 import os from PIL import ImageFont, ImageDraw, Image import cv2 import random def white2t

  • 使用Python操作excel文件的实例代码

    使用的类库 pip install openpyxl 操作实现 •工作簿操作 # coding: utf-8 from openpyxl import Workbook # 创建一个excel工作簿 wb = Workbook() # 打开一个工作簿 wb = load_workbook('test.xlsx') # 保存工作簿到文件 wb.save('save.xlsx') •工作表操作 # 获得当前的工作表对象 ws = wb.active # 通过工作表名称得到工作表对象 ws = wb.

  • Python 自动化表单提交实例代码

    今天以一个表单的自动提交,来进一步学习selenium的用法 练习目标 0)运用selenium启动firefox并载入指定页面(这部分可查看本人文章 http://www.cnblogs.com/liu2008hz/p/6958126.html) 1)页面元素查找(多种查找方式:find_element_*) 2)内容填充(send_keys) 3)iframe与父页面切换(switch_to_frame是切换到iframe,switch_to_default_content是切换到主页面)

  • Python绘制3d螺旋曲线图实例代码

    Line plots Axes3D.plot(xs, ys, *args, **kwargs) 绘制2D或3D数据 参数 描述 xs, ys X轴,Y轴坐标定点 zs Z值,每一个点的值都是1 zdir 绘制2D集合时使用z的方向 其他的参数:plot() Python代码: import matplotlib as mpl from mpl_toolkits.mplot3d import Axes3D import numpy as np import matplotlib.pyplot as

  • 用python实现的线程池实例代码

    python3标准库里自带线程池ThreadPoolExecutor和进程池ProcessPoolExecutor. 如果你用的是python2,那可以下载一个模块,叫threadpool,这是线程池.对于进程池可以使用python自带的multiprocessing.Pool. 当然也可以自己写一个threadpool. # coding:utf-8 import Queue import threading import sys import time import math class W

  • python+matplotlib实现礼盒柱状图实例代码

    演示结果: 完整代码: import matplotlib.pyplot as plt import numpy as np from matplotlib.image import BboxImage from matplotlib._png import read_png import matplotlib.colors from matplotlib.cbook import get_sample_data class RibbonBox(object): original_image =

  • Python实现七彩蟒蛇绘制实例代码

    本文主要研究的是Python编程turtle的实例,绘制一个七彩蟒蛇..具体如下. 第2周的课后练习里,有一道题目,要求修改"蟒蛇绘制"程序,对Python 蟒蛇的每个部分采用不同颜色,绘制一条彩色蟒蛇. 原蟒蛇绘制程序如下: 因为刚开始学Python,不太熟悉,所以自己加了一些注释,方便理解. #蟒蛇绘制 import turtle def drawSnake(rad,angle,len,neckrad): for i in range(len): turtle.circle(rad

  • python+matplotlib绘制3D条形图实例代码

    本文分享的实例主要实现的是Python+matplotlib绘制一个有阴影和没有阴影的3D条形图,具体如下. 首先看看演示效果: 完整代码如下: import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D # setup the figure and axes fig = plt.figure(figsize=(8, 3)) ax1 = fig.add_subplot(121

随机推荐