Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Сложение и вычитание каналов цветов в BitmapData (http://www.flasher.ru/forum/showthread.php?t=133422)

Котяра 04.12.2009 16:24

Сложение и вычитание каналов цветов в BitmapData
 
Задача:
есть исходный задник back.
есть степень затемнения ( от 0 до 255) darkness;
есть чёрно-белая маска. mask

Необходимо получить исходную битмапу
каждый пиксель которой следующего вида (условный код)
Код AS1/AS2:

delta:uint = darkness-maskPixel(i,j).RED;// положительное
destPixel(i,j).RED = backPixel(i,j).RED - delta
destPixel(i,j).GREEN = backPixel(i,j).GREEN - - delta
destPixel(i,j).BLUE = backPixel(i,j).BLUE - delta
 
maskPixel(i,j).RED==maskPixel(i,j).GREEN==maskPixel(i,j).BLUE
// т.к. изображение монохромное

перебирать при помощи getPixel/setPixel конечно же нельзя..
хочется это сделать при помощи copyChannell/merge итп..
но мозг уже сломал)

cleptoman 04.12.2009 20:25

а что есть степень затемнения? градация всех 3 каналов от 0 до 255?

SamFR 04.12.2009 23:06

А чем PixelBender не угодил? Там это делается элементарно, да и в плане производительности, наверное, лучшее решение.

Котяра 07.12.2009 10:10

по сути - мне необходимо сделать затемнение с маской. затемнение - это уменьшение каждого канала фона.
маска - это уменьшение затемнения для конкретного пикселя маски.
Пиксельбендер не пробовал, т.к. рассчитывал решить стандартными средствами этот вопрос. сейчас делаю так:
чёрный прямоугольник (alpha = darkness) в его альфа канал сливаю R канал маски.
затем накладываю полученную маску на бэкграунд.
это немного не то что я хотел.т.к. не получается одной битмапы. можно конечно еще делать draw, но наверное есть другой метод, который я не нащупал пока..

iflamberg 07.12.2009 11:48

это ты что-то типа динамического освещения хочешь сделать? Типа, как фонариком светят?

Котяра 07.12.2009 15:28

да. точно так.


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

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