2024年最全用python写一个自动生成春联的软件,打包exe,2024年最新阿里p8面试题和答案

简介: 2024年最全用python写一个自动生成春联的软件,打包exe,2024年最新阿里p8面试题和答案

唠叨一下

==============================================================

最近不是快过年了,Python写对联挺火的,但是代码又不是人人都用,那就直接写个界面打包一下呗~

主要实现只要运行后输入上联下联、横批,然后自动生成春联保存在代码文件夹,如果要打印出来也是可以的。

只要软件的兄弟,我放在最后了

效果展示

==============================================================

输入对联,选择路径后点击开始生成春联即可。

代码

============================================================

需要导入的模块

网络数据获取相关模块

import io # python IO 处理模块

from PIL import Image # 图像处理模块

import requests # 网络请求模块

UI 相关模块

from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *

主题样式模块引用

from QCandyUi import CandyWindow

应用操作相关模块

import sys
import os
获取文字主题
def run(self):
up_text = self.parent.up_text.text().strip()
down_text = self.parent.down_text.text().strip()
h_text = self.parent.h_text.text().strip()
save_path = self.parent.save_path.text().strip()
if up_text == ‘’ or down_text == ‘’ or h_text == ‘’ or save_path == ‘’:
self.trigger.emit(‘参数设置不允许为空,请设置好后重新开始!’)
self.finished.emit(True)
else:
text = up_text + ’ ’ + down_text
self.generate_image(text, layout=‘V’, pre=0.75, out_file=save_path + ‘/上下联.jpg’)
self.generate_image(h_text, layout=‘H’, pre=0.75, out_file=save_path + ‘/横批.jpg’)
self.finished.emit(True)
图片、文字获取
这部分参考了天元浪子的写对联
def get_word_image(self, ch=‘bg’, pre=1.0):
‘’’
单文字图片下载函数
:param ch: 默认网络请求参数’bg’
:param pre: 单个文字对象
:return: 图像对象
‘’’
res = io.BytesIO(requests.post(url=‘http://xufive.sdysit.com/tk’, data={‘ch’: ch}).content)
image = Image.open(res)
w, h = image.size
w, h = int(w * float(pre)), int(h * float(pre))
return image.resize((w, h)) # 单个文字的形状是正方形,所以这里的长、宽都是一致的
生成对联
def generate_image(self, words, layout=‘V’, pre=1.0, out_file=None):
‘’’
:param words: 春联文本
:param layout: 布局:水平/垂直
:param pre: 春联比例
:param out_file: 保存文件
:return:
‘’’
quality = ‘H’
if pre == 0.75:
quality = ‘M’
elif pre == 0.5:
quality = ‘L’
usize = {‘H’: (640, 23), ‘M’: (480, 18), ‘L’: (320, 12)}
bg_im = self.get_word_image(ch=‘bg’, pre=pre)
self.trigger.emit(‘春联背景下载完成!’)
text_list = [list(item) for item in words.split()]
rows = len(text_list)
cols = max([len(item) for item in text_list])
if layout == ‘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 layout == ‘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 layout == ‘V’:
pos = (0, col * usize[quality][0])
else:
pos = (col * usize[quality][0], 0)
ch_im = self.get_word_image(ch=ch, pre=pre)
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)
self.trigger.emit(‘春联图片拼装完成!’)
if out_file:
out_im.convert(‘RGB’).save(out_file)
self.trigger.emit(‘春联保存成功!’)
UI部分代码
class GenerateScroll(QWidget):
def init(self):
super(GenerateScroll, self).init()
self.init_ui()
def init_ui(self):
self.setWindowTitle(‘春联生成器’)
self.setWindowIcon(QIcon(‘春联.ico’))
vbox_main = QVBoxLayout()
self.image_label = QLabel()
self.image_label.setScaledContents(True)
self.image_label.setMaximumSize(650,150)
self.image_label.setPixmap(QPixmap(‘横批演示.png’))
hbox = QHBoxLayout()
self.brower = QTextBrowser()
self.brower.setFont(QFont(‘宋体’, 8))
self.brower.setReadOnly(True)
self.brower.setPlaceholderText(‘信息展示区域’)
self.brower.ensureCursorVisible()
form = QFormLayout()
self.up_label = QLabel()
self.up_label.setText(‘设置上联’)

最后

🍅 硬核资料:关注即可领取PPT模板、简历模板、行业经典书籍PDF。

🍅 技术互助:技术群大佬指点迷津,你的问题可能不是问题,求资源在群里喊一声。

🍅 面试题库:由技术群里的小伙伴们共同投稿,热乎的大厂面试真题,持续更新中。

🍅 知识体系:含编程语言、算法、大数据生态圈组件(Mysql、Hive、Spark、Flink)、数据仓库、Python、前端等等。



目录
打赏
0
0
0
0
80
分享
相关文章
解锁文件共享软件背后基于 Python 的二叉搜索树算法密码
文件共享软件在数字化时代扮演着连接全球用户、促进知识与数据交流的重要角色。二叉搜索树作为一种高效的数据结构,通过有序存储和快速检索文件,极大提升了文件共享平台的性能。它依据文件名或时间戳等关键属性排序,支持高效插入、删除和查找操作,显著优化用户体验。本文还展示了用Python实现的简单二叉搜索树代码,帮助理解其工作原理,并展望了该算法在分布式计算和机器学习领域的未来应用前景。
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
76 8
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
188 31
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
内网桌面监控软件深度解析:基于 Python 实现的 K-Means 算法研究
内网桌面监控软件通过实时监测员工操作,保障企业信息安全并提升效率。本文深入探讨K-Means聚类算法在该软件中的应用,解析其原理与实现。K-Means通过迭代更新簇中心,将数据划分为K个簇类,适用于行为分析、异常检测、资源优化及安全威胁识别等场景。文中提供了Python代码示例,展示如何实现K-Means算法,并模拟内网监控数据进行聚类分析。
53 10
控制局域网上网软件之 Python 字典树算法解析
控制局域网上网软件在现代网络管理中至关重要,用于控制设备的上网行为和访问权限。本文聚焦于字典树(Trie Tree)算法的应用,详细阐述其原理、优势及实现。通过字典树,软件能高效进行关键词匹配和过滤,提升系统性能。文中还提供了Python代码示例,展示了字典树在网址过滤和关键词屏蔽中的具体应用,为局域网的安全和管理提供有力支持。
66 17
探索局域网电脑监控软件:Python算法与数据结构的巧妙结合
在数字化时代,局域网电脑监控软件成为企业管理和IT运维的重要工具,确保数据安全和网络稳定。本文探讨其背后的关键技术——Python中的算法与数据结构,如字典用于高效存储设备信息,以及数据收集、异常检测和聚合算法提升监控效率。通过Python代码示例,展示了如何实现基本监控功能,帮助读者理解其工作原理并激发技术兴趣。
98 20
探索企业文件管理软件:Python中的哈希表算法应用
企业文件管理软件依赖哈希表实现高效的数据管理和安全保障。哈希表通过键值映射,提供平均O(1)时间复杂度的快速访问,适用于海量文件处理。在Python中,字典类型基于哈希表实现,可用于管理文件元数据、缓存机制、版本控制及快速搜索等功能,极大提升工作效率和数据安全性。
91 0
Python实用记录(十三):python脚本打包exe文件并运行
这篇文章介绍了如何使用PyInstaller将Python脚本打包成可执行文件(exe),并提供了详细的步骤和注意事项。
230 1
Python实用记录(十三):python脚本打包exe文件并运行
机器学习、基础算法、python常见面试题必知必答系列大全:(面试问题持续更新)
机器学习、基础算法、python常见面试题必知必答系列大全:(面试问题持续更新)
|
6月前
|
Python实用记录(十五):PyQt/PySide6打包成exe,精简版(nuitka/pyinstaller/auto-py-to-exe)
本文介绍了使用Nuitka、PyInstaller和auto-py-to-exe三种工具将Python的PyQt/PySide6应用打包成exe文件的方法。提供了详细的安装步骤、打包命令和参数说明,适合新手学习和实践。
1196 0

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等