PDA

Просмотр полной версии : Заставить чёрно-белую картинку работать как альфа-канал


Universe
18.06.2012, 12:47
У меня есть картинка чёрно-белого градиента, я хочу применить эту картинку как маску к другой. мне нужно, чтобы чёрные участки в маске скрывали, а белые показывали, т.е. чтобы маска работала как фотошопе. Как мне достичь данного эффекта?

etc
18.06.2012, 12:57
copyChannel

Universe
18.06.2012, 13:20
а можно примерчик по тому, как скопировать канал с одной bitmapDat'ы в альфа канал другой?

etc
18.06.2012, 13:22
Вызвать метод copyChannel у одного битмапа, передав туда в качестве сорса другой, не?
Если картинка черно-белая с непрозрачной alpha, то можно в неё же любой из RGB-каналов скопировать.

Universe
19.06.2012, 14:53
Есть bitmapData, в которой я генерю perlinNoise, для создания эффекта тумана, для того чтобы perlinNoise был прозрачный пробую скопировать синий канал к альфа канал всё тойже bitmapData, вот так:
static private function animate(e:Event):void
{
for(var i=0; i<numOctaves; i++)
{
offsets[i].x += speeds[i].x;
offsets[i].y += speeds[i].y;
}

bmd.perlinNoise(baseX, baseY, numOctaves, randomSeed, stitch, fractalNoise, channelOptions, grayScale, offsets);
bmd.copyChannel(bmd, new Rectangle(0, 0, bmd.width, bmd.height), new Point(), BitmapDataChannel.BLUE, BitmapDataChannel.ALPHA);
//bmd.noise(500, 0, 255, BitmapDataChannel.BLUE,false);
}
Но чего то прозрачность не добавляется

etc
19.06.2012, 15:00
perlinNoise можно сразу как alpha создавать.

Universe
19.06.2012, 16:29
а как применить его к альфа каналу? Тоже через copyChannel?

etc
19.06.2012, 16:34
Предлагаю всё же раскурить все аргументы perlinNoise/copyChannel.

Universe
19.06.2012, 16:40
это вы про channelOptions в perlinNoise?

Поправил, вроде сработало. Но эффект не тот. Шум начал распределяться как то по другому.