Как я могу скопировать замаскированное растровое изображение, сохраняя прозрачность маскировки в ActionScript? - PullRequest
0 голосов
/ 07 января 2010

Мне нужно найти способ скопировать растровое изображение в маске.У меня есть растровое изображение на сцене и нарисованный пользователем спрайт, который действует как маска.Мне нужно захватить / скопировать растровое изображение маскированной области, сохраняя прозрачность, созданную маскировкой, чтобы в конечном итоге кодировать как png.

Я не смог найти никакой документации о том, как выполнить это с помощью copyPixels () или любых других направлений.

Заранее благодарим за любую помощь -

b

1 Ответ

1 голос
/ 07 января 2010

Я сделал простой тест, который, кажется, работает:

var square:Sprite = new Sprite();
var circle:Sprite = new Sprite();
var holder:Sprite = new Sprite();

square.graphics.beginFill(0,.5);
square.graphics.drawRect(0,0,100,100);
square.graphics.endFill();

circle.graphics.beginFill(0);
circle.graphics.drawCircle(0,0,50);
circle.graphics.endFill();

addChild(holder);
holder.addChild(square);
holder.addChild(circle);
square.mask = circle;

var cloneData:BitmapData = new BitmapData(holder.width,holder.height,true,0x00FFFFFF);
cloneData.draw(holder);
var clone:Bitmap = new Bitmap(cloneData);
addChild(clone);
clone.x = 30;

Я создаю BitmapData и использую метод draw () для создания клона. Ключевым моментом являются последние два аргумента в конструкторе BitmapData. После того, как я передаю holder.width и holder.height, я указываю, что хочу, чтобы bitmapData был прозрачный (true) и имел заливку f прозрачный белый (0x00FFFFFF) в ARGB (альфа-красный-зелено-синий)

Надеюсь, это поможет:)

...