A lightweight desktop tool built with Python + Tkinter for:
- Image compression
- File compression
- File hash calculation (
MD5 / SHA1 / SHA256) - MD5 modification (change file MD5 without affecting visible content)
- Supports
JPG / PNG / WEBP / BMP / TIFF - Supports selecting a whole image folder
- Supports recursive batch processing for subfolders
- Keeps the original file name after compression
- Output format options:
Keep Original / JPEG / WEBP / PNG - Adjustable quality for lossy formats
- Resize options: keep original, scale by percentage, limit the longest edge, or set custom width/height
- Custom width and height can use different ratios, and the image will be stretched automatically
- A
Lock aspect ratiooption is available for custom width/height resizing - PNG modes:
Standard PNGandTinify-like PNG - Single-file mode outputs to
compressed_outputnext to the source image - Folder mode outputs to
compressed_outputunder the selected folder while preserving relative structure - Built-in thumbnail preview for the first few selected images
- Supports selecting a whole folder
- Supports recursive file collection before archiving
- Supports
zip - Supports
tar.gz - Supports
tar.xz - Supports single-file
gz - Folder mode preserves directory structure inside the archive
- Calculate
MD5 - Calculate
SHA1 - Calculate
SHA256
- Change the MD5 hash of any file without affecting its visible content
- Appends random bytes to a copy of the file
- Supports batch processing and folder recursion
- Preserves directory structure in the output
md5_modifiedfolder - Displays before and after MD5 values
- Dark header with status cards
- Clear tab-based workflow
- Scrollable result logs
- Bottom status bar for current progress
- Drag and drop support for files and folders
tkinterdnd2is included inrequirements.txt- Reinstall dependencies once before first use if needed
- Uses
imagequantfor 256-color palette quantization - Uses no dithering by default to better match the tested Tinify PNG samples
- Uses a fixed quantization quality range of
40~90 - Runs an extra PNG optimization pass with
zopfliwhen available - Falls back to standard PNG compression automatically if dependencies are missing
Install dependencies:
python3 -m pip install -r requirements.txtStart the app:
python3 app.py- Better drag-hover effects
- Image resize options
- Lossless/lossy WebP switch
- Export hash lists to text files
- Package as macOS / Windows desktop app