python制作七夕音乐贺卡

简介: 本篇博文是一个关于制作音乐贺卡的教程。自己在去年的在七夕节期间创作了一个代码项目,允许用户自定义背景、音乐和祝福语,生成一个包含音乐的HTML贺卡。教程分为三个部分:前言、制作流程和具体代码。前言提到,由于找不到现成的音乐贺卡模板,我决定自己动手,制作的贺卡适用于各种节日。制作流程包括两个步骤,一是通过提供的Python代码工具选择背景图片、音乐文件和输入祝福语,生成HTML贺卡;二是提供了一个预打包的exe文件,用户可以直接运行并按照提示操作。最后,文章分享了生成贺卡的具体Python代码,并以一句鼓励的话语结尾,强调了努力和选择的重要性。

前言


版权声明:本文为本博主在CSDN的原创文章搬运而来,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。      

原文链接:https://blog.csdn.net/weixin_72543266/article/details/132421145


       七夕节到了,突发想了一下有没有什么可以制作贺卡的代码,自己也比较喜欢听歌,在搜索各种网站无果后,决定自己用所学知识制作一个音乐贺卡。同时欢迎各位评论,或是给出建议,方便我去学习和改进。当然自己技术有限,算是给大家提供一个制作思路吧,当然如果有搞前端的大佬,可以尝试将代码改进做一个更加美观的贺卡,当然这个贺卡想一下的话其实可以在各种节日使用。

1.制作的流程

2.展示效果

解释

       这部分展示生成的贺卡,当然自己技术比较简陋,所以就只制作了一个简单的,如果有大佬的话可以在这个基础上做一些变化,我试过,点击生成动态的爱心图案,但是制作的爱心图案比较别扭,或是导入svg爱心图片,但是不显现,最后只能这样了,算是提供了一个思路吧。

这个代吗码还有一个功能,就是在点击图片会开始播放自己在生成时,选择的音乐

当然这个音乐是在制作贺卡完成时就会嵌入到html网页中,就不用在需要本地的音乐或是服务器来导入音乐了,当然音乐也是会一直循环播放的。

3.如何使用

1.复制代码完整代码使用

需要提前导入相应的库

 运行代码后会出现这个窗口

image.gif

          选择自己想要的贺卡背景,选择想要放入的音乐,输入贺词,会出现下面的界面


                                                                                                                   点击生成贺卡后会出现生成成功


                                                                                             这时候会有一个七夕贺卡的html文件生成到这个使用的py文件的目录下

 

image.gif

                                                                                                        到这里,就可以把生成的贺卡分享给小伙伴了

2.工具版

这里我已经将生成工具进行打包为exe文件了,并且自己将工具进行实验了,没有问题。

image.gif

2.1第一步进行下载

在文章顶部会有资源下载,下载压缩包解压后,点击七夕贺卡文件夹,进入后一直往下划到底部,会看到一个七夕贺卡的exe文件


2.2点击打开后会出现这个页面

image.gif

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()

image.gif

5.总结

       总之,在学习网安的同时还是要将自己的代码部分进行练习,做到不手生,同时也结合了自己软工所学的内容,保持享受学习的过程,继续加油。

每日一言

每一段努力的过程都是值得被尊重的,没有天生完美的人生,只有努力过越来越好的生活。当生活中遇到让你烦心的事情,你要学会自己去解忧。去摒弃那些会让自己变得不好的东西,远离那些给自己带来负能量的事物。学会选择,选择自己想要的人生。

相关文章
|
4月前
|
Python
Python 采集某网站音乐
Python 采集某网站音乐
31 0
|
10月前
|
搜索推荐 算法 前端开发
音乐推荐与管理系统Python+Django网页界面+协同过滤推荐算法
音乐推荐与管理系统Python+Django网页界面+协同过滤推荐算法
101 1
音乐推荐与管理系统Python+Django网页界面+协同过滤推荐算法
|
27天前
|
前端开发 JavaScript 关系型数据库
基于Python+Vue开发的音乐推荐管理系统
该项目是基于Python+Vue开发的音乐推荐管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的音乐推荐管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
18 1
|
1月前
|
存储 JSON 数据可视化
为了给七夕的女盆友挑合适的内衣,我用Python网易严选的内衣店的数据!
为了给七夕的女盆友挑合适的内衣,我用Python网易严选的内衣店的数据!
31 1
|
2月前
|
数据采集 数据可视化 数据挖掘
数据分析入门:用Python和Numpy探索音乐流行趋势
数据分析入门:用Python和Numpy探索音乐流行趋势
|
4月前
|
人工智能 Python
beets,一个有趣的 Python 音乐信息管理工具!
beets,一个有趣的 Python 音乐信息管理工具!
98 4
|
4月前
|
算法 数据可视化 搜索推荐
Python使用矩阵分解法找到类似的音乐
Python使用矩阵分解法找到类似的音乐
|
4月前
|
JavaScript 搜索推荐 前端开发
音乐发现平台:借助Python和Vue构建个性化音乐推荐系统
【4月更文挑战第11天】本文介绍了如何使用Python和Vue.js构建个性化音乐推荐系统。首先确保安装Python、Node.js、数据库系统和Git。后端可选择Flask或Django搭建RESTful API,处理歌曲数据。前端利用Vue.js创建用户界面,结合Vue CLI、Vuex和Vue Router实现功能丰富的SPA。通过Vuex管理状态,Axios与后端通信。这种前后端分离的架构利于协作和系统扩展,助力打造定制化音乐体验。
109 0
|
4月前
|
数据采集 XML 存储
【Python】Python音乐网站数据+音频文件数据抓取(代码+报告)【独一无二】
【Python】Python音乐网站数据+音频文件数据抓取(代码+报告)【独一无二】
|
4月前
|
存储 开发者 Python
Python项目实战案例-批量下载网易云榜单音乐保存至本地
Python项目实战案例-批量下载网易云榜单音乐保存至本地
73 1