Spec-Zone.ru › OpenJDK 25

Класс 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()
Возвращает хеш-код этого объекта композиции.

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

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

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

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)
См. также:
  • Значения константных полей

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, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.desktop/java/awt/AlphaComposite.html

Spec-Zone.ru

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