as3 抠图、选取透明区域

来源:互联网 发布:多组数据拟合一条曲线 编辑:程序博客网 时间:2024/05/13 19:13

Bitmap:位图对象,对所有加载的外部图片均可以转换成位图对象再加载显示

BitmapData:对位图的所有像素的信息以数据的形式保存在BitmapData对象中,其中构造方法第三个参数transparent用来控制位图的透明度,默认为true,表示支持各个像素有不同透明值

import flash.display.Shape;
import flash.display.Sprite;

var bt:BitmapData = new BitmapData(200,100,false,0xcccccc);
var bit:
Bitmap = new Bitmap(bt);
addChild(bit);
trace(bt.
getPixel(10,10).toString(16));//cccccc
trace(bt.
getPixel32(10,10).toString(16));//ffcccccc其中ff表透明度最大
其中getPixel32前边多的两位是alpha通道信息

同样getPixel,getPixel32,分别对应setPixel()getPixel32();

------------------------------------------------------------
利用这些方法就能实现抠图和判断透明区域了:代码如下:
package{

importflash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.Loader;
import flash.display.Sprite;
import flash.events.Event;
import flash.net.URLRequest;
import flash.display.LoaderInfo;

publicclass Main extends Sprite {

   private var a:Loader = new Loader();
   public function Main()
   {
    a.load(new URLRequest("10020601.png"));
    a.contentLoaderInfo.addEventListener(Event.COMPLETE, an);
   }
   private function an(evt:Event):void
   {   
    var hh:BitmapData = newBitmapData(a.content.width,a.content.height,false,0xcccccc);
    var kk:Bitmap = new Bitmap(hh);
    addChild(kk);
    kk.x = 200;
   
    var tu2:Bitmap=Bitmap(a.content as Bitmap);
    addChild(tu2);
    var yan:uint;
    for (var i:uint = 0; i<tu2.width; i++)
    {
     for (var j:uint = 0; j<tu2.height; j++)
     {
      yan = (a.content as Bitmap).bitmapData.
getPixel32(i, j);
      if (yan<=0)
//要抠取的颜色
      {
       tu2.bitmapData.
setPixel32(i,j,0xffff0000);
       hh.
setPixel(i,j,0xff0000);
      }
     }
    }   
   }
}
}

原图

最终效果

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 老公总是说一些不开心的话题怎么办 孩子沉迷手机篮球课不爱去怎么办 坐久了屁鼓会长疮怎么办 套胶的胶皮与海绵分离怎么办 换肾15天了沒尿怎么办? 妻子的绒癌怎么办?——急人! 孕妇结石掉在输尿管有血尿怎么办 吃葯时药片沾在食管臂上怎么办 八十多了膀胱癌手术复发了怎么办 尿蛋白和尿隐血2个加怎么办 小肝癌手术后两个月又复发了怎么办 膀胱癌血尿堵塞尿道和尿管怎么办 肾炎腰疼一条腿疼尿血怎么办 孕晚期尿常规检查尿蛋白高怎么办? 腰开车疼的不会动了怎么办 小孩跑完满头大汗就咳嗽怎么办 小孩剧烈咳嗽喘吃了药不管用怎么办 做什么事都有点轻微的手抖怎么办 见到喜欢的人做事情就手抖怎么办 做了尿结石手术还尿血怎么办 宝宝十一个大运动发展缓慢怎么办 一岁八个月宝宝肚里有蛔虫怎么办 孕妇5个月了缺碘怎么办 4个月婴儿折了下腰怎么办 签了居间合同网签合同有异议怎么办 魅族3s手机返回键失灵怎么办 英语冠词和名词的关系用不好怎么办 炸好了的肉梭子不脆了怎么办 跑步的时候胸抖的疼怎么办 小区内安装了乒乓球桌扰民了怎么办 裁判出示红牌如果球员不走怎么办 高三文化课不好又没有特长怎么办 孩子做事磨蹭拖拉不讲效率怎么办 宝贝幼儿园哭的嗓子哑了怎么办 我给孩子转学学校不接收怎么办 眼睛被太阳晒了胀豉豉的怎么办 电脑电源灯亮着屏幕是黑的怎么办 刚办健身卡健身房跑路了怎么办 孕妇怀孕初期胖的太快怎么办 魔幻陀螺二的陀螺拆不动怎么办 我不干了小厂不给我发工资怎么办