前言
版权声明:本文为本博主在CSDN的原创文章搬运而来,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_72543266/article/details/132421145
七夕节到了,突发想了一下有没有什么可以制作贺卡的代码,自己也比较喜欢听歌,在搜索各种网站无果后,决定自己用所学知识制作一个音乐贺卡。同时欢迎各位评论,或是给出建议,方便我去学习和改进。当然自己技术有限,算是给大家提供一个制作思路吧,当然如果有搞前端的大佬,可以尝试将代码改进做一个更加美观的贺卡,当然这个贺卡想一下的话其实可以在各种节日使用。
1.制作的流程
2.展示效果
解释
这部分展示生成的贺卡,当然自己技术比较简陋,所以就只制作了一个简单的,如果有大佬的话可以在这个基础上做一些变化,我试过,点击生成动态的爱心图案,但是制作的爱心图案比较别扭,或是导入svg爱心图片,但是不显现,最后只能这样了,算是提供了一个思路吧。
这个代吗码还有一个功能,就是在点击图片会开始播放自己在生成时,选择的音乐。
当然这个音乐是在制作贺卡完成时就会嵌入到html网页中,就不用在需要本地的音乐或是服务器来导入音乐了,当然音乐也是会一直循环播放的。
3.如何使用
1.复制代码完整代码使用
需要提前导入相应的库
运行代码后会出现这个窗口
选择自己想要的贺卡背景,选择想要放入的音乐,输入贺词,会出现下面的界面
点击生成贺卡后会出现生成成功
这时候会有一个七夕贺卡的html文件生成到这个使用的py文件的目录下
到这里,就可以把生成的贺卡分享给小伙伴了
2.工具版
这里我已经将生成工具进行打包为exe文件了,并且自己将工具进行实验了,没有问题。
2.1第一步进行下载
在文章顶部会有资源下载,下载压缩包解压后,点击七夕贺卡文件夹,进入后一直往下划到底部,会看到一个七夕贺卡的exe文件
2.2点击打开后会出现这个页面
2.3然后按照上面我写的使用流程进行,完成后生成的贺卡会在exe文件的下面。
到这里也就结束了,赶紧分享给小伙伴吧
4.具体代码部分
import tkinter as tk from tkinter import filedialog import base64 import random from tkinter import messagebox def generate_card(): image_path = image_path_label["text"] audio_path = audio_path_label["text"] message = message_text.get("1.0", "end-1c") # 将选择的音乐文件转换为Base64字符串 with open(audio_path, "rb") as audio_file: audio_data = base64.b64encode(audio_file.read()).decode("utf-8") # 创建贺卡HTML内容 html_content = f""" <!DOCTYPE html> <html> <head> <title>七夕贺卡</title> <style> body, html {{ height: 100%; margin: 0; padding: 0; }} .card {{ position: relative; width: 100%; height: 100%; background-image: url({image_path}); background-position: center; background-repeat: no-repeat; background-size: cover; }} .message {{ position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); text-align: center; font-size: 24px; font-weight: bold; color: #fff; }} audio {{ display: none; }} </style> </head> <body> <div class="card" onclick="playAudio()"> <div class="message">{message}</div> </div> <audio id="audio" src="data:audio/mp3;base64,{audio_data}" loop></audio> <script> function playAudio() {{ var audio = document.getElementById("audio"); audio.play(); }} </script> </body> </html> """ # 将贺卡内容保存为HTML文件 with open("七夕贺卡.html", "w") as html_file: html_file.write(html_content) messagebox.showinfo("生成贺卡成功", "贺卡生成成功!") def select_image(): path = filedialog.askopenfilename(filetypes=[("Image Files", "*.jpg;*.jpeg;*.png")]) image_path_label["text"] = path def select_audio(): path = filedialog.askopenfilename(filetypes=[("Audio Files", "*.wav;*.mp3")]) audio_path_label["text"] = path # 创建主窗口 window = tk.Tk() window.title("音乐贺卡生成器") # 设置窗口尺寸 window.geometry("400x300") # 创建选择图片按钮 image_button = tk.Button(window, text="选择图片", command=select_image) image_button.pack() image_path_label = tk.Label(window, text="") image_path_label.pack() # 创建选择音乐按钮 audio_button = tk.Button(window, text="选择音乐", command=select_audio) audio_button.pack() audio_path_label = tk.Label(window, text="") audio_path_label.pack() # 创建祝福词输入框 message_text = tk.Text(window, height=5) message_text.pack() # 创建生成贺卡按钮 generate_button = tk.Button(window, text="生成贺卡", command=generate_card) generate_button.pack() # 运行主窗口事件循环 window.mainloop()
5.总结
总之,在学习网安的同时还是要将自己的代码部分进行练习,做到不手生,同时也结合了自己软工所学的内容,保持享受学习的过程,继续加油。
每日一言
每一段努力的过程都是值得被尊重的,没有天生完美的人生,只有努力过越来越好的生活。当生活中遇到让你烦心的事情,你要学会自己去解忧。去摒弃那些会让自己变得不好的东西,远离那些给自己带来负能量的事物。学会选择,选择自己想要的人生。