saucecontrol / PhotoSauce

MagicScaler high-performance, high-quality image processing pipeline for .NET
http://photosauce.net/
MIT License
589 stars 49 forks source link

v.0.14 Change Log / Roadmap #105

Closed saucecontrol closed 12 months ago

saucecontrol commented 1 year ago

Linux Support

v0.14 will make progress toward functional parity between Windows and Linux. The current known gaps are:

One area that will not get parity is handling of image metadata -- specifically the MetadataNames feature. Since the names/paths used are specific to WIC's handling of matadata, this feature will stay Windows-only. An alternate (and more powerful) API for metadata handling is still planned for a future version.

Color Management Changes

Display P3

Since v0.11 (#51), MagicScaler has normalized wide gamut images to a P3-like color space designed to work around issues in web browsers and other software that did not properly support Display P3 ICC profiles. With the upcoming release of Firefox v108, the Display P3 color space will be properly supported in all major browsers, so starting in v0.14, we'll embed an actual Display P3 profile for the normalized color space.

CMYK

In previous versions, when MagicScaler encountered a CMYK image that did not have an embedded profile, it substituted the Windows default CMYK profile. It is highly unlikely this would result in correct appearance of the image, but CMYK conversion to RGB is undefined without a color profile, so the Windows default profile is technically as good as any. In reality, most CMYK images in the wild originate from Photoshop, and Photoshop's default CMYK profiles are quite different from Windows'.

Starting in v0.14, the pipeline will inject a new CMYK compact profile modeled after the appearance of Adobe's U.S. Web Coated (SWOP) v2 profile, which is the Photoshop default for North American users. This will give consistent results on Windows and Linux and will be more likely to match the intended appearance.

Note that this change does not affect images that do have an embedded profile. The embedded profile will be used for correct conversion if present, as always.

Gamma Slope-Limiting

Some commercial color engines, like Adobe's, modify the pure gamma curves defined by some color spaces to limit the slope as it approaches zero, improving contrast in darker areas. Going forward, MagicScaler's internal color management will do this as well.

Breaking Changes

marknadig commented 1 year ago

Landed here looking for what changed between .13.1 and .13.2. I would greatly appreciate a changelog.md in the main repo. Thanks for great OSS project.

saucecontrol commented 1 year ago

I include a change log with each release, on the releases page. I'll generally only create these separate change log issues when deeper explanations are needed or as a heads-up of big changes before they land.