代码写春联js+html版本与python版本

白大锅      2022-02-16     670

关键词:

一、春联一

1.前言

需要代码文末公众号找我 回复【春联】即可获取

效果展示

3.代码展示

index.html

<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="UTF-8">
<title>css3春联切换</title>

<link rel="stylesheet" href="css/style.css">

</head>
<body>

<div class="rotating-text">
	<p>春联Show</p>
	<p>
		<span class="word alizarin">上联:这个需求很简单</span>
		<span class="word wisteria">下联:怎么实现我不管</span>
		<span class="word peter-river">横批:明天上线!</span>
	</p>
</div>

<script  src="js/script.js"></script>

</body>
</html>

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.环境准备

1.当缺少库时会有相应提示 黑窗口执行下方命令+包名即可下载安装
2.博主此处用的idea 直接Alt+Enter直接下载就成了
3.idea配置python环境也可以参考此文:Python(含PyCharm及配置)下载安装以及简单使用(Idea)

2.效果展示


3.代码

import io
from PIL import Image
#import numpy as np
import requests


def 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实现春联

...小编所学知识实现春联,只不过家里面没有打印机,不然代码写完之后,之后直接用打印机打印出来就可以了。1.需要的模块主要为bs4和random模块bs4模块:用于修改html文本相关内容;random模块:用于生成随机文件的名称;2.春联... 查看详情

新年快到了,如何运用python实现春联

...小编所学知识实现春联,只不过家里面没有打印机,不然代码写完之后,之后直接用打印机打印出来就可以了。1.需要的模块主要为bs4和random模块bs4模块:用于修改html文本相关内容;random模块:用于生成随机文件的名称;2.春联... 查看详情

最新版的python写春联,支持行书隶书楷书,不再有缺失汉字(代码片段)

1.前言两年前的今天,我写过一篇名为《用Python写春联:抒写最真诚的祝福和最美好的祈愿》的文章,吸引了很多书法爱好者的关注。该文用的是田英章老师的楷书,我在网上总共找到了1600个汉字,因此,... 查看详情

用python写春联,我还是第一次见(代码片段)

...为唐人刘丘子,作于开元十一年723年。程序员借助于代码,同样可以写出漂亮的春联,这里我向大家送上我最真诚的祝福和最美好的祈愿。接下来就教大家如何用代码生成上面那样的对联了!一、安装Python环境1.... 查看详情

django与mysql数据库版本兼容问题(代码片段)

第一个Python与Django的兼容关系1、python2.7支持到2020年2、Django2.0后均不再支持python23、Django2.0是最后一个支持Python3.4的版本4.目前为止开发学习最好用Django2.1第二个Django与MySQL的兼容关系1、Django1无所谓2、Django2.1不再支持MySQL5.5,必... 查看详情

ai写春联背后的“小心思”和“大道理”

毫无疑问,“智能春联”是这个春节里AI圈最大的主角。只需要输入一个词,智能春联系统就能作出一副喜庆吉利的春联,将高科技的人工智能与流传千年的春联有趣的结合在一起。由百度首次推出的智能春联系统,既应景又容... 查看详情

tensorflow的历史版本与对应python版本(代码片段)

版本Python版本最后版本发布时间tensorflow-2.4.03.6-3.82020年12月tensorflow-2.3.03.5-3.82020年7月tensorflow-2.2.03.5-3.82020年5月tensorflow-2.1.03.5-3.72020年1月tensorflow-2.0.03.5-3.72019年10月tensorflow-1.15.03.5-3.72019年1 查看详情

js代码判断浏览器种类ieffoperasafarichrome及版本

因为ie10-ie11的版本问题,不再支持document.all判断,所以ie判断函数要重新写了?123456functionisIE(){//ie?      if(!!window.ActiveXObject||"ActiveXObject"inwindow)      & 查看详情

jquery不兼容低版本ie浏览器怎么解决?

...者低版本的Jquery1.x版本。2.可以给网页写两套或者多套JS代码以适应不同版本、不同类型的浏览器,然后使用原生JS判断浏览器的型号和版本来加载不同的JS文件。jquery简介:jquery是一套跨浏览器的JavaScript库,简化HTML与JavaScript之... 查看详情

用python写三级菜单的三个版本(代码片段)

要求:   1.可以进入子菜单   2.可以返回上一级   3.可以从任意一级直接退出基础版:(主要运用到了字典的读取)#以字典的格式存放,方便调用data=‘河北‘:‘保定‘:‘曲阳‘:[‘燕赵‘,‘党... 查看详情

node.js经验总结

...估计又凌晨几点睡的),对我抱怨道:“妈蛋,以前写的代码package.json里的版本和服务器正在运行的版本不一样。安装最新的又咣咣一顿报错。”此处省略几千字。。。好吧。我先打自己脸。以前只会用*。。。大多时候也没必... 查看详情

用python给html里的css及js文件链接自动添加版本号

 传统的给文件链接添加版本号的方法是使用gulp-rev,这里提出的解决方案是使用python来替代gulp-rev。 importosimportreimportuuidimportsysdeffile_extension(path):returnos.path.splitext(path)[1]basePath=sys.argv[1]iflen(sys.argv)==1:s 查看详情

用react写井字棋游戏(代码片段)

目录1.确定本地Node.js和npm版本2.做下井字棋的功能1.确定本地Node.js和npm版本确定Node.js版本node-v,确定npm版本npm-v,满足生产要求2.做下井字棋的功能 查看详情

如何查看wsgi的版本

...果你上述的过程你就是丢失了怎么办,那么就需要自己写代码来检测了,新建一个python脚本文件,比如叫check-wsgiversion.py。然后写入写列内容:[html]viewplaincopydefapplication(environ,start_response):status='200OK'output=str(environ['mod_wsgi... 查看详情

海龟库画春联怎么画

...于上下联、横批都是矩形,且颜色都是一致的。为了便于代码的复用,可以定义可以一个画背景的函数。如下所示:defdrawChunLianBg(startX=0,startY=0,lenX=100,lenY=100):#设置边框色和背景填充色color('Yellow','OrangeRed')#抬笔,定... 查看详情

如何解决html5在老版本ie下的兼容性

...兼容。另外老版本ie现在使用的人并不是很多,如果嫌写代码麻烦的话,也完全可以忽略老版本ie用户,或者在html里面加js识别老ie访问时显示一段话“您的ie版本太旧了,不能很好的展示网站功能,建议更新ie浏览器或者下载googl... 查看详情

pyenv&virtualenv的安装与使用(代码片段)

  使用pyenv管理不同版本的python  安装不同的Python版本并不是一件容易的事情,在不同的Python版本之间来回切换更加困难,而且,多版本并存非常容易互相干扰。因此,我们需要一个名为pyenv的工具。pyenv是一个Python版本管理... 查看详情

flask--01安装与版本(代码片段)

Flask是个Python编写的轻量级的Web框架,它的实现是一个WSGI的微框架WSGI:WebServerGatewayInterface统一接口1.安装1.1确保本机已安装python与pippipinstallflask1.2查看Flask版本python>>>importflask>>>flask.__version__ Flask官网:ht 查看详情