README.md

This commit is contained in:
风之暇想
2025-11-09 14:35:19 +08:00
committed by GitHub
parent 3189921ab7
commit b0b9724b88
2 changed files with 92 additions and 0 deletions

View File

@@ -1,5 +1,8 @@
# FileImgSwap
<p align='center'>
<a href=README.md>中文</a> | <a href=README_EN.md>EN</a>
</p>
**[FileImgSwap](https://github.com/fzxx/FileImgSwap) 文图变**是一款可以把文件与 PNG 图像进行互转的工具,支持加密、图种(附加压缩包)功能,可将任意文件隐藏在 PNG 图像中,也能从生成的 PNG 图像中还原出原始文件。
![](FileImgSwap.gif)

89
README_EN.md Normal file
View File

@@ -0,0 +1,89 @@
# FileImgSwap
<p align='center'>
<a href=README.md>Chinese</a> | <a href=README_EN.md>EN</a>
</p>
**[FileImgSwap](https://github.com/fzxx/FileImgSwap)** is a tool that enables mutual conversion between files and PNG images. It supports encryption and image-seed (appending compressed packages) functions, allowing you to hide any file in a PNG image and restore the original file from the generated PNG image.
![](FileImgSwap.gif)
## Features
- **File to PNG**: Convert any type of file (such as text, documents, compressed packages, etc.) into a PNG image, with file data encoded into the image's pixels.
- **PNG to File**: Extract and restore the original file from a PNG image generated by this tool.
- **Encryption Protection**: Encryption protection via a password/key file with the **same name as the main program in the same directory**.
- **Image-seed Function**: Append a compressed package to the end of the generated PNG image to achieve the "image-seed" effect.
- **Metadata**: The image retains the original file's name and modification time.
## Technical Details
- Encryption algorithm: AES-CTR
- Key algorithm: Key derivation using PBKDF2-SHA256 and HKDF-SHA256
- Image format: PNG
## User Guide
Drag and drop files/folders onto the program icon, or run via the command line.
#### File to PNG
Convert ordinary files to PNG images:
```bash
# Convert a single file
FileImgSwap file.pdf
# Convert multiple files
FileImgSwap image.jpg data.zip notes.txt
```
A PNG file with the `.fis.png` extension will be generated after conversion. For example, `document.pdf` will generate `document.fis.png`.
#### Restore File
Restore the original file from a PNG image:
```bash
# Restore a single PNG
FileImgSwap file.fis.png
# Restore multiple PNGs
FileImgSwap file1.fis.png file2.tz.png
```
The restored file will use the original file name. If a file with the same name exists, it will be automatically renamed (with a sequence number added).
#### Encryption Function
To enable encrypted conversion, **create one of the following files in the same directory as the program** (both can also exist):
- Password file: `.fisp.txt` with the same name as the program (e.g., `FileImgSwap.fisp.txt`), where the first line is the password.
- Key file: `.fisp.key` with the same name as the program (e.g., `FileImgSwap.fisp.key`), which stores the binary key.
The program will automatically detect and use these files for encryption/decryption. **No encryption will be applied if none are detected**.
#### Image-seed Function
Use the `-append` parameter to append a compressed package (zip/rar) to the end of the generated PNG. **Separation is not supported**; extraction requires a compression tool.
```bash
FileImgSwap video.mp4 -append archive.zip
```
The generated file will have the `.tz.png` extension. It can be viewed as a normal image and also extracted as a compressed package (zip/rar formats are recommended; rename the extension and use WinRAR for extraction).
## Changelog
[Changelog](CHANGELOG.md)
## Notes
- Encrypted files can only be restored using the **same password/key file**.
- File-Image Swap + image-seed compressed packages can be encrypted with different passwords to achieve "one image, two decryptions".
- 32-bit programs support a maximum single file size of 2GB, and 64-bit programs support a maximum single file size of 5GB.
## Related Projects
[XiangYue - Text encryption for free expression](https://github.com/fzxx/XiangYue)
[NaughtyDamagePack - Make compressed packages look corrupted](https://github.com/fzxx/NaughtyDamagePack)
## Download Link
https://github.com/fzxx/FileImgSwap/releases