English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Составление на Canvas в HTML5

При рисовании форм на холсте HTML5 можно настроить, как комбинировать рисуемое содержимое с уже нарисованым содержимым на холсте. В этой статье рассказывается, как комбинировать рисуемое содержимое с уже нарисованым.

Композитинг холста

2D контекст имеет два атрибута, которые контролируют режим комбинирования холста. Это:

  1. globalAlpha

  2. globalCompositeOperation

globalAlpha

Атрибут globalAlpha определяет прозрачность/непрозрачность рисуемого содержимого. Он может принимать значения от 0 до 1. Значение 0 означает, что рисуемое содержимое полностью прозрачно. Значение 0.5 означает, что рисуемое содержимое полупрозрачно. Значение 1 означает, что рисуемое содержимое непрозрачно. Предустановленное значение — 1.
Атрибут globalAlpha настроен следующим образом:

context.globalAlpha = 0.5;

globalCompositeOperation

Атрибут globalCompositeOperation определяет, как комбинировать рисуемое содержимое с уже нарисованым содержимым на холсте.
Атрибут globalCompositeOperation настроен следующим образом:

context.globalCompositeOperation = "copy";

globalCompositeOperation ссылается на «источник» и «цель» и определяет, как комбинировать источник и цель. Источник — это то, что вы рисуете, а цель — это то, что уже нарисовано. Вот список возможных значений и ихmeanings:



ЗначениеОписание
copyНа местах перекрытия источника и цели будет виден источник.
destination-atopКогда источник и цель перекрываются и оба не прозрачны, будет виден цель.Если цель прозрачна, будет виден источник.
destination-inНа местах перекрытия источника и цели, где оба не прозрачны, будет виден цель.На местах без перекрытия источник не будет виден.
destination-outНа местах, где источник и цель не перекрываются, будет виден цель.В других местах везде будет видна прозрачность.
destination-overНа местах перекрытия источника и цели будет виден цель.Если нет перекрытия, будет виден источник.
source-atopНа местах перекрытия источника и цели будет виден источник.На местах без перекрытия или когда источник прозрачен, будет виден цель.
source-inКогда источник и цель перекрываются и оба не прозрачны, будет виден источник.В других местах везде будет видна прозрачность.
source-outНа местах, где источник и цель не перекрываются, будет виден источник.В других местах везде будет видна прозрачность.
source-overЕсли источник непрозрачен, отображается источник.Цель отображается в других местах.
lighterИсточниковый и целевой цвета накладываются друг на друга, делая цвета ярче и направляясь к значению 1 (максимальной яркости этого цвета).
xor

Пример составления HTML5 канваса

Это пример канваса, где вы можете использовать режимы комpositing и значения alpha. Вы можете изменить режим комpositing, нажав на кнопку. Измените режим Alpha, используя控件 под канвасом.

Canvas не поддерживается

globalAlpha

Если видите текстовое поле globalAlpha, введите значение от 0 до 100. Код преобразует значение в диапазон от 0 до 1.0. В противном случае используйте ползунок.
Внимание: при написании этой статьи Firefox и Chrome обрабатывают эти режимы комpositing по-разному. Также они似乎 отличаются от rects и text, как эти режимы работают. Пробуйте различные режимы в различных браузерах, которые вы планируете поддерживать, чтобы понять, как они работают.