У меня есть два объекта BitmapData с включенной прозрачностью. Один - большой красный квадрат, другой - маленький синий круг.реализация маски с использованием BitmapData
Если, например, я размещаю синий круг над красным квадратом. Я хотел бы создать область прозрачности в BitmapData красного квадрата, где кружок размытия. Подобно тому, как работает маска.
Я попытался использовать операции getPixel32(), но это очень медленно (см. Ниже). Есть ли другой способ, которым я могу это сделать? Спасибо
for(var x:int = 0; x < circleBitmapData.width; x++){
for(var y:int = 0; y < circleBitmapData.width; y++){
if(circleBitmapData.getPixel32(x,y) != 0x00000000){
squareBitmapData.setPixel(x,y,0x00000000);
}
}
}
EDIT - У меня есть одно возможное решение, но оно не идеально. Я могу объединить два растровых изображения, а затем использовать метод threshold
, чтобы превратить пиксели выше определенного значения в прозрачные. Поэтому я мог бы установить все голубые пиксели в прозрачные. Тем не менее, я получаю тонкое кольцо синего вокруг прозрачной области
Почему вы не можете использовать маску? – putvande
Потому что я делаю blitting – user1063998