JavaScript. Подробное руководство, 6-е издание
Шрифт:
Этот процесс объединения новых полупрозрачных исходных пикселов с существующими целевыми пикселами называется композицией, а процесс композиции, описанный выше, используется по умолчанию при объединении пикселов. Однако композиция нужна не всегда. Представьте, что вы нарисовали в холсте рисунок, использовав полупрозрачный цвет, и теперь хотите внести в холст временные изменения, а позднее восстановить оригинальный рисунок. Самый простой способ реализовать это состоит в том, чтобы холст (или его область) скопировать в другой, неотображаемый холст с помощью метода
Установить тип композиции можно с помощью свойства
«source-over», «destination-over» и «сору» - это три наиболее часто используемых вида композиции, однако прикладной интерфейс объекта
На рис. 21.16 показаны все 11 видов композиции пикселов с «предельными» значениями прозрачности: все пикселы являются полностью непрозрачными или полностью прозрачными. В каждом из 11 прямоугольников сначала рисовался квадрат, который представляет целевые пикселы. Затем устанавливалось свойство
Рис. 21.16. Виды композиции пикселов с предельными значениями прозрачности
На рис. 21.17 изображен похожий пример, в котором использовались пикселы с «промежуточными» значениями прозрачности. В этой версии исходный круг и целевой квадрат были залиты градиентами, вследствие чего в рисунке присутствуют пикселы с различной степенью прозрачности.
Вы можете обнаружить, что понять действие того или иного вида композиции совсем непросто, когда в операцию вовлечены полупрозрачные пикселы, как в данном примере. Если у вас есть желание более глубоко разобраться с композицией, в справочной статье CanvasRenderingContext2D вы найдете уравнения вычисления конечного значения цвета пиксела, исходя из значений цвета исходного и целевого пикселов для всех 11 видов композиции.
Рис. 21.17. Виды композиции пикселов с промежуточными значениями прозрачности
На момент написания этих строк производители броузеров не смогли прийти к единству в реализации 5 из 11 видов композиции: «сору», «source-іп», «source-out», «destination-atop» и «destination-in» действуют по-разному в разных броузерах и не могут использоваться переносимым образом. Далее приводится подробное описание этих различий, но если вы не планируете использовать эти виды композиций, то можете сразу перейти к следующему
При использовании пяти видов композиции, перечисленных выше, цвет целевых пикселов либо игнорируется при вычислении результатов, либо получающиеся пикселы делаются прозрачными, если прозрачными являются исходные пикселы. Различия в реализациях связаны с определением исходных пикселов. Броузеры Safari и Chrome выполняют композицию «локально»: в расчетах участвуют только фактические исходные пикселы, которые выводятся методами
На момент написания этих строк проект стандарта HTML5 утвердил глобальный подход к композиции, реализованный в броузерах Firefox и Opera. Производители броузеров знают об имеющейся несовместимости и не удовлетворены текущим состоянием спецификации. Велика вероятность, что спецификация будет пересмотрена в пользу локальной композиции.
Наконец, обратите внимание, что в броузерах, таких как Safari и Chrome, реализующих локальную композицию, существует возможность реализовать глобальную композицию. Сначала нужно создать пустой неотображаемый холст с теми же размерами, что и отображаемый. Затем нарисовать исходное изображение на неотображаемом холсте и вызвать метод drawlmage, чтобы скопировать неотображаемый рисунок в отображаемый холст и применить глобальную композицию в пределах области отсечения. В броузерах, таких как Firefox, реализующих глобальную композицию, нет универсального приема выполнения локальной композиции, но нередко можно получить достаточно близкий эффект, определив соответствующую область отсечения перед выполнением операции рисования, для которой композиция должна выполняться локально.
21.4.14. Манипулирование пикселами
Метод
Эти методы манипулирования пикселами предоставляют низкоуровневый доступ к холсту. Координаты и размеры области, передаваемой методу
Стихи и песни
Проза:
русская классическая проза
рейтинг книги
АН (цикл 11 книг)
Аномальный наследник
Фантастика:
фэнтези
героическая фантастика
попаданцы
аниме
рейтинг книги
Adobe InDesign CS3
Видеосамоучитель
Компьютеры и Интернет:
программное обеспечение
рейтинг книги
Первый среди равных. Книга X
10. Первый среди Равных
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
рейтинг книги
Воины
Фантастика:
фэнтези
рейтинг книги
Егерь. Звери и люди
11. Зверолов
Фантастика:
рпг
фэнтези
фантастика: прочее
попаданцы
рейтинг книги
Дневники
рейтинг книги
Нью-Йорк
The Big Book
Проза:
историческая проза
рейтинг книги
Я все еще не царь. Книга XXVI
26. Дорогой барон!
Фантастика:
попаданцы
аниме
рейтинг книги
Отморозок 4
4. Отморозок
Фантастика:
попаданцы
фантастика: прочее
рейтинг книги
Дитя прибоя
Дитя прибоя
Фантастика:
боевая фантастика
попаданцы
фэнтези
рейтинг книги
Рассказы старых переплетов
Документальная литература:
биографии и мемуары
прочая документальная литература
рейтинг книги
История великих путешествий. Том 1. Открытие Земли
Приключения:
путешествия и география
рейтинг книги
Дружба - Этико-психологический очерк
Научно-образовательная:
психология
рейтинг книги