Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Вернуть цветность BitmapData после ColorTransform c помощью ColorTransform (http://www.flasher.ru/forum/showthread.php?t=121295)

Exey 12.02.2009 13:53

Вернуть цветность BitmapData после ColorTransform c помощью ColorTransform
 
Как после применения ColorTransform для BitmapData возвратить с помощью того же ColorTransform цвета оригинала?

Код AS3:

private var picBMP:Bitmap = new picClass()
private var picBMD:BitmapData =  picBMP.bitmapData
 
private const redCT:ColorTransform = new ColorTransform(1, 1, 1, 1, 255, 0, 0, 0);
private const unRedCT:ColorTransform = new ColorTransform(1, 1, 1, 1, -255, 0, 0,0);
 
private var i:int = 0
 
public function Main():void {
        addChild(picBMP)
        addEventListener(Event.ENTER_FRAME, tick)
}
 
private function tick(e:Event):void {
        if (i % 2)
                picBMD.colorTransform(picBMD.rect, redCT)
        else
                picBMD.colorTransform(picBMD.rect,unRedCT)
        i++       
}

Вроде одинаковый redOffset прибавляется/отнимается, а не получается :(

http://exey.ru/colorTransform/colorTransform.png

BlooDHounD 12.02.2009 14:17

мне кажется очевидным, надо дефолтное значение поставить.

silin 12.02.2009 14:25

те пиксели, которые ушли из 0..255, назад не вернешь
надо битмапДату оставить в покое, а регулировать transform.colorTransform битмапа:
Код AS3:

picBMP.transform.colorTransform = redCT;
picBMP.transform.colorTransform = new ColorTransform();


BlooDHounD 12.02.2009 14:35

silin, гы %) а я и не заметил, что это битмапка трансформируется :) прошу прощения

Exey 12.02.2009 14:38

если нету Bitmap, и создавать его нежелательно
Получается не существует способа раскрасить bitmapData не испортив окончательно,
и нужно забивать память копиями bitmapData-ы?

Яски 12.02.2009 21:23

Можно положить его в экземпляр класса Bitmap, на который уже и наложить colorTransform. Несколько Bitmap могут использовать одну BitmapData.

Не заметил, что вы против этого. Ну тогда да, не испортив не получиться.


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

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