forked from ImageOptim/ImageOptim
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
12f28a6
commit aac3872
Showing
1 changed file
with
28 additions
and
26 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,29 +1,31 @@ | ||
# ImageOptim | ||
|
||
[ImageOptim](https://imageoptim.com) is a GUI for lossless image optimization tools: Zopfli, PNGOUT, [OxiPNG](https://crates.rs/crates/oxipng), AdvPNG, PNGCrush, [JPEGOptim](https://github.com/tjko/jpegoptim), Jpegtran, [Guetzli](https://github.com/google/guetzli), [Gifsicle](https://kornel.ski/lossygif), [SVGO](https://github.com/svg/svgo), [svgcleaner](https://github.com/RazrFalcon/svgcleaner) and [MozJPEG](https://github.com/mozilla/mozjpeg). | ||
|
||
# ImageOptim-ESR | ||
|
||
[ImageOptim-ESR](https://github.com/DingoBits/ImageOptim-ESR) is a (stop-gap) continuation of [ImageOptim](https://github.com/ImageOptim/ImageOptim) 1.x, a GUI for lossless image optimization tools: [advpng](https://www.advancemame.it/doc-advpng), [gifsicle](https://github.com/kohler/gifsicle), [Guetzli](https://github.com/google/guetzli), [jpegoptim](https://github.com/tjko/jpegoptim), [MozJPEG](https://github.com/mozilla/mozjpeg), [oxipng](https://crates.rs/crates/oxipng), [pngcrush](http://pmt.sourceforge.net/pngcrush), [pngquant](https://github.com/kornelski/pngquant), [pngout](http://www.advsys.net/ken/utils.htm), [svgcleaner](https://github.com/RazrFalcon/svgcleaner), [SVGO](https://github.com/svg/svgo) and [zopfli](https://github.com/google/zopfli). | ||
|
||
ImageOptim 1.x [has been announced EOL with 2.x in development](https://github.com/ImageOptim/ImageOptim/issues/354). The last version was 1.8.9a1 with limited arm64 support. ESR stands for Extended Support Release. This project updates its internal components with specific optimization for Apple Silicon, and makes minor bug fixes. There are no plans to make any major changes to the codebase. | ||
|
||
| | Original | ESR | Native arm64 | | ||
| ---------------------- | ------------- | ------------- | ------------ | | ||
| advpng | 1.15 | 2.3 | ✓ | | ||
| gifsicle | 1.8.9 | 1.9.3 | ✓ | | ||
| guetzli | 1.0.1-de70ac2 | 1.0.1-214f2bb | ✓ | | ||
| jpegoptim | 1.4.4 | 1.5.0 | ✓ | | ||
| MozJPEG | 1.5.3 | 4.1.1 | ✓ | | ||
| oxipng | 4.0.3 | 6.0.1 | ✓ | | ||
| pngcrush | 1.8.10 | 1.8.13 | ✓ | | ||
| pngquant | 2.11.0 | 4.0 | ✓ | | ||
| pngout<sup>1</sup> | 2015-09-20 | 2020-01-15 | ✗ | | ||
| svgcleaner<sup>2</sup> | 0.9.6 | 0.9.6 | ✓ | | ||
| SVGO | 1.0.5 | 2.8.0 | ✓ | | ||
| zopfli | 1.0.2 | 1.0.3 | ✓ | | ||
|
||
1. pngout is a proprietary freeware and currently no arm64 version is available. A warning has been added when enabling on Apple Silicon. | ||
2. svgcleaner has been deprecated. | ||
3. Additionally, [zlib-dougallj](https://github.com/dougallj/zlib-dougallj) is [used on Apple Silicon systems](https://dougallj.wordpress.com/2022/08/20/faster-zlib-deflate-decompression-on-the-apple-m1-and-x86). | ||
## Building | ||
|
||
Requires: | ||
|
||
* Xcode | ||
* [Rust](https://rust-lang.org/) installed via [rustup](https://www.rustup.rs/) (not Homebrew). | ||
|
||
```sh | ||
git clone --recursive https://imageoptim.com ImageOptim | ||
cd ImageOptim | ||
``` | ||
|
||
To get started, open `imageoptim/ImageOptim.xcodeproj`. It will automatically download and build all subprojects when run in Xcode. | ||
|
||
In case of build errors, these sometimes help: | ||
|
||
```sh | ||
git submodule update --init | ||
``` | ||
Instead of painstakingly making Xcode work with autotools, I took the patented quick-and-dirty approach and separated the build into three parts. | ||
|
||
```sh | ||
cd gifsicle # or pngquant | ||
make clean | ||
make | ||
``` | ||
1. Build backend tools in terminal with `build_arm64.sh` and `build_x64.sh`. You can choose just build for one platform. (The script was written for arm64 so it needs a little tweak to run on x64 systems. I’ll get to it soon™. ) | ||
2. Make universal binaries with `lipo.sh`. | ||
3. Build ImageOptim-ESR with `imageoptim/ImageOptim.xcodeproj`. |