Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
eatyourbaby authored Oct 23, 2022
1 parent 12f28a6 commit aac3872
Showing 1 changed file with 28 additions and 26 deletions.
54 changes: 28 additions & 26 deletions README.md
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`.

0 comments on commit aac3872

Please sign in to comment.