(1) The PNG contains an embedded ICC color profile* (likely Display-P3 or another wide-gamut color space), (2) Chrome fully honors ICC profiles and performs proper color management (3) Desktop image viewers often ignore or approximate ICC profiles to keep things simple.
Result: Chrome shows you what the image actually looks like according to its embedded profile, while desktop apps (and apparently Safari) show you a “helpful lie”.
The paintings came from the internet, likely screenshots from macOS, iOS, or modern web tools that default to the Display-P3 color space. The pixel values are encoded for Display-P3, but when Chrome renders them, it respects that color space. Desktop apps? They just assume sRGB and move on.
You don’t want to strip the ICC profile, that woul…
(1) The PNG contains an embedded ICC color profile* (likely Display-P3 or another wide-gamut color space), (2) Chrome fully honors ICC profiles and performs proper color management (3) Desktop image viewers often ignore or approximate ICC profiles to keep things simple.
Result: Chrome shows you what the image actually looks like according to its embedded profile, while desktop apps (and apparently Safari) show you a “helpful lie”.
The paintings came from the internet, likely screenshots from macOS, iOS, or modern web tools that default to the Display-P3 color space. The pixel values are encoded for Display-P3, but when Chrome renders them, it respects that color space. Desktop apps? They just assume sRGB and move on.
You don’t want to strip the ICC profile, that would leave Display-P3 pixel values being interpreted as sRGB, making things worse. You need to convert the pixels to sRGB:
magick mogrify -profile /System/Library/ColorSync/Profiles/sRGB\ Profile.icc *.png
This command does three things: 1. Reads the embedded ICC profile 2. Converts the pixel values from that color space to sRGB 3. Embeds a correct sRGB ICC profile
After running this, Chrome will display the images correctly, matching what you saw in your desktop apps all along.
Unironically we’re living in a world where modern devices support Display-P3, DCI-P3, and other wider color spaces but some apps do full color management, others fake it.
The “helpful lies” that desktop image viewers tell you (ignoring ICC profiles, making assumptions about color space) work great until you need actual color accuracy. Then they break down.
Takeaways:
- Chrome was not wrong. it’s doing proper color management by respecting the embedded ICC profile
- Desktop apps might lie. they ignore color profiles to avoid confusion, but this masks the real issue
- Identify might mislead you. the “Gamma” value it reports is often ImageMagick’s assumption, not file metadata
- Convert, don’t strip. When dealing with ICC profiles, you must convert pixel values to the target color space, not just remove the profile