一种特殊的方式,把压缩的文件改成图片文件。

让压缩文件成为一张图片,可以预览图片,把压缩文件下载到本地后,修改后缀名后,用解压缩软件对其解压,就可以获取到隐藏在图片中的压缩文件。

误区:压缩包的大小是不会随图片的大小改变的,本质还是一个压缩文件,这里只是把压缩文件隐藏为一个图片可以预览图片而已。

简介

原理:把图片与压缩文件用二进制的方式合并起来。

图片的读取只需要读取前半部分的数据即可以正常显示,压缩文件只需要读取后半部分的数据即可以正常读取。

如何使用图种:电脑右键保存图片(另存为) / 网盘里下载图片原图,把jpg后缀改为rar并解压即可。

制作

方法一:

使用win + r,打开cmd命令框。

1
2
copy /b x.jpg+y.zip z.jpg
# x.jpg+y.zip 你的图片和压缩包,最后为你的压缩成的图。

注:文件推荐带目录,例如:

1
copy /b D:\img\x.jpg+D:\img\y.zip D:\img\z.jpg

方法二:

使用bat脚本执行(根据自己的需要的进行修改)

文件名自定义,后缀为bat

  1. 使用绝对路径来合并为图片格式文件。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    @echo off
    echo 可以拖入文件到本窗口以获得路径
    echo ************************************
    set /p pic=请输入图片文件路径:
    echo.
    set /p rar=请输入压缩包文件路径:
    rem 根据自己的情况改后缀
    copy /b %pic%+%rar% ok.png >nul 2>nul
    echo.
    echo ok! 文件已合并为图片格式文件,保存位置跟压缩包文件同路径
    pause
  2. 脚本使用,根据自己的情况进行修改,需要更改的都有进行备注(只能改到这个地步了)。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    @echo off
    setlocal enabledelayedexpansion
    rem 获取当前目录下的.zip文件(根据自己的情况加后缀)
    for %%f in (*.zip *.rar *.7z) do (
    set "zipfile=%%f"
    )
    rem 获取压缩文件的文件名(不带扩展名)
    for %%f in ("%zipfile%"*) do (
    set "filename=%%~nf"
    )

    rem 获取图片文件名(根据自己的情况加载格式后缀)
    for %%f in (*.jpg *.jpeg *.png *.gif) do (
    set "imgfile=%%f"
    )

    rem 合并图片和压缩文件(根据自己的情况改后缀)
    copy /b "%imgfile%" + "%zipfile%" "%filename%.png"

    echo 合并完成
    rem 等待3秒
    timeout /t 3
    rem 关闭命令行窗口
    exit

    报这个错是因为你改的后缀格式不对,改成正确的后缀格式后才能正确打开压缩文件。

中文乱码

遇到这个问题是因为你保存的编码格式不正确导致的。

解决方法:

  1. 使用 UTF-8 方式保存文件:打开脚本文件,并将其保存为 UTF-8 编码格式(使用编辑器来改变格式保存文件)。
  2. 在脚本开头添加编码声明:在脚本的开头添加chcp 65001,来告诉操作系统和提示符使用 UTF-8 编码来解释和现实脚本。
    1
    2
    @echo off
    chcp 65001