Просмотр полной версии : Цветовой ключ в AS3
Varlamov_AS
23.12.2011, 11:20
Доброго времени суток.
Возник такой вопрос:
Есть ли в AS3 какое-либо подобие цветового ключа для Bitmap или BitmapData? Если да, то где можно про это почитать, если нет, то как можно сделать это программно?
Заранее спасибо.
Вы имеете ввиду программное рисование всяких фракталов в bitmapData? Тогда попробуйте perlinNoise (http://help.adobe.com/ru_RU/FlashPlatform/reference/actionscript/3/flash/display/BitmapData.html#perlinNoise%28%29) и матан вам в помощь
Varlamov_AS
23.12.2011, 11:55
Я плохо разбираюсь в графике, поэтому попробую сказать своими словами. Есть, к примеру, изображение. На нем, к примеру, нарисован какой-то человек, а задний фон - белый. Нужно сделать, чтобы задний белый фон заменялся фоном родительского объекта отображения.
color = bitmapData.getPixel(_x,_y);
if (color == 0xffffff) { bitmapData.setPixel32(_x,_y,0x00000000) }
http://silin.su/#AS3/bitmap/bucket/bin
но поковыряться однозначно прийдется
gloomyBrain
23.12.2011, 13:16
Хм. Если Вам нужно заменить определенный цвет на прозрачный - то тут я вижу 2 решения:
1) заранее нарисовать с прозрачным фоном (подсказал Кэп)
2) написать шейдер на PixelBender, которому в параметр передавать цвет для замены
Плюс шейдера в том, что он по возможности будет выполняться параллельно для всех пикселей изображения.
Varlamov_AS
23.12.2011, 14:31
Я попроовал методом threshold()
_bitmap1 = Bitmap(_tempLoader.content);
_bitmapData = new BitmapData(_bitmap1.bitmapData.width, _bitmap1.bitmapData.height);
_bitmapData.threshold(_bitmap1.bitmapData, _bitmap1.bitmapData.rect, _tempPoint, ">", 0xFFFFFFEE, 0x00000000, 0xFFFFFFFF, true);
_bitmap2.bitmapData = _bitmapData;
_bitmap2.x = _bitmap1.width + 20;
_uiCont.addChild(_bitmap1);
_uiCont.addChild(_bitmap2);
вышло не очень:
http://www.fotolink.su/v.php?id=cf9f4add502e49dd15ecbb4f5056683d
поэтому решил делать просто с прозрачным фоном :)
Добавлено через 46 секунд
http://www.fotolink.su/pic_b/cf9f4add502e49dd15ecbb4f5056683d.png
PainKiller
24.12.2011, 00:44
а блиттинг в вашем случае не подойдет? Вот по такому например рецепту (его кстати можно усложнить и заменять разные цвета):
http://active.tutsplus.com/tutorials/animation/blitting-with-as3-removing-a-bitmaps-background-color/
А не проще, использовать (картинку.png) с альфа каналом.
Vektor на самом деле фигня то интересная в плане - png без фона весит в разу больше чем его fналог jpg c однородным фоном. Поэтому думаю стоит написать класс для замены фона. Что в итоге может реально сократить место сайта, особенно если используются анимируемые 3д объекты без фона!!! Набор картинок как мувиклип, но при этом весщие немного - вы***** однако
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.