Руководство по actionscript. часть 5, стр. 034

Влияние прозрачности на получение значения цвета

Из-за особенностей внутренней архитектуры механизма визуализации среды выполнения Flash нельзя гарантировать получение корректных значений цвета пикселов в прозрачных изображениях с помощью методов getPixel32 ( ), getPixel ( ) или любых других способов. Для повышения производительности процесса визуализации, когда значение цвета пиксела сохраняется в объекте BitmapData, среда Flash преобразует это значение во внутренний формат, называемый предумноженным значением цвета. Оно объединяет значение канала Alpha со значениями каналов Red, Green и Blue этого цвета. Например, если значением канала Alpha исходного цвета является 50 % от 255, то предумноженное значение цвета будет хранить 50 % от 255 для канала Alpha, 50 % от исходного значения канала Red, 50 % от исходного значения канала Green и 50 % от исходного значения канала Blue. В результате исходные значения, присвоенные каналам Red, Green и Blue, будут потеряны.

При получении значений цвета пикселов из прозрачного изображения среда Flash осуществляет их автоматическое преобразование из предумноженного формата в стандартный (неумноженный) формат ARGB, который мы использовали в данной главе, приводя к потере точности. Во многих случаях преобразованное, неумно-женное значение цвета не совпадает с исходным значением цвета, присвоенным пикселу. Например, следующий код создает новый объект BitmapData, в котором

каждый пиксел имеет чистый белый цвет и является полностью прозрачным (то есть значение канала Alpha равно 0):

var imgData:BitmapData = new BitmapData(20. 20, true, OxOOFFFFFF);

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

trace(imgData. getPixel32(0, 0)); // Выводит: О

Исходные значения для каналов Red, Green и Blue, которые были равны 255, оказались потеряны.

Таким образом, если программа желает сохранить и в дальнейшем использовать значения цвета прозрачных пикселов без потери данных, она должна сохранить эти значения в объекте ByteArray. Вы можете руководствоваться общим правилом: значения цвета прозрачных пикселов, сохраненные в растровом изображении, должны считаться недоступными.

В отличие от этого, значения цвета непрозрачных пикселов могут быть получены в любой момент без риска потерять данные:

// Получение значения цвета пиксела из непрозрачного изображения var imgData:BitmapData = new BitmapData(20, 20, false, OxFFFFFFFF); trace(imgData. getPixel32(0. 0)); // Выводит: 4294967295

// (исходные данные были сохранены)

Как показано в следующем коде, значение цвета любого пиксела, уровень канала Alpha которого имеет значение 255, остается неизменным между последовательными операциями присваивания и получения значения цвета, даже если пиксел сохраняется в прозрачном растровом изображении.

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

Оставить комментарий

Вы должны авторизоваться для отправки комментария.

Полезные ссылки
Случайные записи
  • 18.05.2010">Самоучитель по креативному веб-дизайну. Книга 2, стр.72
  • 02.03.2011">Руководство по actionscript. часть 5, стр. 106
  • 14.06.2010">Самоучитель по креативному веб-дизайну. Книга 4, стр.60
  • 01.03.2011">Руководство по actionscript. часть 5, стр. 111
  • 10.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.102
  • 23.02.2011">Руководство по actionscript. часть 7, стр. 023
  • 03.03.2011">Руководство по actionscript. часть 5, стр. 066
  • 07.03.2011">Руководство по actionscript. часть 4, стр. 126
  • 18.05.2010">Самоучитель по креативному веб-дизайну. Книга 2, стр.100
  • 27.02.2011">Руководство по actionscript. часть 6, стр. 049
  • 02.06.2010">Самоучитель по креативному веб-дизайну. Книга 3, стр.119
  • 06.03.2011">Руководство по actionscript. часть 4, стр. 149
  • 05.03.2011">Руководство по actionscript. часть 4, стр. 155
  • 10.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.83
  • 03.03.2011">Руководство по actionscript. часть 5, стр. 067
Опрос

Какие цвета вы предпочитаете?

View Results

Loading ... Loading ...