如何利用Python代码制作过年春联
发表于:2024-11-28 作者:千家信息网编辑
千家信息网最后更新 2024年11月28日,这篇文章将为大家详细讲解有关如何利用Python代码制作过年春联,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、春联一1.效果展示2.代码展示index.html
千家信息网最后更新 2024年11月28日如何利用Python代码制作过年春联
这篇文章将为大家详细讲解有关如何利用Python代码制作过年春联,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
一、春联一
1.效果展示
2.代码展示
index.html
css3春联切换 春联Show
上联:这个需求很简单 下联:怎么实现我不管 横批:明天上线!
style.css
@import url(https://fonts.googleapis.com/css?family=Lato:600);body { display: flex; justify-content: center; align-items: center; height: 100vh; background: #222;}.rotating-text { font-family: Lato, sans-serif; font-weight: 600; font-size: 36px; color: white; transform: translateX(-80px);}.rotating-text p { display: inline-flex; margin: 0; vertical-align: top;}.rotating-text p .word { position: absolute; display: flex; opacity: 0;}.rotating-text p .word .letter { transform-origin: center center 25px;}.rotating-text p .word .letter.out { transform: rotateX(90deg); transition: 0.32s cubic-bezier(0.6, 0, 0.7, 0.2);}.rotating-text p .word .letter.in { transition: 0.38s ease;}.rotating-text p .word .letter.behind { transform: rotateX(-90deg);}.alizarin { color: #e74c3c;}.wisteria { color: #8e44ad;}.peter-river { color: #3498db;}.emerald { color: #2ecc71;}.sun-flower { color: #f1c40f;}
script.js
var words = document.querySelectorAll(".word");words.forEach(function (word) { var letters = word.textContent.split(""); word.textContent = ""; letters.forEach(function (letter) { var span = document.createElement("span"); span.textContent = letter; span.className = "letter"; word.append(span); });});var currentWordIndex = 0;var maxWordIndex = words.length - 1;words[currentWordIndex].style.opacity = "1";var rotateText = function () { var currentWord = words[currentWordIndex]; var nextWord = currentWordIndex === maxWordIndex ? words[0] : words[currentWordIndex + 1]; // rotate out letters of current word Array.from(currentWord.children).forEach(function (letter, i) { setTimeout(function () { letter.className = "letter out"; }, i * 80); }); // reveal and rotate in letters of next word nextWord.style.opacity = "1"; Array.from(nextWord.children).forEach(function (letter, i) { letter.className = "letter behind"; setTimeout(function () { letter.className = "letter in"; }, 340 + i * 80); }); currentWordIndex = currentWordIndex === maxWordIndex ? 0 : currentWordIndex + 1;};rotateText();setInterval(rotateText, 4000);
二、春联二
1.环境准备
当缺少库时会有相应提示 黑窗口执行下方命令+包名即可下载安装
博主此处用的idea 直接Alt+Enter直接下载就成了
idea配置python环境也可以参考此文:Python及PyCharm下载与安装教程
2.效果展示
3.代码
import iofrom PIL import Image#import numpy as npimport requestsdef get_word(ch, quality): """获取单个汉字(字符)的图片 ch - 单个汉字或英文字母(仅支持大写) quality - 单字分辨率,H-640像素,M-480像素,L-320像素 """ 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): """生成春联 text - 春联内容,以空格断行 HorV - H-横排,V-竖排 quality - 单字分辨率,H-640像素,M-480像素,L-320像素 out_file - 输出文件名 """ 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='V', quality='M', out_file='春联.jpg') #生成普天同庆.jpg对联图片
关于"如何利用Python代码制作过年春联"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
春联
像素
代码
内容
图片
篇文章
制作
分辨率
单个
单字
对联
效果
更多
环境
汉字
参考
生成
不错
实用
思前想后
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
我的世界服务器赛跑指令
服务器部署要涉及到哪些
软件开发文档谁写比较合适
YY代码软件开发
大学的软件开发
软件开发 销售 增值税
原神手机无法登陆服务器4204
HMI软件开发内容
大学学会什么软件开发
公主连结国服服务器
如何远程开机戴尔服务器
成都计算机软件开发大概要多少钱
打开ftp服务器需要密码吗
网络安全选择题库及答案
天津好的软件开发行业标准
丹阳初心网络技术有限公司
合众唯一网络技术有限公司
校园网络安全新生赛
怎么关闭预约管理服务器
数据库怎么关掉服务
常州无线网络技术来电咨询
2021年网络安全自查总结
十大软件开发技术
网络安全法在哪个国家使用
自定义字段数据库选择
威慑思想对美国网络安全战略影响
网络安全等级保护检查内容
未成年暑假网络安全
四川网络安全学院技术提升快
数据库表修改字段名