Spec-Zone.ru › OpenJDK 17

Класс ICC_ColorSpace

java.lang.Object
java.awt.color.ColorSpace
java.awt.color.ICC_ColorSpace
Все реализованные интерфейсы:
Serializable
public class ICC_ColorSpace extends ColorSpace
Класс ICC_ColorSpace является реализацией абстрактного класса ColorSpace. Это представление независимых от устройства и зависимых от устройства цветовых пространств основано на спецификации Международного консорциума по цвету ICC.1:2001-12, Формат профилей цвета (см. http://www.color.org).

Обычно Color или ColorModel ассоциируются с профилем ICC, который является профилем ввода, отображения или вывода (см. спецификацию ICC). Существуют и другие типы профилей ICC, например, абстрактные профили, профили связи устройств и профили цветов с именами, которые не содержат информации, подходящей для представления цветового пространства цвета, изображения или устройства (см. ICC_Profile). Попытка создать объект ICC_ColorSpace из неподходящего профиля ICC является ошибкой.

Профили ICC представляют преобразования из цветового пространства профиля (например, монитора) в пространство связи профилей (PCS). Профили, которые важны для маркировки изображений или цветов, имеют PCS, который является одним из независимых от устройства пространств (одно CIEXYZ пространство и два CIELab пространства), определенных в спецификации формата профилей ICC. Большинство важных профилей либо имеют обратимые преобразования, либо явно указывают преобразования в обоих направлениях. Если объект ICC_ColorSpace используется таким образом, что требуется преобразование из PCS в собственное пространство профиля, и недостаточно данных для правильного выполнения преобразования, объект ICC_ColorSpace будет выдавать результаты в указанном типе цветового пространства (например, TYPE_RGB, TYPE_CMYK, и т.д.), но конкретные значения цветов выходных данных будут неопределенными.

Детали этого класса не важны для простых апплетов, которые рисуют в стандартном цветовом пространстве или обрабатывают и отображают импортированные изображения с известным цветовым пространством. В крайнем случае таким апплетам потребуется получить одно из стандартных цветовых пространств через ColorSpace.getInstance(int).

См. также:
  • ColorSpace
  • ICC_Profile
  • Сериализованная форма

Краткое описание полей

Поля, объявленные в классе java.awt.color.ColorSpace

CS_CIEXYZ, CS_GRAY, CS_LINEAR_RGB, CS_PYCC, CS_sRGB, TYPE_2CLR, TYPE_3CLR, TYPE_4CLR, TYPE_5CLR, TYPE_6CLR, TYPE_7CLR, TYPE_8CLR, TYPE_9CLR, TYPE_ACLR, TYPE_BCLR, TYPE_CCLR, TYPE_CMY, TYPE_CMYK, TYPE_DCLR, TYPE_ECLR, TYPE_FCLR, TYPE_GRAY, TYPE_HLS, TYPE_HSV, TYPE_Lab, TYPE_Luv, TYPE_RGB, TYPE_XYZ, TYPE_YCbCr, TYPE_Yxy

Краткое описание конструкторов

Конструктор Описание
ICC_ColorSpace(ICC_Profile profile)
Создает новый ICC_ColorSpace из объекта ICC_Profile.

Краткое описание методов

Модификатор и тип Метод Описание
float[] fromCIEXYZ(float[] colorvalue)
Преобразует значение цвета, предполагаемое в цветовом пространстве преобразования CS_CIEXYZ, в это цветовое пространство.
float[] fromRGB(float[] rgbvalue)
Преобразует значение цвета, предполагаемое в стандартном цветовом пространстве CS_sRGB, в это ColorSpace.
float getMaxValue(int component)
Возвращает максимальное нормализованное значение компонента цвета для указанного компонента.
float getMinValue(int component)
Возвращает минимальное нормализованное значение компонента цвета для указанного компонента.
ICC_Profile getProfile()
Возвращает ICC_Profile для этого ICC_ColorSpace.
float[] toCIEXYZ(float[] colorvalue)
Преобразует значение цвета, предполагаемое в этом ColorSpace, в цветовое пространство преобразования CS_CIEXYZ.
float[] toRGB(float[] colorvalue)
Преобразует значение цвета, предполагаемое в этом ColorSpace, в значение в стандартном цветовом пространстве CS_sRGB.

Методы, объявленные в классе java.awt.color.ColorSpace

getInstance, getName, getNumComponents, getType, isCS_sRGB

Методы, объявленные в классе java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Подробное описание конструкторов

ICC_ColorSpace

public ICC_ColorSpace(ICC_Profile profile)
Создаёт новый ICC_ColorSpace из объекта ICC_Profile.
Параметры:
profile - указанный объект ICC_Profile
Исключения:
IllegalArgumentException - если профиль не подходит для представления ColorSpace

Подробное описание методов

getProfile

public ICC_Profile getProfile()
Возвращает профиль ICC_Profile для этого ICC_ColorSpace.
Возвращает:
профиль ICC_Profile для этого ICC_ColorSpace

toRGB

public float[] toRGB(float[] colorvalue)
Преобразует значение цвета, предполагая, что оно находится в этом ColorSpace, в значение в стандартном пространстве цветов CS_sRGB.

Этот метод преобразует значения цветов с использованием алгоритмов, предназначенных для достижения наилучшего перцепционного соответствия между входными и выходными цветами. Для выполнения колориметрического преобразования значений цветов необходимо использовать метод toCIEXYZ этого пространства цветов, чтобы сначала преобразовать из входного пространства цветов в пространство цветов CS_CIEXYZ, а затем использовать метод fromCIEXYZ пространства цветов CS_sRGB для преобразования из CS_CIEXYZ в выходное пространство цветов. См. toCIEXYZ и fromCIEXYZ для получения дополнительной информации.

Определено в:
toRGB в классе ColorSpace
Параметры:
colorvalue - массив float с длиной не менее количества компонентов в этом ColorSpace
Возвращает:
массив float длиной 3
Исключения:
ArrayIndexOutOfBoundsException - если длина массива не менее количества компонентов в этом ColorSpace

fromRGB

public float[] fromRGB(float[] rgbvalue)
Преобразует значение цвета, предполагая, что оно находится в стандартном пространстве цветов CS_sRGB, в это ColorSpace.

Этот метод преобразует значения цветов с использованием алгоритмов, предназначенных для достижения наилучшего перцепционного соответствия между входными и выходными цветами. Для выполнения колориметрического преобразования значений цветов необходимо использовать метод toCIEXYZ пространства цветов CS_sRGB для первоначального преобразования из входного пространства цветов в пространство цветов CS_CIEXYZ, а затем использовать метод fromCIEXYZ этого пространства цветов для преобразования из CS_CIEXYZ в выходное пространство цветов. См. toCIEXYZ и fromCIEXYZ для получения дополнительной информации.

Определено в:
fromRGB в классе ColorSpace
Параметры:
rgbvalue - массив float с длиной не менее 3
Возвращает:
массив float длиной, равной количеству компонентов в этом ColorSpace
Исключения:
ArrayIndexOutOfBoundsException - если длина массива не менее 3

toCIEXYZ

public float[] toCIEXYZ(float[] colorvalue)
Преобразует значение цвета, предполагая, что оно находится в этом ColorSpace, в пространство цветов преобразования CIEXYZ.

Этот метод преобразует значения цветов с использованием относительной колориметрии, как определено в спецификации ICC. Это означает, что значения XYZ, возвращаемые этим методом, представляют собой относительные значения по отношению к белой точке D50 пространства цветов CS_CIEXYZ. Это представление полезно в процессе преобразования цветов в два этапа, в котором цвета преобразуются из входного пространства цветов в CS_CIEXYZ и затем в выходное пространство цветов. Это представление не совпадает со значениями XYZ, которые можно измерить с помощью колориметра из заданного значения цвета. Для вычисления значений XYZ, которые можно измерить с помощью текущих рекомендуемых практик CIE, требуется дальнейшее преобразование. Параграфы ниже поясняют это подробнее.

Стандарт ICC использует независимое от устройства цветовое пространство (DICS) в качестве механизма преобразования цвета от одного устройства к другому. В этой архитектуре цвета преобразуются из цветового пространства исходного устройства в цветовое пространство ICC DICS, а затем из цветового пространства ICC DICS в цветовое пространство устройства назначения. Стандарт ICC определяет профили устройств, которые содержат преобразования, которые преобразуют цветовое пространство устройства в цветовое пространство ICC DICS и наоборот. Общее преобразование цветов от исходного устройства к цветам целевого устройства выполняется путем соединения преобразования устройства-в-DICS профиля для исходного устройства с преобразованием DICS-в-устройство профиля для целевого устройства. По этой причине цветовое пространство ICC DICS обычно называют пространством связи профилей (PCS). Цветовое пространство, используемое в методах toCIEXYZ и fromCIEXYZ, представляет собой цветовое пространство CIEXYZ PCS, определенное спецификацией ICC. Это также цветовое пространство, представленное ColorSpace.CS_CIEXYZ.

Значения XYZ цвета часто представляются относительно какой-либо белой точки, поэтому действительное значение значений XYZ нельзя узнать без знания белой точки этих значений. Это известно как относительная колориметрия. PCS использует белую точку D50, поэтому значения XYZ PCS относительны к D50. Например, белый цвет в PCS будет иметь значения XYZ D50, которые определены как X = 0,9642, Y = 1,000 и Z = 0,8249. Эта белая точка обычно используется в приложениях графического дизайна, но в других приложениях часто используются другие.

Для количественной оценки цветовых характеристик устройства, например принтера или монитора, обычно проводятся измерения значений XYZ для определенных цветовых значений устройства. В целях данного обсуждения термин значения XYZ устройства используется для обозначения значений XYZ, которые можно измерить с помощью цветов устройства, используя текущие рекомендуемые методы CIE.

Преобразование между значениями XYZ устройства и значениями XYZ PCS, возвращаемыми этим методом, соответствует преобразованию между цветовым пространством устройства, как представлено цветовыми значениями CIE, и PCS. В этом процессе участвует много факторов, некоторые из которых довольно тонкие. Однако важнейшим является корректировка, учитывающая различия между белой точкой устройства и белой точкой PCS. Существует много методов для этого, и это предмет многих текущих исследований и споров. Некоторые часто используемые методы — масштабирование XYZ, преобразование фон Криса и преобразование Брэдфорда. Правильный метод зависит от конкретного приложения.

Наиболее простой метод — масштабирование XYZ. В этом методе каждое значение XYZ устройства преобразуется в значение XYZ PCS путем умножения на отношение белой точки PCS (D50) к белой точке устройства.


 Xd, Yd, Zd are the device XYZ values
 Xdw, Ydw, Zdw are the device XYZ white point values
 Xp, Yp, Zp are the PCS XYZ values
 Xd50, Yd50, Zd50 are the PCS XYZ white point values

 Xp = Xd * (Xd50 / Xdw)
 Yp = Yd * (Yd50 / Ydw)
 Zp = Zd * (Zd50 / Zdw)

 

Преобразование из PCS в устройство выполнялось бы путем обратного преобразования этих уравнений:


 Xd = Xp * (Xdw / Xd50)
 Yd = Yp * (Ydw / Yd50)
 Zd = Zp * (Zdw / Zd50)

 

Обратите внимание, что метка белой точки носителя в профиле ICC не совпадает с белой точкой устройства. Метка белой точки носителя выражается в значениях PCS и используется для представления различий между XYZ осветителя устройства и XYZ носителя устройства, измеренных при этом освещении. Белая точка устройства выражается как значения XYZ устройства, соответствующие белому цвету, отображаемому на устройстве. Например, отображение цвета RGB (1,0, 1,0, 1,0) на устройстве sRGB приведет к измерению значения XYZ устройства D65. Это не будет совпадать со значением XYZ метки белой точки носителя в профиле ICC для устройства sRGB.

Определено в:
toCIEXYZ в классе ColorSpace
Параметры:
colorvalue - массив float с длиной не менее количества компонентов в этом ColorSpace
Возвращает:
массив float длиной 3
Исключения:
ArrayIndexOutOfBoundsException - если длина массива не менее количества компонентов в этом ColorSpace

fromCIEXYZ

public float[] fromCIEXYZ(float[] colorvalue)
Преобразует значение цвета, предполагаемое в цветовом пространстве CS_CIEXYZ преобразования, в это цветовое пространство.

Этот метод преобразует значения цвета с использованием относительной колориметрии, как определено в спецификации ICC. Это означает, что значения аргумента XYZ, принимаемые этим методом, представлены относительно белой точки D50 цветового пространства CS_CIEXYZ. Такое представление полезно в двухэтапном процессе преобразования цветов, в котором цвета преобразуются из входного цветового пространства в CS_CIEXYZ и затем в выходное цветовое пространство. Значения цвета, возвращаемые этим методом, не являются теми, которые дали бы значение XYZ, переданное методу, при измерении колориметром. Если у вас есть значения XYZ, соответствующие измерениям, сделанным в соответствии с текущими рекомендациями CIE, они должны быть преобразованы в относительные значения D50 перед передачей в этот метод. Следующие абзацы объясняют это более подробно.

Стандарт ICC использует независимое от устройства цветовое пространство (DICS) как механизм преобразования цвета из одного устройства в другое. В этой архитектуре цвета преобразуются из цветового пространства источника в ICC DICS, а затем из ICC DICS в цветовое пространство устройства назначения. Стандарт ICC определяет профили устройств, которые содержат преобразования, которые будут преобразовывать между цветовым пространством устройства и ICC DICS. Общее преобразование цветов от источника к устройству назначения выполняется путем соединения преобразования устройства в DICS для профиля источника с преобразованием DICS в устройство для профиля устройства назначения. По этой причине ICC DICS часто называют пространством связи профиля (PCS). Цветовое пространство, используемое в методах toCIEXYZ и fromCIEXYZ, является пространством CIEXYZ PCS, определенным в спецификации ICC. Это также цветовое пространство, представленное ColorSpace.CS_CIEXYZ.

Значения XYZ цвета часто представляются относительно какой-либо белой точки, поэтому истинный смысл значений XYZ нельзя узнать без знания белой точки этих значений. Это называется относительной колориметрией. PCS использует белую точку D50, поэтому значения XYZ PCS относительны к D50. Например, белый цвет в PCS будет иметь значения XYZ D50, которые определены как X = 0,9642, Y = 1,000 и Z = 0,8249. Эта белая точка обычно используется для приложений графического дизайна, но часто используются и другие.

Для количественной оценки цветовых характеристик устройства, такого как принтер или монитор, обычно производятся измерения значений XYZ для определенных цветов устройства. В целях этой дискуссии термин «значения XYZ устройства» используется для обозначения значений XYZ, которые были бы измерены с цветами устройства в соответствии с текущими рекомендациями CIE.

Преобразование между значениями XYZ устройства и значениями XYZ PCS, используемыми в качестве аргументов этого метода, соответствует преобразованию между цветовым пространством устройства, представленным цветовыми значениями CIE, и PCS. В этом процессе участвуют многие факторы, некоторые из которых довольно тонкие. Однако наиболее важным является корректировка, учитывающая разницу между белой точкой устройства и белой точкой PCS. Существует множество методов для этого, и это предмет многочисленных текущих исследований и дискуссий. Некоторые часто используемые методы: масштабирование XYZ, преобразование фон Криса и преобразование Брэдфорда. Правильный метод зависит от каждого конкретного применения.

Самый простой метод – масштабирование XYZ. В этом методе каждое значение XYZ устройства преобразуется в значение XYZ PCS путем умножения его на отношение белой точки PCS (D50) к белой точке устройства.


 Xd, Yd, Zd are the device XYZ values
 Xdw, Ydw, Zdw are the device XYZ white point values
 Xp, Yp, Zp are the PCS XYZ values
 Xd50, Yd50, Zd50 are the PCS XYZ white point values

 Xp = Xd * (Xd50 / Xdw)
 Yp = Yd * (Yd50 / Ydw)
 Zp = Zd * (Zd50 / Zdw)

 

Преобразование из PCS в устройство выполнялось бы путем инвертирования этих уравнений:


 Xd = Xp * (Xdw / Xd50)
 Yd = Yp * (Ydw / Yd50)
 Zd = Zp * (Zdw / Zd50)

 

Обратите внимание, что метка белой точки носителя в профиле ICC не совпадает с белой точкой устройства. Метка белой точки носителя выражается в значениях PCS и используется для обозначения разницы между XYZ источником света устройства и XYZ носителя устройства при измерении под этим источником света. Белая точка устройства выражается как значения XYZ устройства, соответствующие белому цвету, отображаемому на устройстве. Например, отображение RGB цвета (1,0, 1,0, 1,0) на устройстве sRGB приведет к измеренному значению XYZ устройства D65. Это не будет таким же, как значение XYZ метки белой точки носителя в профиле ICC для устройства sRGB.

Определяется:
fromCIEXYZ в классе ColorSpace
Параметры:
colorvalue - массив с плавающей запятой длиной не менее 3
Возвращает:
массив с плавающей запятой длиной, равной количеству компонентов в этом ColorSpace
Выбрасывает:
ArrayIndexOutOfBoundsException - если длина массива не менее 3

getMinValue

public float getMinValue(int component)
Возвращает минимальное нормализованное значение компонента цвета для указанного компонента. Для TYPE_XYZ пространств этот метод возвращает минимальные значения 0,0 для всех компонентов. Для TYPE_Lab пространств этот метод возвращает 0,0 для компонента L и -128,0 для компонентов a и b. Это согласуется с кодированием пространств XYZ и Lab Connection в спецификации ICC. Для всех остальных типов этот метод возвращает 0,0 для всех компонентов. При использовании ICC_ColorSpace с профилем, требующим других минимальных значений компонентов, необходимо создать подкласс этого класса и переопределить этот метод.
Переопределяет:
getMinValue в классе ColorSpace
Параметры:
component - индекс компонента
Возвращает:
минимальное нормализованное значение компонента
Выбрасывает:
IllegalArgumentException - если компонент меньше 0 или больше numComponents - 1
С:
1.4

getMaxValue

public float getMaxValue(int component)
Возвращает максимальное нормализованное значение компонента цвета для указанного компонента. Для TYPE_XYZ пространств этот метод возвращает максимальные значения 1,0 + (32767,0 / 32768,0) для всех компонентов. Для TYPE_Lab пространств этот метод возвращает 100,0 для компонента L и 127,0 для компонентов a и b. Это согласуется с кодированием пространств XYZ и Lab Connection в спецификации ICC. Для всех остальных типов этот метод возвращает 1,0 для всех компонентов. При использовании ICC_ColorSpace с профилем, требующим других максимальных значений компонентов, необходимо создать подкласс этого класса и переопределить этот метод.
Переопределяет:
getMaxValue в классе ColorSpace
Параметры:
component - индекс компонента
Возвращает:
максимальное нормализованное значение компонента
Выбрасывает:
IllegalArgumentException - если компонент меньше 0 или больше numComponents - 1
С:
1.4

© 1993, 2021, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/17/docs/api/java.desktop/java/awt/color/ICC_ColorSpace.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API