Leanify is a lightweight lossless file minifier/optimizer. It removes unnecessary data (debug information, comments, metadata, etc.) and recompress the file to reduce file size. It will not reduce image quality at all.
- Support recursive minifying. (e.g. a PNG inside an APK inside a ZIP)
- Support a wide variety of file formats.
- Lightweight, one file, under 1MB, no external dependency.
- Everything is done in memory, no temporary files.
- Cross-Platform, support Windows, Linux, Mac.
- Support traverse directory recursively.
- Ability to identify file format by its data instead of name.
I'm not respossible for any consequence of using Leanify.
PLEASE BACKUP THE FILE BEFORE USING LEANIFY!
It is based on ZIP.
Note that modifying files inside APK
will break digital signature.
To install it, you'll have to sign it again.
If you don't want to modify any files inside APK
, use -d 1
option.
cbt
is based on tar. cbz
is based on ZIP.
Office document 1997-2003 (.doc, .xls, .ppt) is not supported.
Looks for data:image/*;base64
and leanify base64 encoded embedded image.
It is based on ZIP.
It is based on ZIP.
It is based on XML.
Leanify embedded images.
It's an image container format found in Tencent QQ.
Leanify the image inside.
Leanify file inside and recompress deflate stream.
Remove all optional section: FEXTRA
, FNAME
, FCOMMENT
, FHCRC
.
Convert 256x256 BMP to PNG.
Leanify PNG inside, if any.
It is based on ZIP.
Remove all application markers (e.g. Exif
(use --keep-exif
to keep it), ICC profile
, XMP
) and comments.
Optimize with mozjpeg
.
Remove all debugging information:
- Source name
- Line defined and last line defined
- Source line position list
- Local list
- Upvalue list
Leanify embedded resource.
Remove Relocation Table
in executable file.
Remove undocumented Rich Header
.
Overlap PE Header
and DOS Header
.
Remove all ancillary chunks except for:
tRNS
: transparent informationfdAT
,fcTL
,acTL
: These chunks are used byAPNG
npTc
: Android 9Patch images (*.9.png)
Optimize with ZopfliPNG
.
It is an archive format found in Tencent QQ.
Leanify all files inside.
Leanify embedded images.
Recompress it with LZMA
.
Remove Metadata Tag.
It is based on XML.
Remove metadata.
Shrink spaces in attributes.
Remove empty attributes.
Remove empty text element and container element.
Leanify all files inside.
Remove all comments, unnecessary spaces, tabs, line breaks.
It is based on ZIP.
Note that modifying files inside xpi
will break digital signature.
To install it, you'll have to sign it again.
Leanify all files inside and recompress deflate stream using Zopfli.
Use STORE
method if DEFLATE
makes file larger.
Remove extra field in Local file header
.
Remove Data descriptor structure
, write those information to Local file header
.
Remove extra field and file comment in Central directory file header
.
Remove comment in End of central directory record
.
Usage: leanify [options] paths
-i, --iteration <iteration> More iterations produce better result, but
use more time, default is 15.
-d, --max_depth <max depth> Maximum recursive depth, unlimited by default.
Set to 1 will disable recursive minifying.
-f, --fastmode Fast mode, no recompression.
-q, --quiet No output to stdout.
-v, --verbose Verbose output.
--keep-exif Do not remove Exif.
-
Visual Studio 2015+
Use Leanify.vcxproj
-
gcc 5+
build_gcc.bat
ormingw32-make
gcc 5+ or clang 3.6+
make