Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Качество границ прозрачных областей bitmap data (http://www.flasher.ru/forum/showthread.php?t=120800)

lamez 30.01.2009 21:32

Качество границ прозрачных областей bitmap data
 
Для того, чтобы попиксельно отредактировать(исказить в частности) картинку на экране записываю его содержимое в bitmap data. Затем удаляю один цвет(цвет, устанавливающий прозрачность) методом
threshold(f_bd,f_bd.rect,f_bd.rect.topLeft,"==",0xFFFF00FF,0x00FF00FF);
Появятся прозрачные области там, где был установлен цвет 0xFFFF00FF. Но на границе этого цвета с другим наблюдается их смешивание, поэтому на изображении останутся почти розовые(~<,~> 0xFFFF00FF) куски.

Вопрос 1: как избавиться от этих артефактов?
Вопрос 2: подскажите хороший программный способ извлечения значений четырех каналов цвета(по отдельности) из шестнадцатиричного значения типа 0xFFFF00FF.

TERRORist 31.01.2009 02:30

1) никак


2)Извлечение компонентов цвета:
Код AS1/AS2:

//24bit
var color:uint = 0x336699;
var r:uint = color >> 16;
var g:uint = color >> 8 & 0xFF;
var b:uint = color & 0xFF;
//32bit
var color:uint = 0xff336699;
var a:uint = color >>> 24;
var r:uint = color >>> 16 & 0xFF;
var g:uint = color >>> 8 & 0xFF;
var b:uint = color & 0xFF;
 
Объединение компонентов цвета:
 
//24bit
var r:uint = 0x33;
var g:uint = 0x66;
var b:uint = 0x99;
var color:uint = r << 16 | g << 8 | b;
 
//32bit
var a:uint = 0xff;
var r:uint = 0x33;
var g:uint = 0x66;
var b:uint = 0x99;
var color:uint = a << 24 | r << 16 | g << 8 | b;



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

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