Spec-Zone.ru › OpenJDK 27

Класс AlphaComposite

java.lang.Object
java.awt.AlphaComposite
Все реализуемые интерфейсы:
Composite
public final class AlphaComposite extends Object implements Composite
Класс AlphaComposite реализует основные правила альфа-композиции для объединения цветов источника и назначения с целью получения эффектов смешивания и прозрачности при работе с графикой и изображениями. Конкретные правила, реализованные этим классом, представляют собой основной набор из 12 правил, описанных в статье Т. Портера и Т. Даффа «Compositing Digital Images», SIGGRAPH 84, 253–259. В остальной части этой документации предполагается, что читатель знаком с определениями и понятиями, изложенными в этой статье.

Этот класс расширяет стандартные уравнения, определённые Портером и Даффом, добавляя ещё один множитель. Экземпляр класса AlphaComposite может содержать значение альфа-канала, используемое для изменения непрозрачности или покрытия каждого пикселя источника перед его применением в уравнениях смешивания.

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

Также обратите внимание, что этот класс определяет только уравнения для объединения значений цвета и альфа-канала в чисто математическом смысле. Точность применения этих уравнений зависит от способа извлечения данных из источников и их сохранения в назначениях. Дополнительные сведения см. в разделе Особенности реализации.

В описании уравнения смешивания в статье Портера и Даффа используются следующие множители:

Множители
Множитель Определение
As компонент альфа-канала пикселя источника
Cs компонент цвета пикселя источника в предварительно умноженном виде
Ad компонент альфа-канала пикселя назначения
Cd компонент цвета пикселя назначения в предварительно умноженном виде
Fs доля пикселя источника, которая участвует в формировании результата
Fd доля пикселя назначения, которая участвует в формировании результата
Ar компонент альфа-канала результата
Cr компонент цвета результата в предварительно умноженном виде

Используя эти множители, Портер и Дафф определяют 12 способов выбора множителей смешивания Fs и Fd для получения каждого из 12 желаемых визуальных эффектов. Уравнения для определения Fs и Fd приведены в описаниях 12 статических полей, задающих визуальные эффекты. Например, в описании SRC_OVER указано, что Fs = 1 и Fd = (1-As). После того как известен набор уравнений для определения множителей смешивания, его можно применить к каждому пикселю для получения результата с помощью следующего набора уравнений:

     Fs = f(Ad)
     Fd = f(As)
     Ar = As*Fs + Ad*Fd
     Cr = Cs*Fs + Cd*Fd

Для обсуждения расширений уравнения смешивания из статьи Портера и Даффа будут использоваться следующие множители:

Множители
Множитель Определение
Csr одна из исходных компонент цвета пикселя источника
Cdr одна из исходных компонент цвета пикселя назначения
Aac «дополнительный» компонент альфа-канала экземпляра AlphaComposite
Asr исходный компонент альфа-канала пикселя источника
Adr исходный компонент альфа-канала пикселя назначения
Adf итоговый компонент альфа-канала, сохранённый в назначении
Cdf итоговый исходный компонент цвета, сохранённый в назначении

Подготовка входных данных

Класс AlphaComposite определяет дополнительное значение альфа-канала, применяемое к альфа-каналу источника. Это значение применяется так, как если бы к пикселю источника сначала применялось неявное правило SRC_IN относительно пикселя с указанным значением альфа-канала: исходный альфа-канал и исходные цвета источника умножаются на альфа-канал в AlphaComposite. В результате получается следующее уравнение для вычисления альфа-канала, используемого в уравнении смешивания Портера и Даффа:

     As = Asr * Aac 
Все исходные компоненты цвета источника необходимо умножить на альфа-канал в экземпляре AlphaComposite. Кроме того, если источник не был представлен в предварительно умноженном виде, компоненты цвета также необходимо умножить на альфа-канал источника. Следовательно, уравнение для вычисления компонентов цвета источника для уравнения Портера и Даффа зависит от того, представлены ли пиксели источника в предварительно умноженном виде:
     Cs = Csr * Asr * Aac     (if source is not premultiplied)
     Cs = Csr * Aac           (if source is premultiplied) 
Альфа-канал назначения не требует корректировки:
     Ad = Adr 

Компоненты цвета назначения нужно корректировать, только если они не представлены в предварительно умноженном виде:

     Cd = Cdr * Ad    (if destination is not premultiplied)
     Cd = Cdr         (if destination is premultiplied) 

Применение уравнения смешивания

Скорректированные значения As, Ad, Cs и Cd используются в стандартных уравнениях Портера и Даффа для вычисления множителей смешивания Fs и Fd, а затем результирующих предварительно умноженных компонентов Ar и Cr.

Подготовка результатов

Результаты требуется корректировать, только если они сохраняются обратно в буфер назначения, содержащий данные, не представленные в предварительно умноженном виде. Для этого используются следующие уравнения:

     Adf = Ar
     Cdf = Cr                 (if dest is premultiplied)
     Cdf = Cr / Ar            (if dest is not premultiplied) 
Обратите внимание, что деление не определено, если результирующий альфа-канал равен нулю. В этом случае деление опускается во избежание «деления на ноль», а все компоненты цвета устанавливаются в ноль.

Рекомендации по производительности

По соображениям производительности желательно, чтобы объекты Raster, передаваемые методу compose объекта CompositeContext, созданного классом AlphaComposite, содержали данные в предварительно умноженном виде. Однако, если исходный Raster или целевой Raster не представлены в предварительно умноженном виде, до и после операции композиции выполняются соответствующие преобразования.

Особенности реализации

  • Многие источники, например некоторые типы непрозрачных изображений, перечисленные в классе BufferedImage, не хранят значения альфа-канала для своих пикселей. Для всех пикселей таких источников используется значение альфа-канала 1.0.
  • Во многих назначениях также нет места для хранения значений альфа-канала, полученных в результате вычислений смешивания, выполняемых этим классом. Поэтому такие назначения неявно отбрасывают результирующие значения альфа-канала, полученные этим классом. Рекомендуется, чтобы такие назначения рассматривали хранимые значения цвета как не представленные в предварительно умноженном виде, делили результирующие значения цвета на результирующее значение альфа-канала перед сохранением цветов и отбрасыванием альфа-канала.
  • Точность результатов зависит от способа хранения пикселей в назначении. Формат изображения, обеспечивающий не менее 8 бит для хранения каждой компоненты цвета и альфа-канала, как минимум подходит для использования в качестве назначения при последовательности из нескольких операций композиции — от нескольких до десятка. Формат изображения, в котором для каждой компоненты отводится менее 8 бит, подходит лишь для одной или двух операций композиции, после чего ошибки округления начинают доминировать в результатах. Формат изображения, в котором компоненты цвета не хранятся отдельно, плохо подходит для смешивания любого типа с прозрачностью. Например, BufferedImage.TYPE_BYTE_INDEXED не следует использовать в качестве назначения для операции смешивания, поскольку каждая операция может приводить к большим ошибкам из-за необходимости выбирать пиксель из ограниченной палитры, чтобы приблизить результат уравнений смешивания.
  • Почти все форматы хранят пиксели в виде целых чисел, а не значений с плавающей точкой, используемых в приведённых выше эталонных уравнениях. Реализация может либо преобразовывать целочисленные значения пикселей в значения с плавающей точкой в диапазоне от 0.0 до 1.0, либо использовать немного изменённые версии уравнений, которые работают исключительно с целыми числами, но дают результаты, аналогичные результатам эталонных уравнений.

    Обычно целочисленные значения соотносятся со значениями с плавающей точкой так, что целое число 0 соответствует значению с плавающей точкой 0.0, а целое число 2^n-1 (где n — количество битов в представлении) соответствует 1.0. Для 8-битных представлений это означает, что 0x00 соответствует 0.0, а 0xff — 1.0.

  • Внутренняя реализация может приближённо вычислять некоторые уравнения, а также исключать отдельные шаги во избежание ненужных операций. Например, рассмотрим дискретное целочисленное изображение с непредварительно умноженными значениями альфа-канала, в котором для хранения каждой компоненты используется 8 бит. Сохранённые значения почти прозрачного затемнённого красного цвета могут выглядеть так:
       (A, R, G, B) = (0x01, 0xb0, 0x00, 0x00)

    Если использовать целочисленную арифметику и выполнить композицию этого значения в режиме SRC без дополнительного альфа-канала, расчёты покажут, что результат будет следующим (в целочисленном формате):

       (A, R, G, B) = (0x01, 0x01, 0x00, 0x00)

    Обратите внимание, что промежуточные значения, всегда представленные в предварительно умноженном виде, позволят целочисленной компоненте красного цвета принимать только значения 0x00 или 0x01. При попытке сохранить этот результат обратно в назначение, не представленное в предварительно умноженном виде, деление на альфа-канал оставит нам очень мало вариантов для непредварительно умноженного значения красного цвета. В данном случае реализация, выполняющая вычисления с целыми числами без упрощений, скорее всего, получит следующие итоговые значения пикселя:

       (A, R, G, B) = (0x01, 0xff, 0x00, 0x00)

    (Обратите внимание, что 0x01, делённое на 0x01, даёт 1.0, что эквивалентно значению 0xff в 8-битном формате хранения.)

    И наоборот, реализация, использующая вычисления с плавающей точкой, может получить более точные результаты и вернуться к исходному значению пикселя практически без ошибки округления. Реализация с целочисленной арифметикой также может решить, что, поскольку в пространстве с плавающей точкой уравнения сводятся к виртуальной операции NOP над значениями цвета, пиксель можно без изменений перенести в назначение, полностью избежав вычислений.

    Все эти реализации пытаются соблюдать одни и те же уравнения, но используют различные компромиссы между целочисленной арифметикой и вычислениями с плавающей точкой, а также между упрощёнными и полными уравнениями. Учитывая такие различия, вероятно, лучше ожидать совпадения результатов между реализациями и форматами изображений только в предварительно умноженном виде. В этом случае оба результата, выраженные в предварительно умноженном виде, будут равны:

       (A, R, G, B) = (0x01, 0x01, 0x00, 0x00)

    и, следовательно, будут совпадать.

  • Из-за упрощения уравнений для повышения эффективности вычислений некоторые реализации могут вести себя по-разному при получении результирующих значений альфа-канала 0.0 для назначения, не представленного в предварительно умноженном виде. Обратите внимание, что упрощение, при котором деление на альфа-канал исключается для правила SRC, технически некорректно, если знаменатель (альфа-канал) равен 0. Однако, поскольку точность результатов можно ожидать только при просмотре в предварительно умноженном виде, результирующее значение альфа-канала 0 по существу делает результирующие компоненты цвета несущественными, поэтому в этом случае не следует ожидать строго определённого поведения.
См. также:
  • Composite
  • CompositeContext

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

Модификатор и тип Поле Описание
static final AlphaComposite Clear
Объект AlphaComposite, реализующий непрозрачное правило CLEAR с альфа-каналом 1.0f.
static final int CLEAR
Очищаются и цвет, и альфа-канал назначения (правило Clear Портера — Даффа).
static final AlphaComposite Dst
Объект AlphaComposite, реализующий непрозрачное правило DST с альфа-каналом 1.0f.
static final int DST
Назначение остаётся без изменений (правило Destination Портера — Даффа).
static final int DST_ATOP
Часть назначения, находящаяся внутри источника, накладывается поверх источника и заменяет назначение (правило Destination Atop Source Портера — Даффа).
static final int DST_IN
Часть назначения, находящаяся внутри источника, заменяет назначение (правило Destination In Source Портера — Даффа).
static final int DST_OUT
Часть назначения, находящаяся за пределами источника, заменяет назначение (правило Destination Held Out By Source Портера — Даффа).
static final int DST_OVER
Назначение накладывается поверх источника, а результат заменяет назначение (правило Destination Over Source Портера — Даффа).
static final AlphaComposite DstAtop
Объект AlphaComposite, реализующий непрозрачное правило DST_ATOP с альфа-каналом 1.0f.
static final AlphaComposite DstIn
Объект AlphaComposite, реализующий непрозрачное правило DST_IN с альфа-каналом 1.0f.
static final AlphaComposite DstOut
Объект AlphaComposite, реализующий непрозрачное правило DST_OUT с альфа-каналом 1.0f.
static final AlphaComposite DstOver
Объект AlphaComposite, реализующий непрозрачное правило DST_OVER с альфа-каналом 1.0f.
static final AlphaComposite Src
Объект AlphaComposite, реализующий непрозрачное правило SRC с альфа-каналом 1.0f.
static final int SRC
Источник копируется в назначение (правило Source Портера — Даффа).
static final int SRC_ATOP
Часть источника, находящаяся внутри назначения, накладывается на назначение (правило Source Atop Destination Портера — Даффа).
static final int SRC_IN
Часть источника, находящаяся внутри назначения, заменяет назначение (правило Source In Destination Портера — Даффа).
static final int SRC_OUT
Часть источника, находящаяся за пределами назначения, заменяет назначение (правило Source Held Out By Destination Портера — Даффа).
static final int SRC_OVER
Источник накладывается поверх назначения (правило Source Over Destination Портера — Даффа).
static final AlphaComposite SrcAtop
Объект AlphaComposite, реализующий непрозрачное правило SRC_ATOP с альфа-каналом 1.0f.
static final AlphaComposite SrcIn
Объект AlphaComposite, реализующий непрозрачное правило SRC_IN с альфа-каналом 1.0f.
static final AlphaComposite SrcOut
Объект AlphaComposite, реализующий непрозрачное правило SRC_OUT с альфа-каналом 1.0f.
static final AlphaComposite SrcOver
Объект AlphaComposite, реализующий непрозрачное правило SRC_OVER с альфа-каналом 1.0f.
static final AlphaComposite Xor
Объект AlphaComposite, реализующий непрозрачное правило XOR с альфа-каналом 1.0f.
static final int XOR
Часть источника, находящаяся за пределами назначения, объединяется с частью назначения, находящейся за пределами источника (правило Source Xor Destination Портера — Даффа).

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

Модификатор и тип Метод Описание
CompositeContext createContext(ColorModel srcColorModel, ColorModel dstColorModel, RenderingHints hints)
Создаёт контекст для операции композиции.
AlphaComposite derive(float alpha)
Возвращает аналогичный объект AlphaComposite, использующий указанное значение альфа-канала.
AlphaComposite derive(int rule)
Возвращает аналогичный объект AlphaComposite, использующий указанное правило композиции.
boolean equals(Object obj)
Определяет, равен ли указанный объект этому AlphaComposite.
float getAlpha()
Возвращает значение альфа-канала этого AlphaComposite.
static AlphaComposite getInstance(int rule)
Создаёт объект AlphaComposite с указанным правилом.
static AlphaComposite getInstance(int rule, float alpha)
Создаёт объект AlphaComposite с указанным правилом и постоянным значением альфа-канала, на которое умножается альфа-канал источника.
int getRule()
Возвращает правило композиции этого AlphaComposite.
int hashCode()
Возвращает хеш-код для этого объекта composite.

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

clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создаёт и возвращает копию этого объекта.
protected void finalize()
Устарело и подлежит удалению: этот элемент API может быть удалён в будущей версии.
Финализация устарела и может быть удалена в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно посредством вызова notified или interrupted.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно посредством вызова notified или interrupted, либо до истечения указанного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно посредством вызова notified или interrupted, либо до истечения указанного промежутка реального времени.

Подробное описание полей

CLEAR

@Native public static final int CLEAR
Очищаются и цвет, и альфа-канал назначения (правило Porter-Duff Clear). Ни источник, ни назначение не используются в качестве входных данных.

Fs = 0 и Fd = 0, следовательно:

  Ar = 0
  Cr = 0
См. также:
  • Значения константных полей

SRC

@Native public static final int SRC
Источник копируется в назначение (правило Porter-Duff Source). Назначение не используется в качестве входных данных.

Fs = 1 и Fd = 0, следовательно:

  Ar = As
  Cr = Cs
См. также:
  • Значения константных полей

DST

@Native public static final int DST
Назначение остается без изменений (правило Porter-Duff Destination).

Fs = 0 и Fd = 1, следовательно:

  Ar = Ad
  Cr = Cd
Начиная с:
1.4
См. также:
  • Значения константных полей

SRC_OVER

@Native public static final int SRC_OVER
Источник компонуется поверх назначения (правило Porter-Duff Source Over Destination).

Fs = 1 и Fd = (1-As), следовательно:

  Ar = As + Ad*(1-As)
  Cr = Cs + Cd*(1-As)
См. также:
  • Значения константных полей

DST_OVER

@Native public static final int DST_OVER
Назначение компонуется поверх источника, а результат заменяет назначение (правило Porter-Duff Destination Over Source).

Fs = (1-Ad) и Fd = 1, следовательно:

  Ar = As*(1-Ad) + Ad
  Cr = Cs*(1-Ad) + Cd
См. также:
  • Значения константных полей

SRC_IN

@Native public static final int SRC_IN
Часть источника, находящаяся внутри назначения, заменяет назначение (правило Porter-Duff Source In Destination).

Fs = Ad и Fd = 0, следовательно:

  Ar = As*Ad
  Cr = Cs*Ad
См. также:
  • Значения константных полей

DST_IN

@Native public static final int DST_IN
Часть назначения, находящаяся внутри источника, заменяет назначение (правило Porter-Duff Destination In Source).

Fs = 0 и Fd = As, следовательно:

  Ar = Ad*As
  Cr = Cd*As
См. также:
  • Значения константных полей

SRC_OUT

@Native public static final int SRC_OUT
Часть источника, находящаяся вне назначения, заменяет назначение (правило Porter-Duff Source Held Out By Destination).

Fs = (1-Ad) и Fd = 0, следовательно:

  Ar = As*(1-Ad)
  Cr = Cs*(1-Ad)
См. также:
  • Значения константных полей

DST_OUT

@Native public static final int DST_OUT
Часть назначения, находящаяся вне источника, заменяет назначение (правило Porter-Duff Destination Held Out By Source).

Fs = 0 и Fd = (1-As), следовательно:

  Ar = Ad*(1-As)
  Cr = Cd*(1-As)
См. также:
  • Значения константных полей

SRC_ATOP

@Native public static final int SRC_ATOP
Часть источника, находящаяся внутри назначения, компонуется поверх назначения (правило Porter-Duff Source Atop Destination).

Fs = Ad и Fd = (1-As), следовательно:

  Ar = As*Ad + Ad*(1-As) = Ad
  Cr = Cs*Ad + Cd*(1-As)
Начиная с:
1.4
См. также:
  • Значения константных полей

DST_ATOP

@Native public static final int DST_ATOP
Часть назначения, находящаяся внутри источника, компонуется поверх источника и заменяет назначение (правило Porter-Duff Destination Atop Source).

Fs = (1-Ad) и Fd = As, следовательно:

  Ar = As*(1-Ad) + Ad*As = As
  Cr = Cs*(1-Ad) + Cd*As
Начиная с:
1.4
См. также:
  • Значения константных полей

XOR

@Native public static final int XOR
Часть источника, находящаяся вне назначения, объединяется с частью назначения, находящейся вне источника (правило Porter-Duff Source Xor Destination).

Fs = (1-Ad) и Fd = (1-As), следовательно:

  Ar = As*(1-Ad) + Ad*(1-As)
  Cr = Cs*(1-Ad) + Cd*(1-As)
Начиная с:
1.4
См. также:
  • Значения константных полей

Clear

public static final AlphaComposite Clear
AlphaComposite объект, реализующий непрозрачное правило CLEAR с альфа-значением 1.0f.
См. также:
  • CLEAR

Src

public static final AlphaComposite Src
AlphaComposite объект, реализующий непрозрачное правило SRC с альфа-значением 1.0f.
См. также:
  • SRC

Dst

public static final AlphaComposite Dst
AlphaComposite объект, реализующий непрозрачное правило DST с альфа-значением 1.0f.
Начиная с:
1.4
См. также:
  • DST

SrcOver

public static final AlphaComposite SrcOver
AlphaComposite объект, реализующий непрозрачное правило SRC_OVER с альфа-значением 1.0f.
См. также:
  • SRC_OVER

DstOver

public static final AlphaComposite DstOver
AlphaComposite объект, реализующий непрозрачное правило DST_OVER с альфа-значением 1.0f.
См. также:
  • DST_OVER

SrcIn

public static final AlphaComposite SrcIn
AlphaComposite объект, реализующий непрозрачное правило SRC_IN с альфа-значением 1.0f.
См. также:
  • SRC_IN

DstIn

public static final AlphaComposite DstIn
AlphaComposite объект, реализующий непрозрачное правило DST_IN с альфа-значением 1.0f.
См. также:
  • DST_IN

SrcOut

public static final AlphaComposite SrcOut
AlphaComposite объект, реализующий непрозрачное правило SRC_OUT с альфа-значением 1.0f.
См. также:
  • SRC_OUT

DstOut

public static final AlphaComposite DstOut
AlphaComposite объект, реализующий непрозрачное правило DST_OUT с альфа-значением 1.0f.
См. также:
  • DST_OUT

SrcAtop

public static final AlphaComposite SrcAtop
AlphaComposite объект, реализующий непрозрачное правило SRC_ATOP с альфа-значением 1.0f.
Начиная с:
1.4
См. также:
  • SRC_ATOP

DstAtop

public static final AlphaComposite DstAtop
AlphaComposite объект, реализующий непрозрачное правило DST_ATOP с альфа-значением 1.0f.
Начиная с:
1.4
См. также:
  • DST_ATOP

Xor

public static final AlphaComposite Xor
AlphaComposite объект, реализующий непрозрачное правило XOR с альфа-значением 1.0f.
Начиная с:
1.4
См. также:
  • XOR

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

getInstance

public static AlphaComposite getInstance(int rule)
Создает объект AlphaComposite с указанным правилом.
Параметры:
rule — правило компоновки
Возвращает:
созданный объект AlphaComposite
Вызывает исключение:
IllegalArgumentException — если rule не является одним из следующих значений: CLEAR, SRC, DST, SRC_OVER, DST_OVER, SRC_IN, DST_IN, SRC_OUT, DST_OUT, SRC_ATOP, DST_ATOP или XOR

getInstance

public static AlphaComposite getInstance(int rule, float alpha)
Создает объект AlphaComposite с указанным правилом и постоянным альфа-значением, на которое умножается альфа-значение источника. Перед компоновкой с назначением источник умножается на указанное альфа-значение.
Параметры:
rule — правило компоновки
alpha — постоянное альфа-значение, на которое умножается альфа-значение источника. alpha должно быть числом с плавающей точкой в диапазоне [0.0, 1.0] включительно.
Возвращает:
созданный объект AlphaComposite
Вызывает исключение:
IllegalArgumentException — если alpha меньше 0.0 или больше 1.0 либо если rule не является одним из следующих значений: CLEAR, SRC, DST, SRC_OVER, DST_OVER, SRC_IN, DST_IN, SRC_OUT, DST_OUT, SRC_ATOP, DST_ATOP или XOR

createContext

public CompositeContext createContext(ColorModel srcColorModel, ColorModel dstColorModel, RenderingHints hints)
Создает контекст для операции компоновки. Контекст содержит состояние, используемое при выполнении операции компоновки.
Определено в:
createContext в интерфейсе Composite
Параметры:
srcColorModel — ColorModel источника
dstColorModel — ColorModel назначения
hints — подсказка, которую объект контекста использует для выбора между вариантами отрисовки
Возвращает:
объект CompositeContext, предназначенный для выполнения операций компоновки.

getAlpha

public float getAlpha()
Возвращает альфа-значение этого объекта AlphaComposite. Если у этого объекта AlphaComposite нет альфа-значения, возвращается 1.0.
Возвращает:
альфа-значение этого объекта AlphaComposite.

getRule

public int getRule()
Возвращает правило компоновки этого объекта AlphaComposite.
Возвращает:
правило компоновки этого объекта AlphaComposite.

derive

public AlphaComposite derive(int rule)
Возвращает аналогичный объект AlphaComposite, использующий указанное правило компоновки. Если этот объект уже использует указанное правило компоновки, возвращается он сам.
Параметры:
rule — правило компоновки
Возвращает:
объект AlphaComposite, производный от этого объекта и использующий указанное правило компоновки.
Вызывает исключение:
IllegalArgumentException — если rule не является одним из следующих значений: CLEAR, SRC, DST, SRC_OVER, DST_OVER, SRC_IN, DST_IN, SRC_OUT, DST_OUT, SRC_ATOP, DST_ATOP или XOR
Начиная с:
1.6

derive

public AlphaComposite derive(float alpha)
Возвращает аналогичный объект AlphaComposite, использующий указанное альфа-значение. Если у этого объекта уже указано такое альфа-значение, возвращается он сам.
Параметры:
alpha — постоянное альфа-значение, на которое умножается альфа-значение источника. alpha должно быть числом с плавающей точкой в диапазоне [0.0, 1.0] включительно.
Возвращает:
объект AlphaComposite, производный от этого объекта и использующий указанное альфа-значение.
Вызывает исключение:
IllegalArgumentException — если alpha меньше 0.0 или больше 1.0
Начиная с:
1.6

hashCode

public int hashCode()
Возвращает хеш-код этой составной операции.
Переопределяет:
hashCode в классе Object
Возвращает:
хеш-код этой составной операции.
См. также:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(Object)

equals

public boolean equals(Object obj)
Определяет, равен ли указанный объект этому объекту AlphaComposite.

Результат равен true тогда и только тогда, когда аргумент не является null и представляет собой объект AlphaComposite с теми же правилом компоновки и альфа-значением, что и у этого объекта.

Переопределяет:
equals в классе Object
Параметры:
obj — объект Object для проверки на равенство
Возвращает:
true, если obj равен этому объекту AlphaComposite; в противном случае — false.
См. также:
  • Object.hashCode()
  • HashMap

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и работающие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, 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