tkinter实现图种

所谓图种,就是把包含.torrent种子文件的压缩包和图片合并在一起,但以图片呈现,把图片的后缀名改变时,又可以看压缩包里的种子。其实压缩包里还可以放其他格式的文件,比如.txt

在cmd中,使用如下

copy /b 图片路径+压缩包路径 新图片的路径

现在我用python中的thinter来实现
主要原理是以二进制读取图片和压缩包,由于两者格式规则不同,图片和压缩包可以完美合在一起
图种生成器

from tkinter import filedialog,messagebox
import tkinter
# pic_list=["jpg","bmp","png","gif"]
# file_list=["rar","7z","zip"]
class Application():
    def __init__(self, root):
        pass
    def get_pic_path(self):
        self.pic_path_=tkinter.filedialog.askopenfilename(filetypes=[("图片",".jpg;*.png;*.bmp,*.gif"),("PNG",".png"),("BMP",".bmp"),("JPG",".jpg"),("GIF",".gif")])
        pic_path.set(self.pic_path_)
    def get_file_path(self):
        self.file_path_=tkinter.filedialog.askopenfilename(filetypes=[("压缩格式","*.rar;*.7z;*.zip")])
        file_path.set(self.file_path_)
    def save_path(self):
        self.save_path_=tkinter.filedialog.askdirectory()  # 返回目录名
        save_path.set(self.save_path_)
    def process(self):
        try:
            if self.save_path_ and self.file_path_ and self.pic_path_:
                with open(self.pic_path_, "rb") as f1:
                    a = f1.read()
                with open(self.file_path_, "rb") as f2:
                    b = f2.read()
                str = self.pic_path_.split("/")[-1]
                name = str.split(".")[0]#获取图片名字
                ext=str.split(".")[1]#获取图片格式
                with open(self.save_path_+"/"+name+"_seed"+"."+ext, "wb+") as f3:
                    f3.write(a+b)
                f1.close()
                f2.close()
                f3.close()
                tkinter.messagebox.showinfo("成功","图种已生成")
            else:
                tkinter.messagebox.showwarning("警告", "缺少必要目录")
        except:
            tkinter.messagebox.showwarning("警告", "缺少必要目录")

root = tkinter.Tk()
root.resizable(False, False)
root.title("图种生成器,用于隐藏文件种子")
app = Application(root)
pic_path = tkinter.StringVar()
file_path = tkinter.StringVar()
save_path = tkinter.StringVar()
tkinter.Entry(root, textvariable = pic_path,width=50).grid(row = 0, column = 1)
tkinter.Button(root, text = "图片路径", command =app.get_pic_path).grid(row = 0, column = 2)
tkinter.Entry(root, textvariable = file_path,width=50).grid(row = 1, column = 1)
tkinter.Button(root, text = "压缩路径", command =app.get_file_path).grid(row = 1, column = 2)
tkinter.Entry(root, textvariable = save_path,width=50).grid(row = 2, column = 1)
tkinter.Button(root,text = "保存路径",command=app.save_path).grid(row = 2, column = 2)
tkinter.Button(root, text = "合并", command =app.process,width=10).grid(row = 3, columnspan = 3)
root.mainloop()

参考链接:
图种制作百度经验.
知乎-图种原理.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值