What's left of an iPhone photo after Levati and ImageOptim?
After Levati, the gain map, the Display P3 color profile and the EXIF data without location stay, and the photo gets 17.8% smaller at the median; after ImageOptim, all three are gone, at 14.2%. Both remove the location, while ImageOptim leaves the pixels untouched and Levati re-encodes once.
What’s left of an iPhone photo?
With Levati, everything except the location; with ImageOptim, the pixels. After Levati, every photo with a gain map still had it, along with the Display P3 color profile and the EXIF data with camera, exposure and capture time; after ImageOptim, no photo had a gain map, a color profile or EXIF data left.
The GPS data was gone after both tools from every photo that had it. ImageOptim says so itself: by default it exactly preserves image quality, and it removes EXIF metadata such as the GPS position (ImageOptim, checked October 29, 2026).
How much smaller do the photos get?
With Levati, 17.8% at the median, taking 5.58 MB down to 4.42 MB; with ImageOptim, 14.2%, to 4.84 MB. Levati saved between 15.7% and 39.7% per photo, ImageOptim between 7.4% and 22.8%.
Levati re-encodes a photo at quality 90 or above once with jpegli and writes the metadata back without the location. ImageOptim repacks the data losslessly and removes the metadata along with the gain map; part of its saving is that removed data.
And for screenshots?
Levati made them 84.8% smaller at the median, with its default of half size for Retina captures; at full size, it was 63.5%. ImageOptim saved 28.9% losslessly, taking 1.22 MB down to 0.90 MB.
The screenshots carried neither a color profile nor EXIF data, so there was no difference in metadata.
All results compared
Levati is smaller for photos and for screenshots and keeps everything except the location in photos; ImageOptim keeps every pixel instead.
| Path | Median size | Median saving | Median SSIMULACRA 2 (lowest) | Gain map | Display P3 | EXIF | Location |
|---|---|---|---|---|---|---|---|
| iPhone photos, original | 5.58 MB | 0% | 100 | present | present | present | present |
| iPhone photos, Levati | 4.42 MB | 17.8% | 85.6 (83.1) | kept | kept | kept | removed |
| iPhone photos, ImageOptim | 4.84 MB | 14.2% | 88.7 (83.8) | removed | removed | removed | removed |
| Screenshots, original | 1.22 MB | 0% | 100 | – | – | – | – |
| Screenshots, Levati, half size | 0.15 MB | 84.8% | 89.7 (80.9) | – | – | – | – |
| Screenshots, Levati, full size | 0.37 MB | 63.5% | 88.4 (79.7) | – | – | – | – |
| Screenshots, ImageOptim | 0.90 MB | 28.9% | 100 (100) | – | – | – | – |
SSIMULACRA 2 compares an image with the original and gives a score of up to 100; 100 means identical pixels, 90 visually lossless, 85 excellent, 80 very high (SSIMULACRA 2 on GitHub, checked October 28, 2026).
Where does ImageOptim do better?
In fidelity: by default, ImageOptim works losslessly, for JPG and PNG alike. The screenshots kept every pixel with a SSIMULACRA 2 score of 100, and the photos scored 88.7 at the median, above the 85.6 of Levati, which re-encodes.
The photos score below 100 despite lossless work because the color profile is removed: without Display P3, the same color values are read as sRGB, and the comparison with the original shows a difference even though no pixel was re-encoded. The photo without a color profile scored 100 after ImageOptim.
What does Levati do with a photo?
Levati re-encodes a photo at quality 90 or above once with jpegli and keeps the metadata without location, the color profile and the gain map; photos below that stay as they are. Why jpegli is covered in jpegli, MozJPEG or jpegoptim: what does each do for phone photos?; what happens to the location in How do you remove the location from photos on a Mac?.
How was this measured?
The measurement covers 31 JPG photos from iPhone 11 Pro, iPhone 13, iPhone 15 and iPhone 17 and 10 screenshots of public web pages, on October 29, 2026 on a MacBook Pro with M5 Pro running macOS 27.2; each tool got its own working copies of the same material.
- Levati 1.0.2: the function behind the Levati command-line tool, with Trash and journal in a working folder, with the app’s default settings (Remove location on, Limit size off); screenshots once with the half-size default and once without.
- ImageOptim 1.9.3, installed through Homebrew, run with its default settings through the program inside the app bundle.
- Screenshots: captured headless with Chromium through Playwright 1.64.1 in Retina, 1440 × 900 points, so 2880 × 1800 pixels at 144 dpi, without a color profile.
- Quality: SSIMULACRA 2 from jpeg-xl 0.12.0 against the original at the same resolution; half-size results against the original scaled to the same size with
sips. - Metadata: color profile, EXIF and GPS with ExifTool 13.55, the gain map by its identifier in the file.
- Evaluation: file size in bytes, median and range from minimum to maximum; 1 MB is 1,000,000 bytes.
Not measured: photos from other makers, HEIC and ImageOptim’s lossy setting; the photos themselves are not published.