Open WimAtIHomer opened 2 months ago
OK.... This is an interesting issue.
The JPEG has a CMYK ICC profile and is encoded using YCCK colors. When we convert to RGB, the colors are decoded as in the WEBP output. Since we don't then reverse the operation (WEBP encodes as BGR (optional A)) the colors are incorrectly encoded. We preserve the color type as JPEG metadata so encoding reverses the decode color transform and produces a much closer result.
The fix would be to have #1567 working and convert to RGB using the profile as a guide. When that will ever happen, I simply do not know. I need help there.
Prerequisites
DEBUG
andRELEASE
modeImageSharp version
3.1.4
Other ImageSharp packages and versions
none
Environment (Operating system, version and so on)
Windows 11
.NET Framework version
6 and 8
Description
In our application we resize and change images from png and jpg to webp for better performance on the website. This works very good most of the times. But for some jpg images there is a distinct color change. It might be related to #1567 but I am not sure, doesn't happen when just resizing the jpg image.
Steps to Reproduce
using var image = await Image.LoadAsync(file.OpenReadStream());
using var outStream = new MemoryStream();
await image.SaveAsync(outStream, new WebpEncoder());
Jpg image:![3_VMware Better Together](https://github.com/SixLabors/ImageSharp/assets/1989550/29f38593-9ef7-4b14-9f79-4d43b1b83d18)
webp image looks like this (see webp in zip):![VMware Better Together](https://github.com/SixLabors/ImageSharp/assets/1989550/ecabcd9f-85d3-4206-beca-b5599f81bfa3)
Images
VMware Better Together.zip