mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 11:57:35 +00:00
LibGfx/ICC: Move enums to dedicated Enums.{cpp,h}
We will need to use ColorSpace in TagTypes.h, and it can't include Profile.h. Also makes Profile.cpp a bit smaller. No behavior change, pure code move.
This commit is contained in:
parent
6d743ce9e8
commit
64ffae9c55
7 changed files with 258 additions and 232 deletions
|
@ -28,6 +28,7 @@ set(SOURCES
|
||||||
Font/WOFF2/Font.cpp
|
Font/WOFF2/Font.cpp
|
||||||
GradientPainting.cpp
|
GradientPainting.cpp
|
||||||
ICC/BinaryWriter.cpp
|
ICC/BinaryWriter.cpp
|
||||||
|
ICC/Enums.cpp
|
||||||
ICC/Profile.cpp
|
ICC/Profile.cpp
|
||||||
ICC/Tags.cpp
|
ICC/Tags.cpp
|
||||||
ICC/TagTypes.cpp
|
ICC/TagTypes.cpp
|
||||||
|
|
|
@ -13,7 +13,7 @@ namespace Gfx::ICC {
|
||||||
|
|
||||||
// The ICC spec uses FourCCs for many different things.
|
// The ICC spec uses FourCCs for many different things.
|
||||||
// This is used to give FourCCs for different roles distinct types, so that they can only be compared to the correct constants.
|
// This is used to give FourCCs for different roles distinct types, so that they can only be compared to the correct constants.
|
||||||
// (FourCCs that have only a small and fixed set of values should use an enum class instead, see e.g. DeviceClass and ColorSpace in Profile.h.)
|
// (FourCCs that have only a small and fixed set of values should use an enum class instead, see e.g. DeviceClass and ColorSpace in Enums.h.)
|
||||||
enum class FourCCType {
|
enum class FourCCType {
|
||||||
PreferredCMMType,
|
PreferredCMMType,
|
||||||
DeviceManufacturer,
|
DeviceManufacturer,
|
||||||
|
|
178
Userland/Libraries/LibGfx/ICC/Enums.cpp
Normal file
178
Userland/Libraries/LibGfx/ICC/Enums.cpp
Normal file
|
@ -0,0 +1,178 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2023, Nico Weber <thakis@chromium.org>
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: BSD-2-Clause
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <LibGfx/ICC/Enums.h>
|
||||||
|
|
||||||
|
namespace Gfx::ICC {
|
||||||
|
|
||||||
|
StringView device_class_name(DeviceClass device_class)
|
||||||
|
{
|
||||||
|
switch (device_class) {
|
||||||
|
case DeviceClass::InputDevice:
|
||||||
|
return "InputDevice"sv;
|
||||||
|
case DeviceClass::DisplayDevice:
|
||||||
|
return "DisplayDevice"sv;
|
||||||
|
case DeviceClass::OutputDevice:
|
||||||
|
return "OutputDevice"sv;
|
||||||
|
case DeviceClass::DeviceLink:
|
||||||
|
return "DeviceLink"sv;
|
||||||
|
case DeviceClass::ColorSpace:
|
||||||
|
return "ColorSpace"sv;
|
||||||
|
case DeviceClass::Abstract:
|
||||||
|
return "Abstract"sv;
|
||||||
|
case DeviceClass::NamedColor:
|
||||||
|
return "NamedColor"sv;
|
||||||
|
}
|
||||||
|
VERIFY_NOT_REACHED();
|
||||||
|
}
|
||||||
|
|
||||||
|
StringView data_color_space_name(ColorSpace color_space)
|
||||||
|
{
|
||||||
|
switch (color_space) {
|
||||||
|
case ColorSpace::nCIEXYZ:
|
||||||
|
return "nCIEXYZ"sv;
|
||||||
|
case ColorSpace::CIELAB:
|
||||||
|
return "CIELAB"sv;
|
||||||
|
case ColorSpace::CIELUV:
|
||||||
|
return "CIELUV"sv;
|
||||||
|
case ColorSpace::YCbCr:
|
||||||
|
return "YCbCr"sv;
|
||||||
|
case ColorSpace::CIEYxy:
|
||||||
|
return "CIEYxy"sv;
|
||||||
|
case ColorSpace::RGB:
|
||||||
|
return "RGB"sv;
|
||||||
|
case ColorSpace::Gray:
|
||||||
|
return "Gray"sv;
|
||||||
|
case ColorSpace::HSV:
|
||||||
|
return "HSV"sv;
|
||||||
|
case ColorSpace::HLS:
|
||||||
|
return "HLS"sv;
|
||||||
|
case ColorSpace::CMYK:
|
||||||
|
return "CMYK"sv;
|
||||||
|
case ColorSpace::CMY:
|
||||||
|
return "CMY"sv;
|
||||||
|
case ColorSpace::TwoColor:
|
||||||
|
return "2 color"sv;
|
||||||
|
case ColorSpace::ThreeColor:
|
||||||
|
return "3 color (other than XYZ, Lab, Luv, YCbCr, CIEYxy, RGB, HSV, HLS, CMY)"sv;
|
||||||
|
case ColorSpace::FourColor:
|
||||||
|
return "4 color (other than CMYK)"sv;
|
||||||
|
case ColorSpace::FiveColor:
|
||||||
|
return "5 color"sv;
|
||||||
|
case ColorSpace::SixColor:
|
||||||
|
return "6 color"sv;
|
||||||
|
case ColorSpace::SevenColor:
|
||||||
|
return "7 color"sv;
|
||||||
|
case ColorSpace::EightColor:
|
||||||
|
return "8 color"sv;
|
||||||
|
case ColorSpace::NineColor:
|
||||||
|
return "9 color"sv;
|
||||||
|
case ColorSpace::TenColor:
|
||||||
|
return "10 color"sv;
|
||||||
|
case ColorSpace::ElevenColor:
|
||||||
|
return "11 color"sv;
|
||||||
|
case ColorSpace::TwelveColor:
|
||||||
|
return "12 color"sv;
|
||||||
|
case ColorSpace::ThirteenColor:
|
||||||
|
return "13 color"sv;
|
||||||
|
case ColorSpace::FourteenColor:
|
||||||
|
return "14 color"sv;
|
||||||
|
case ColorSpace::FifteenColor:
|
||||||
|
return "15 color"sv;
|
||||||
|
}
|
||||||
|
VERIFY_NOT_REACHED();
|
||||||
|
}
|
||||||
|
|
||||||
|
StringView profile_connection_space_name(ColorSpace color_space)
|
||||||
|
{
|
||||||
|
switch (color_space) {
|
||||||
|
case ColorSpace::PCSXYZ:
|
||||||
|
return "PCSXYZ"sv;
|
||||||
|
case ColorSpace::PCSLAB:
|
||||||
|
return "PCSLAB"sv;
|
||||||
|
default:
|
||||||
|
return data_color_space_name(color_space);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
unsigned number_of_components_in_color_space(ColorSpace color_space)
|
||||||
|
{
|
||||||
|
switch (color_space) {
|
||||||
|
case ColorSpace::Gray:
|
||||||
|
return 1;
|
||||||
|
case ColorSpace::TwoColor:
|
||||||
|
return 2;
|
||||||
|
case ColorSpace::nCIEXYZ:
|
||||||
|
case ColorSpace::CIELAB:
|
||||||
|
case ColorSpace::CIELUV:
|
||||||
|
case ColorSpace::YCbCr:
|
||||||
|
case ColorSpace::CIEYxy:
|
||||||
|
case ColorSpace::RGB:
|
||||||
|
case ColorSpace::HSV:
|
||||||
|
case ColorSpace::HLS:
|
||||||
|
case ColorSpace::CMY:
|
||||||
|
case ColorSpace::ThreeColor:
|
||||||
|
return 3;
|
||||||
|
case ColorSpace::CMYK:
|
||||||
|
case ColorSpace::FourColor:
|
||||||
|
return 4;
|
||||||
|
case ColorSpace::FiveColor:
|
||||||
|
return 5;
|
||||||
|
case ColorSpace::SixColor:
|
||||||
|
return 6;
|
||||||
|
case ColorSpace::SevenColor:
|
||||||
|
return 7;
|
||||||
|
case ColorSpace::EightColor:
|
||||||
|
return 8;
|
||||||
|
case ColorSpace::NineColor:
|
||||||
|
return 9;
|
||||||
|
case ColorSpace::TenColor:
|
||||||
|
return 10;
|
||||||
|
case ColorSpace::ElevenColor:
|
||||||
|
return 11;
|
||||||
|
case ColorSpace::TwelveColor:
|
||||||
|
return 12;
|
||||||
|
case ColorSpace::ThirteenColor:
|
||||||
|
return 13;
|
||||||
|
case ColorSpace::FourteenColor:
|
||||||
|
return 14;
|
||||||
|
case ColorSpace::FifteenColor:
|
||||||
|
return 15;
|
||||||
|
}
|
||||||
|
VERIFY_NOT_REACHED();
|
||||||
|
}
|
||||||
|
|
||||||
|
StringView primary_platform_name(PrimaryPlatform primary_platform)
|
||||||
|
{
|
||||||
|
switch (primary_platform) {
|
||||||
|
case PrimaryPlatform::Apple:
|
||||||
|
return "Apple"sv;
|
||||||
|
case PrimaryPlatform::Microsoft:
|
||||||
|
return "Microsoft"sv;
|
||||||
|
case PrimaryPlatform::SiliconGraphics:
|
||||||
|
return "Silicon Graphics"sv;
|
||||||
|
case PrimaryPlatform::Sun:
|
||||||
|
return "Sun"sv;
|
||||||
|
}
|
||||||
|
VERIFY_NOT_REACHED();
|
||||||
|
}
|
||||||
|
|
||||||
|
StringView rendering_intent_name(RenderingIntent rendering_intent)
|
||||||
|
{
|
||||||
|
switch (rendering_intent) {
|
||||||
|
case RenderingIntent::Perceptual:
|
||||||
|
return "Perceptual"sv;
|
||||||
|
case RenderingIntent::MediaRelativeColorimetric:
|
||||||
|
return "Media-relative colorimetric"sv;
|
||||||
|
case RenderingIntent::Saturation:
|
||||||
|
return "Saturation"sv;
|
||||||
|
case RenderingIntent::ICCAbsoluteColorimetric:
|
||||||
|
return "ICC-absolute colorimetric"sv;
|
||||||
|
}
|
||||||
|
VERIFY_NOT_REACHED();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
77
Userland/Libraries/LibGfx/ICC/Enums.h
Normal file
77
Userland/Libraries/LibGfx/ICC/Enums.h
Normal file
|
@ -0,0 +1,77 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2023, Nico Weber <thakis@chromium.org>
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: BSD-2-Clause
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <AK/StringView.h>
|
||||||
|
|
||||||
|
namespace Gfx::ICC {
|
||||||
|
|
||||||
|
// ICC v4, 7.2.5 Profile/device class field
|
||||||
|
enum class DeviceClass : u32 {
|
||||||
|
InputDevice = 0x73636E72, // 'scnr'
|
||||||
|
DisplayDevice = 0x6D6E7472, // 'mntr'
|
||||||
|
OutputDevice = 0x70727472, // 'prtr'
|
||||||
|
DeviceLink = 0x6C696E6B, // 'link'
|
||||||
|
ColorSpace = 0x73706163, // 'spac'
|
||||||
|
Abstract = 0x61627374, // 'abst'
|
||||||
|
NamedColor = 0x6E6D636C, // 'nmcl'
|
||||||
|
};
|
||||||
|
StringView device_class_name(DeviceClass);
|
||||||
|
|
||||||
|
// ICC v4, 7.2.6 Data colour space field, Table 19 — Data colour space signatures
|
||||||
|
enum class ColorSpace : u32 {
|
||||||
|
nCIEXYZ = 0x58595A20, // 'XYZ ', used in data color spaces.
|
||||||
|
PCSXYZ = nCIEXYZ, // Used in profile connection space instead.
|
||||||
|
CIELAB = 0x4C616220, // 'Lab ', used in data color spaces.
|
||||||
|
PCSLAB = CIELAB, // Used in profile connection space instead.
|
||||||
|
CIELUV = 0x4C757620, // 'Luv '
|
||||||
|
YCbCr = 0x59436272, // 'YCbr'
|
||||||
|
CIEYxy = 0x59787920, // 'Yxy '
|
||||||
|
RGB = 0x52474220, // 'RGB '
|
||||||
|
Gray = 0x47524159, // 'GRAY'
|
||||||
|
HSV = 0x48535620, // 'HSV '
|
||||||
|
HLS = 0x484C5320, // 'HLS '
|
||||||
|
CMYK = 0x434D594B, // 'CMYK'
|
||||||
|
CMY = 0x434D5920, // 'CMY '
|
||||||
|
TwoColor = 0x32434C52, // '2CLR'
|
||||||
|
ThreeColor = 0x33434C52, // '3CLR'
|
||||||
|
FourColor = 0x34434C52, // '4CLR'
|
||||||
|
FiveColor = 0x35434C52, // '5CLR'
|
||||||
|
SixColor = 0x36434C52, // '6CLR'
|
||||||
|
SevenColor = 0x37434C52, // '7CLR'
|
||||||
|
EightColor = 0x38434C52, // '8CLR'
|
||||||
|
NineColor = 0x39434C52, // '9CLR'
|
||||||
|
TenColor = 0x41434C52, // 'ACLR'
|
||||||
|
ElevenColor = 0x42434C52, // 'BCLR'
|
||||||
|
TwelveColor = 0x43434C52, // 'CCLR'
|
||||||
|
ThirteenColor = 0x44434C52, // 'DCLR'
|
||||||
|
FourteenColor = 0x45434C52, // 'ECLR'
|
||||||
|
FifteenColor = 0x46434C52, // 'FCLR'
|
||||||
|
};
|
||||||
|
StringView data_color_space_name(ColorSpace);
|
||||||
|
StringView profile_connection_space_name(ColorSpace);
|
||||||
|
unsigned number_of_components_in_color_space(ColorSpace);
|
||||||
|
|
||||||
|
// ICC v4, 7.2.10 Primary platform field, Table 20 — Primary platforms
|
||||||
|
enum class PrimaryPlatform : u32 {
|
||||||
|
Apple = 0x4150504C, // 'APPL'
|
||||||
|
Microsoft = 0x4D534654, // 'MSFT'
|
||||||
|
SiliconGraphics = 0x53474920, // 'SGI '
|
||||||
|
Sun = 0x53554E57, // 'SUNW'
|
||||||
|
};
|
||||||
|
StringView primary_platform_name(PrimaryPlatform);
|
||||||
|
|
||||||
|
// ICC v4, 7.2.15 Rendering intent field
|
||||||
|
enum class RenderingIntent {
|
||||||
|
Perceptual,
|
||||||
|
MediaRelativeColorimetric,
|
||||||
|
Saturation,
|
||||||
|
ICCAbsoluteColorimetric,
|
||||||
|
};
|
||||||
|
StringView rendering_intent_name(RenderingIntent);
|
||||||
|
|
||||||
|
}
|
|
@ -345,173 +345,6 @@ URL device_model_url(DeviceModel device_model)
|
||||||
device_model.c0(), device_model.c1(), device_model.c2(), device_model.c3(), device_model.value));
|
device_model.c0(), device_model.c1(), device_model.c2(), device_model.c3(), device_model.value));
|
||||||
}
|
}
|
||||||
|
|
||||||
StringView device_class_name(DeviceClass device_class)
|
|
||||||
{
|
|
||||||
switch (device_class) {
|
|
||||||
case DeviceClass::InputDevice:
|
|
||||||
return "InputDevice"sv;
|
|
||||||
case DeviceClass::DisplayDevice:
|
|
||||||
return "DisplayDevice"sv;
|
|
||||||
case DeviceClass::OutputDevice:
|
|
||||||
return "OutputDevice"sv;
|
|
||||||
case DeviceClass::DeviceLink:
|
|
||||||
return "DeviceLink"sv;
|
|
||||||
case DeviceClass::ColorSpace:
|
|
||||||
return "ColorSpace"sv;
|
|
||||||
case DeviceClass::Abstract:
|
|
||||||
return "Abstract"sv;
|
|
||||||
case DeviceClass::NamedColor:
|
|
||||||
return "NamedColor"sv;
|
|
||||||
}
|
|
||||||
VERIFY_NOT_REACHED();
|
|
||||||
}
|
|
||||||
|
|
||||||
StringView data_color_space_name(ColorSpace color_space)
|
|
||||||
{
|
|
||||||
switch (color_space) {
|
|
||||||
case ColorSpace::nCIEXYZ:
|
|
||||||
return "nCIEXYZ"sv;
|
|
||||||
case ColorSpace::CIELAB:
|
|
||||||
return "CIELAB"sv;
|
|
||||||
case ColorSpace::CIELUV:
|
|
||||||
return "CIELUV"sv;
|
|
||||||
case ColorSpace::YCbCr:
|
|
||||||
return "YCbCr"sv;
|
|
||||||
case ColorSpace::CIEYxy:
|
|
||||||
return "CIEYxy"sv;
|
|
||||||
case ColorSpace::RGB:
|
|
||||||
return "RGB"sv;
|
|
||||||
case ColorSpace::Gray:
|
|
||||||
return "Gray"sv;
|
|
||||||
case ColorSpace::HSV:
|
|
||||||
return "HSV"sv;
|
|
||||||
case ColorSpace::HLS:
|
|
||||||
return "HLS"sv;
|
|
||||||
case ColorSpace::CMYK:
|
|
||||||
return "CMYK"sv;
|
|
||||||
case ColorSpace::CMY:
|
|
||||||
return "CMY"sv;
|
|
||||||
case ColorSpace::TwoColor:
|
|
||||||
return "2 color"sv;
|
|
||||||
case ColorSpace::ThreeColor:
|
|
||||||
return "3 color (other than XYZ, Lab, Luv, YCbCr, CIEYxy, RGB, HSV, HLS, CMY)"sv;
|
|
||||||
case ColorSpace::FourColor:
|
|
||||||
return "4 color (other than CMYK)"sv;
|
|
||||||
case ColorSpace::FiveColor:
|
|
||||||
return "5 color"sv;
|
|
||||||
case ColorSpace::SixColor:
|
|
||||||
return "6 color"sv;
|
|
||||||
case ColorSpace::SevenColor:
|
|
||||||
return "7 color"sv;
|
|
||||||
case ColorSpace::EightColor:
|
|
||||||
return "8 color"sv;
|
|
||||||
case ColorSpace::NineColor:
|
|
||||||
return "9 color"sv;
|
|
||||||
case ColorSpace::TenColor:
|
|
||||||
return "10 color"sv;
|
|
||||||
case ColorSpace::ElevenColor:
|
|
||||||
return "11 color"sv;
|
|
||||||
case ColorSpace::TwelveColor:
|
|
||||||
return "12 color"sv;
|
|
||||||
case ColorSpace::ThirteenColor:
|
|
||||||
return "13 color"sv;
|
|
||||||
case ColorSpace::FourteenColor:
|
|
||||||
return "14 color"sv;
|
|
||||||
case ColorSpace::FifteenColor:
|
|
||||||
return "15 color"sv;
|
|
||||||
}
|
|
||||||
VERIFY_NOT_REACHED();
|
|
||||||
}
|
|
||||||
|
|
||||||
StringView profile_connection_space_name(ColorSpace color_space)
|
|
||||||
{
|
|
||||||
switch (color_space) {
|
|
||||||
case ColorSpace::PCSXYZ:
|
|
||||||
return "PCSXYZ"sv;
|
|
||||||
case ColorSpace::PCSLAB:
|
|
||||||
return "PCSLAB"sv;
|
|
||||||
default:
|
|
||||||
return data_color_space_name(color_space);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
unsigned number_of_components_in_color_space(ColorSpace color_space)
|
|
||||||
{
|
|
||||||
switch (color_space) {
|
|
||||||
case ColorSpace::Gray:
|
|
||||||
return 1;
|
|
||||||
case ColorSpace::TwoColor:
|
|
||||||
return 2;
|
|
||||||
case ColorSpace::nCIEXYZ:
|
|
||||||
case ColorSpace::CIELAB:
|
|
||||||
case ColorSpace::CIELUV:
|
|
||||||
case ColorSpace::YCbCr:
|
|
||||||
case ColorSpace::CIEYxy:
|
|
||||||
case ColorSpace::RGB:
|
|
||||||
case ColorSpace::HSV:
|
|
||||||
case ColorSpace::HLS:
|
|
||||||
case ColorSpace::CMY:
|
|
||||||
case ColorSpace::ThreeColor:
|
|
||||||
return 3;
|
|
||||||
case ColorSpace::CMYK:
|
|
||||||
case ColorSpace::FourColor:
|
|
||||||
return 4;
|
|
||||||
case ColorSpace::FiveColor:
|
|
||||||
return 5;
|
|
||||||
case ColorSpace::SixColor:
|
|
||||||
return 6;
|
|
||||||
case ColorSpace::SevenColor:
|
|
||||||
return 7;
|
|
||||||
case ColorSpace::EightColor:
|
|
||||||
return 8;
|
|
||||||
case ColorSpace::NineColor:
|
|
||||||
return 9;
|
|
||||||
case ColorSpace::TenColor:
|
|
||||||
return 10;
|
|
||||||
case ColorSpace::ElevenColor:
|
|
||||||
return 11;
|
|
||||||
case ColorSpace::TwelveColor:
|
|
||||||
return 12;
|
|
||||||
case ColorSpace::ThirteenColor:
|
|
||||||
return 13;
|
|
||||||
case ColorSpace::FourteenColor:
|
|
||||||
return 14;
|
|
||||||
case ColorSpace::FifteenColor:
|
|
||||||
return 15;
|
|
||||||
}
|
|
||||||
VERIFY_NOT_REACHED();
|
|
||||||
}
|
|
||||||
|
|
||||||
StringView primary_platform_name(PrimaryPlatform primary_platform)
|
|
||||||
{
|
|
||||||
switch (primary_platform) {
|
|
||||||
case PrimaryPlatform::Apple:
|
|
||||||
return "Apple"sv;
|
|
||||||
case PrimaryPlatform::Microsoft:
|
|
||||||
return "Microsoft"sv;
|
|
||||||
case PrimaryPlatform::SiliconGraphics:
|
|
||||||
return "Silicon Graphics"sv;
|
|
||||||
case PrimaryPlatform::Sun:
|
|
||||||
return "Sun"sv;
|
|
||||||
}
|
|
||||||
VERIFY_NOT_REACHED();
|
|
||||||
}
|
|
||||||
|
|
||||||
StringView rendering_intent_name(RenderingIntent rendering_intent)
|
|
||||||
{
|
|
||||||
switch (rendering_intent) {
|
|
||||||
case RenderingIntent::Perceptual:
|
|
||||||
return "Perceptual"sv;
|
|
||||||
case RenderingIntent::MediaRelativeColorimetric:
|
|
||||||
return "Media-relative colorimetric"sv;
|
|
||||||
case RenderingIntent::Saturation:
|
|
||||||
return "Saturation"sv;
|
|
||||||
case RenderingIntent::ICCAbsoluteColorimetric:
|
|
||||||
return "ICC-absolute colorimetric"sv;
|
|
||||||
}
|
|
||||||
VERIFY_NOT_REACHED();
|
|
||||||
}
|
|
||||||
|
|
||||||
Flags::Flags() = default;
|
Flags::Flags() = default;
|
||||||
Flags::Flags(u32 bits)
|
Flags::Flags(u32 bits)
|
||||||
: m_bits(bits)
|
: m_bits(bits)
|
||||||
|
|
|
@ -46,70 +46,6 @@ private:
|
||||||
u8 m_minor_and_bugfix_version = 0;
|
u8 m_minor_and_bugfix_version = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
// ICC v4, 7.2.5 Profile/device class field
|
|
||||||
enum class DeviceClass : u32 {
|
|
||||||
InputDevice = 0x73636E72, // 'scnr'
|
|
||||||
DisplayDevice = 0x6D6E7472, // 'mntr'
|
|
||||||
OutputDevice = 0x70727472, // 'prtr'
|
|
||||||
DeviceLink = 0x6C696E6B, // 'link'
|
|
||||||
ColorSpace = 0x73706163, // 'spac'
|
|
||||||
Abstract = 0x61627374, // 'abst'
|
|
||||||
NamedColor = 0x6E6D636C, // 'nmcl'
|
|
||||||
};
|
|
||||||
StringView device_class_name(DeviceClass);
|
|
||||||
|
|
||||||
// ICC v4, 7.2.6 Data colour space field, Table 19 — Data colour space signatures
|
|
||||||
enum class ColorSpace : u32 {
|
|
||||||
nCIEXYZ = 0x58595A20, // 'XYZ ', used in data color spaces.
|
|
||||||
PCSXYZ = nCIEXYZ, // Used in profile connection space instead.
|
|
||||||
CIELAB = 0x4C616220, // 'Lab ', used in data color spaces.
|
|
||||||
PCSLAB = CIELAB, // Used in profile connection space instead.
|
|
||||||
CIELUV = 0x4C757620, // 'Luv '
|
|
||||||
YCbCr = 0x59436272, // 'YCbr'
|
|
||||||
CIEYxy = 0x59787920, // 'Yxy '
|
|
||||||
RGB = 0x52474220, // 'RGB '
|
|
||||||
Gray = 0x47524159, // 'GRAY'
|
|
||||||
HSV = 0x48535620, // 'HSV '
|
|
||||||
HLS = 0x484C5320, // 'HLS '
|
|
||||||
CMYK = 0x434D594B, // 'CMYK'
|
|
||||||
CMY = 0x434D5920, // 'CMY '
|
|
||||||
TwoColor = 0x32434C52, // '2CLR'
|
|
||||||
ThreeColor = 0x33434C52, // '3CLR'
|
|
||||||
FourColor = 0x34434C52, // '4CLR'
|
|
||||||
FiveColor = 0x35434C52, // '5CLR'
|
|
||||||
SixColor = 0x36434C52, // '6CLR'
|
|
||||||
SevenColor = 0x37434C52, // '7CLR'
|
|
||||||
EightColor = 0x38434C52, // '8CLR'
|
|
||||||
NineColor = 0x39434C52, // '9CLR'
|
|
||||||
TenColor = 0x41434C52, // 'ACLR'
|
|
||||||
ElevenColor = 0x42434C52, // 'BCLR'
|
|
||||||
TwelveColor = 0x43434C52, // 'CCLR'
|
|
||||||
ThirteenColor = 0x44434C52, // 'DCLR'
|
|
||||||
FourteenColor = 0x45434C52, // 'ECLR'
|
|
||||||
FifteenColor = 0x46434C52, // 'FCLR'
|
|
||||||
};
|
|
||||||
StringView data_color_space_name(ColorSpace);
|
|
||||||
StringView profile_connection_space_name(ColorSpace);
|
|
||||||
unsigned number_of_components_in_color_space(ColorSpace);
|
|
||||||
|
|
||||||
// ICC v4, 7.2.10 Primary platform field, Table 20 — Primary platforms
|
|
||||||
enum class PrimaryPlatform : u32 {
|
|
||||||
Apple = 0x4150504C, // 'APPL'
|
|
||||||
Microsoft = 0x4D534654, // 'MSFT'
|
|
||||||
SiliconGraphics = 0x53474920, // 'SGI '
|
|
||||||
Sun = 0x53554E57, // 'SUNW'
|
|
||||||
};
|
|
||||||
StringView primary_platform_name(PrimaryPlatform);
|
|
||||||
|
|
||||||
// ICC v4, 7.2.15 Rendering intent field
|
|
||||||
enum class RenderingIntent : u32 {
|
|
||||||
Perceptual = 0,
|
|
||||||
MediaRelativeColorimetric = 1,
|
|
||||||
Saturation = 2,
|
|
||||||
ICCAbsoluteColorimetric = 3,
|
|
||||||
};
|
|
||||||
StringView rendering_intent_name(RenderingIntent);
|
|
||||||
|
|
||||||
// ICC v4, 7.2.11 Profile flags field
|
// ICC v4, 7.2.11 Profile flags field
|
||||||
class Flags {
|
class Flags {
|
||||||
public:
|
public:
|
||||||
|
|
|
@ -14,6 +14,7 @@
|
||||||
#include <AK/String.h>
|
#include <AK/String.h>
|
||||||
#include <AK/Vector.h>
|
#include <AK/Vector.h>
|
||||||
#include <LibGfx/ICC/DistinctFourCC.h>
|
#include <LibGfx/ICC/DistinctFourCC.h>
|
||||||
|
#include <LibGfx/ICC/Enums.h>
|
||||||
#include <LibGfx/Vector3.h>
|
#include <LibGfx/Vector3.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue