所谓图种,就是把包含.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()