Spec-Zone.ru › OpenJDK 8

Класс 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().

См. также:
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, в это цветовое пространство.

float getMaxValue(int component)

Возвращает максимальное нормализованное значение компоненты цвета для указанной компоненты.

float getMinValue(int component)

Возвращает минимальное нормализованное значение компоненты цвета для указанной компоненты.

ICC_Profile getProfile()

Возвращает ICC_Profile для этого ICC_ColorSpace.

float[] toCIEXYZ(float[] colorvalue)

Преобразует значение цвета, предполагаемое в этом цветовом пространстве, в цветовое пространство преобразования CS_CIEXYZ.

float[] toRGB(float[] colorvalue)

Преобразует значение цвета, предполагаемое в этом цветовом пространстве, в значение в стандартном цветовом пространстве 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, в это цветовое пространство.

Этот метод преобразует значения цвета с помощью алгоритмов, предназначенных для достижения наилучшего перцептуального соответствия между входными и выходными цветами. Для выполнения колориметрического преобразования значений цвета необходимо сначала использовать метод 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, в цветовое пространство CS_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 соединения профиля в спецификации 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 соединения профиля в спецификации ICC. Для всех других типов этот метод возвращает 1,0 для всех компонентов. При использовании ICC_ColorSpace с профилем, требующим других максимальных значений компонентов, необходимо создать подкласс этого класса и переопределить этот метод.

Переопределяет:
getMaxValue в классе ColorSpace
Параметры:
component - Индекс компонента.
Возвращает:
Максимальное нормализованное значение компонента.
Исключения:
IllegalArgumentException - если компонент меньше 0 или больше numComponents - 1.
С:
1.4

© 1993, 2020, 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.

Spec-Zone.ru

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