serenity/Userland
Nico Weber 0acc370f7b image: Load images that contain CMYK data into a CMYKBitmap
Every single of images's functions then go ahead and error out on
CMYKBitmaps for now.

(Alternatively, we could make them the low-quality CMYK->RGB
conversion that previously happened implicitly, but let's go
with this for now.)

(With this structure, we could also do something smarter for
Vector images in the future.)

Here's how this looks:

    % Build/lagom/bin/image \
        -o out.png Tests/LibGfx/test-inputs/jpg/ycck-2111.jpg
    Runtime error: Can't save CMYK bitmaps yet, convert to RGB first
                   with --convert-to-color-profile

    % Build/lagom/bin/image \
        --convert-to-color-profile serenity-sRGB.icc \
        -o out.png Tests/LibGfx/test-inputs/jpg/ycck-2111.jpg
    Runtime error: No source color space embedded in image.
                   Pass one with --assign-color-profile.

    % Build/lagom/bin/image \
        --assign-color-profile path/to/CMYK/USWebCoatedSWOP.icc \
        --convert-to-color-profile serenity-sRGB.icc \
        -o out.png Tests/LibGfx/test-inputs/jpg/ycck-2111.jpg
    Runtime error: Psych, can't convert CMYK bitmaps yet either

As usual, serenity-sRGB.icc is from
`Build/lagom/bin/icc  -n sRGB --reencode-to serenity-sRGB.icc` and
the adobe cmyk profiles are available at
https://www.adobe.com/support/downloads/iccprofiles/iccprofiles_win.html
which ultimately leads to:
https://download.adobe.com/pub/adobe/iccprofiles/win/AdobeICCProfilesCS4Win_end-user.zip
2024-01-25 15:53:44 +01:00
..
Applets Everywhere: Use to_number<T> instead of to_{int,uint,float,double} 2023-12-23 20:41:07 +01:00
Applications AK+Userland: Return String from human_readable_size() functions 2024-01-25 09:07:32 +01:00
BuggieBox checksum: Add support for BLAKE2b 2023-09-17 16:49:35 +03:30
Demos WidgetGallery: Remove quotes around GML boolean values 2024-01-21 08:38:18 -05:00
DevTools HackStudio: Replace custom recent-project management with the LibGUI one 2024-01-24 11:07:03 +00:00
DynamicLoader LibC: Separate arch dependent fenv functions 2024-01-22 20:06:09 -07:00
Games AK+Userland: Return String from human_readable_[digital_]time() 2024-01-25 09:07:32 +01:00
Libraries LibGfx: Remove unused parameter from cmyk_frame() 2024-01-25 15:53:44 +01:00
Services AK+Userland: Return String from human_readable_size() functions 2024-01-25 09:07:32 +01:00
Shell Shell: Use reverse iterators for history events 2024-01-23 01:31:25 +03:30
Utilities image: Load images that contain CMYK data into a CMYKBitmap 2024-01-25 15:53:44 +01:00
CMakeLists.txt