【问题标题】:implementing mask functionality using BitmapData使用 BitmapData 实现掩码功能
【发布时间】:2013-08-13 20:00:15
【问题描述】:

我有两个启用了透明度的 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);
        }
   }
}

编辑 - 我有一个可能的解决方案,但它并不理想。我可以合并两个位图,然后使用threshold 方法将高于某个值的像素变为透明。所以我可以将所有蓝色像素设置为透明。但是,我在透明区域周围看到了一个蓝色的细环

【问题讨论】:

  • 为什么不能戴口罩?
  • 因为我在做 blitting

标签: actionscript-3 actionscript bitmapdata


【解决方案1】:

查看 bitmapData 的阈值方法。它应该返回一个带有相交区域的 bitmapData。这样,您就不必再获取和设置像素了。另外, getPixel32 应该有 setPixel32 :P

【讨论】:

  • 我找不到不同的方法。我能看到的最接近的是比较方法?但这行不通
  • user1063998 将您的项目上传到某个地方,我会为您寻找伙伴。在这里留下我的名字的评论,这样我会在你这样做时收到通知。
猜你喜欢
  • 2016-06-10
  • 2012-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-01
  • 2017-07-06
  • 2015-04-23
相关资源
最近更新 更多