吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 722|回复: 30
上一主题 下一主题
收起左侧

[原创工具] 压缩包与图片合并工具

[复制链接]
跳转到指定楼层
楼主
yingziLI 发表于 2025-3-21 22:07 回帖奖励
本帖最后由 yingziLI 于 2025-3-24 12:12 编辑

程序实现功能

    1、编写程序的初衷是为了解决工作中为了上传指定大小图片的烦恼,如:文件上传场景中需要测试10M的图片等。
    2、在使用中发现也可以方便隐藏本地的某些文件,把这些文件打包成压缩包在和图片合并展示的就是图片不是对应的文件。

使用说明

    1、打包程序支持Windows系统,如果是Mac或linux系统可以自动打包或安装python环境运行;
    2、使用方式,双击运行“png_zip.exe”程序即可;
    3、保存路径和合成的图片名称可以修改,程序设置了默认值便于查找;
    4、关于还原文件,可以把生成的图片后缀 .jpg 修改为 .zip 或 .rar,在打开对应压缩包即可;

打包功能说明

    1、因为程序是使用python编写的,如果需要打包在不同的操作系统上运行,可以根据个人喜好选择不同的打包方式;
    2、pyhton常用的打包工具有auto-py-to-exe、Nuitka、PyInstaller、Pynsist、cx_freeze、buildozer、py2app、py2exe等;
    3、我这边使用的是Nuitka打包方式,具体打包命令:
            nuitka --standalone --onefile --follow-imports --windows-icon-from-ico=wjzh32.ico --windows-disable-console --enable-plugin=tk-inter png_zip.py
    4、使用pyinstaller打包方式,参考名称:
            pyinstaller -i wjzh32.ico -F -w png_zip.py

运行效果截图



核心代码

    def start_processing(self):
        """输入验证"""
        required = [
            (self.image_path, "未选择图片文件"),
            (self.zip_path, "未选择压缩包"),
            (self.output_name, "未设置输出文件名"),
            (self.save_dir, "未设置保存路径")
        ]

        for var, msg in required:
            if not var.get():
                messagebox.showwarning("错误", msg)
                return

        # 构建输出路径
        if self.output_name.get():
            output_path = os.path.join(self.save_dir.get(), f"{self.output_name.get()}.jpg")
        else:
            output_path = os.path.join(self.save_dir.get(), f"{int(time())}.jpg")

        print(f"正在生成预览图:{output_path}")
        print(f"图片路径:{self.image_path.get()}")
        print(f"压缩包路径:{self.zip_path.get()}")
        print(f"预览图输出目录:{self.save_dir.get()}\n")

        try:
            # 读取二进制内容并拼接
            with open(self.image_path.get(), "rb") as f_img, open(self.zip_path.get(), "rb") as f_zip:
                img_data = f_img.read()
                zip_data = f_zip.read()
                merged_data = img_data + zip_data

            # 写入新文件(注意:这会生成一个无效的 PNG 文件!)
            with open(os.path.join(self.save_dir.get(), output_path), "wb") as f_out:
                f_out.write(merged_data)
            messagebox.showinfo("处理成功", f"预览图已生成:{output_path}")
        except Exception as e:
            print(f"错误:{str(e)}")
            messagebox.showerror("错误", f"处理失败:{str(e)}")

下载地址:压缩包与图片合并工具V1.0.1
更新升级版本下载地址:
https://wwkk.lanzouo.com/b00zxmg11a
密码:52pojie

已经打包好了Windows系统的程序,可以下载使用,包含源文件,mac或linux系统可以自行下载源文件测试;

免费评分

参与人数 3吾爱币 +9 热心值 +2 收起 理由
guqiaozhao + 1 谢谢@Thanks!
pdry + 1 + 1 用心讨论,共获提升!
风之暇想 + 7 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

推荐
 楼主| yingziLI 发表于 2025-3-23 01:31 |楼主
hanbazhen 发表于 2025-3-22 11:25
楼主,把文件打包成压缩包,再和图片合并展示的就是图片不是对应的文件,这个用途是什么?

我设计初衷是为了解决想要不同大小的图片做系统测试开发的,后来发现也可以用于其他作用,比如伪装数据,一些安全测试等。看个人怎么使用
推荐
 楼主| yingziLI 发表于 2025-3-23 01:20 |楼主
goodpanda 发表于 2025-3-23 00:33
我想问问压缩包有大小限制吗?7z等其他后缀的压缩包支持不?

原则上是没有限制的,至少代码上面是没有做限制。
7z格式也支持,在选择压缩包时,把默认的压缩类型选择(*)就可以选中7z格式了
沙发
Lcp1027 发表于 2025-3-22 10:58
3#
机制082 发表于 2025-3-22 11:09
合并后图片还能以图片的方式打开。
4#
hanbazhen 发表于 2025-3-22 11:25
楼主,把文件打包成压缩包,再和图片合并展示的就是图片不是对应的文件,这个用途是什么?
5#
lxhwan100 发表于 2025-3-22 11:47
用图片影藏文件
6#
sdmaoyj 发表于 2025-3-22 12:14
这个东西不错
7#
fxd680126 发表于 2025-3-22 13:00
请问这能达到什么目的?
8#
wuai22222 发表于 2025-3-22 13:22
感谢分享,想知道使用场景。
9#
pdry 发表于 2025-3-22 17:52
以前可以用图片隐藏种子,现在很多网站都会对上传的图片进行压缩,藏不了东西了。
10#
xq888 发表于 2025-3-22 23:41
多谢分享。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2025-3-28 02:33

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表