Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 30.07.2008, 12:19
Alex_beginner вне форума Посмотреть профиль Отправить личное сообщение для Alex_beginner Найти все сообщения от Alex_beginner
  № 1  
Ответить с цитированием
Alex_beginner
 
Аватар для Alex_beginner

Регистрация: May 2008
Сообщений: 476
chingachgoog! Очень любопытные исследования. Я, увлекся ими.

Цитата:
Ладно, используем getColorBoundsRect:

Код:
colorBoundsRect = myBitmapData.getColorBoundsRect(0xffff00ff, 0x705400ff, true);
trace(colorBoundsRect) // (x=0, y=0, w=250, h=200)
Обратите внимание: в маске канала R (RGB) параметр установлен в 0xFF, а в параметре цвета этого же канала установлено "левое" (реальное) значение в 0x54. Результат - все показывает верно.

Меняем параметр цвета на правильный (заданный), т.е. на 0х55:


Код:
colorBoundsRect = myBitmapData.getColorBoundsRect(0xffff00ff, 0x705500ff, true);
trace(colorBoundsRect) // (x=0, y=0, w=250, h=200)
Опять правильно! Как такое возможно?!
Ну, я думаю, проблема здесь в конфликте попиксельного смешивания прозрачности цвета (параметр transparent) и альфа-составляющей значений маски и искомого цвета.
Грубо говоря, установите, параметр transparent в false, и данный пример заработает, т.е.:

Код:
myBitmapData = new BitmapData(300, 200, false, 0x705500FF);
Я, не совсем понимаю, зачем использовать transparent==true и при этом еще манипулировать альфа-каналом в кокретных используемых значениях. Практичнского значения это не имеет.
Используйте, лучше transparent==false и значения альфа-канала.

Буду исследовать дальше.
__________________
Случайность, господа, это знаете ли непознанная необходимость.


Последний раз редактировалось Alex_beginner; 30.07.2008 в 12:46.
Старый 25.03.2009, 11:22
Bred45 вне форума Посмотреть профиль Отправить личное сообщение для Bred45 Найти все сообщения от Bred45
  № 2  
Ответить с цитированием
Bred45

Регистрация: Dec 2008
Сообщений: 87
Ребята, спасибо за эту тему. Тоже на днях ломал голову над похожей задачей при использовании Threshold.

В результате, причину проблемы нашел в мануале по getPixel:
Все цветовые пикселы в объекте BitmapData хранятся уже умноженными на значение альфы (premultiplied color values).
И в мануале даже упомянуто, что потеря данных может вызывать некоторые проблемы. Вот с этими проблемами мы, похоже, и столкнулись.

Так что chingachgoog, видимо, в своем конечном выводе прав.

Создать новую тему Ответ Часовой пояс GMT +4, время: 20:39.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 20:39.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.