七夕音乐贺卡(适用于各种节日)

目录

目录

前言

1.制作的流程

2.展示效果 

解释

3.如何使用

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

2.工具版

2.1第一步进行下载

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

2.3然后按照上面我写的使用流程进行,完成后生成的贺卡会在exe文件的下面。

4.具体代码部分

5.总结


前言

个人资料:

软工准大二

一名普通本科生

热爱网络安全与编程

目前正在网络安全培训

想寻找志同道合的朋友一起学习共同提高!!!

        七夕节到了,突发想了一下有没有什么可以制作贺卡的代码,自己也比较喜欢听歌,在搜索各种网站无果后,决定自己用所学知识制作一个音乐贺卡。

                    同时欢迎各位评论,或是给出建议,方便我去学习和改进

        当然自己技术有限,算是给大家提供一个制作思路吧,当然如果有搞前端的大佬,可以尝试将代码改进做一个更加美观的贺卡,当然这个贺卡想一下的话其实可以在各种节日使用。

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.总结

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

每日一言

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

 创作不易,如果我的制作对你有帮助的话,不妨点赞收藏一下,期待我的继续创作哦。

猜你喜欢

转载自blog.csdn.net/weixin_72543266/article/details/132421145
今日推荐