×

关注微信公众号

免备案网站空间虚拟主机双线空间域名查询PS数码后期
photoshop互助课堂数百G视频教程下载英语培训机构初中英语如何学随时随地聆听大师开讲/课堂
酷素材!视频教程打包下手绘教程抠图教程路径专辑photoshop cs3视频教程
查看: 5421|回复: 13

BitmapData 基础-实例2

[复制链接]
发表于 2011-3-24 10:21:31 | 显示全部楼层 |阅读模式
本帖最后由 cao4811 于 2011-3-24 10:24 编辑

操作颜色

BitmapDataExample3.as
  1. package
  2. {
  3.         import flash.display.Bitmap;
  4.         import flash.display.BitmapData;
  5.         import flash.display.Sprite;
  6.         import flash.display.StageAlign;
  7.         import flash.display.StageScaleMode;
  8.         import flash.events.Event;
  9.         import flash.events.MouseEvent;
  10.         import flash.geom.ColorTransform;
  11.         import flash.geom.Rectangle;
  12.        
  13.         [SWF(backgroundColor="#CCCCCC", frameRate="30", width="200", height="200")]
  14.         public class BitmapDataExample3 extends Sprite
  15.         {
  16.                 private var bm:Bitmap;
  17.                 private var count:Number = 0;
  18.                
  19.                 public function BitmapDataExample3()
  20.                 {
  21.                         //do some general housekeeping
  22.                         stage.align = StageAlign.TOP_LEFT;
  23.                         stage.scaleMode = StageScaleMode.NO_SCALE;
  24.                        
  25.                         //create a new BitmapData object filled with random noise
  26.                         var bmd:BitmapData = new BitmapData(100, 100, false, 0x000000);
  27.                         bmd.noise(Math.random()*int.MAX_VALUE);
  28.                         //create bitmap and pass in BitmapData object
  29.                         bm = new Bitmap(bmd);
  30.                         //add bitmap to stage
  31.                         bm.x = 50;
  32.                         bm.y = 50;
  33.                         addChild(bm);
  34.                         //add loop
  35.                         addEventListener(Event.ENTER_FRAME, loop);
  36.                         //add listener
  37.                         stage.addEventListener(MouseEvent.CLICK, reset);
  38.                 }
  39.                
  40.                 //run every frame
  41.                 private function loop(event:Event):void
  42.                 {
  43.                         //define rect to be right half of image
  44.                         var rect:Rectangle = new Rectangle(50, 0, 50, 100);
  45.                         //define transform
  46.                         var ct:ColorTransform = new ColorTransform(1, 1, 1, 1, count);
  47.                         //apply transform to image
  48.                         bm.bitmapData.colorTransform(rect, ct);
  49.                         //update counter
  50.                         count += 0.1;
  51.                 }
  52.                
  53.                 //called when user clicks anywhere
  54.                 private function reset(event:MouseEvent):void
  55.                 {
  56.                         //remove old bitmapData object
  57.                         bm.bitmapData.dispose();
  58.                         //insert new bitmapData object
  59.                         bm.bitmapData = new BitmapData(100, 100, false, 0x000000);
  60.                         //fill with noise
  61.                         bm.bitmapData.noise(Math.random()*int.MAX_VALUE);
  62.                         //reset counter
  63.                         count = 0;
  64.                 }

  65.         }
  66. }
复制代码
拷贝颜色

BitmapDataExample4.as
  1. package
  2. {
  3.         import flash.display.Bitmap;
  4.         import flash.display.BitmapData;
  5.         import flash.display.Shape;
  6.         import flash.display.Sprite;
  7.         import flash.display.StageAlign;
  8.         import flash.display.StageScaleMode;
  9.         import flash.events.MouseEvent;
  10.         import flash.geom.Point;
  11.        
  12.         [SWF(backgroundColor="#CCCCCC", frameRate="30", width="350", height="200")]
  13.         public class BitmapDataExample4 extends Sprite
  14.         {
  15.                 private var bmSrc:Bitmap;
  16.                 private var bmDest:Bitmap;

  17.                 public function BitmapDataExample4()
  18.                 {
  19.                         //do some general housekeeping
  20.                         stage.align = StageAlign.TOP_LEFT;
  21.                         stage.scaleMode = StageScaleMode.NO_SCALE;

  22.                         //create source BitmapData object filled with random noise
  23.                         var bmd:BitmapData = new BitmapData(100, 100, true, 0x00000000);
  24.                         bmd.noise(Math.random()*int.MAX_VALUE, 0, 255, 15);
  25.                         //create bitmap and pass in BitmapData object
  26.                         bmSrc = new Bitmap(bmd);
  27.                         //add bitmap to stage
  28.                         bmSrc.x = 50;
  29.                         bmSrc.y = 50;
  30.                         addChild(bmSrc);
  31.                         // create destination bitmap
  32.                         bmDest = new Bitmap(new BitmapData(100, 100, true, 0x00000000));
  33.                         bmDest.x = 200;
  34.                         bmDest.y = 50;
  35.                         addChild(bmDest);
  36.                         //copy with threshold
  37.                         bmDest.bitmapData.threshold(bmSrc.bitmapData, bmSrc.bitmapData.rect, new Point(0, 0), ">=", 0x00800000, 0xFFFFFF00, 0x00FF0000, false);
  38.                 }

  39.         }
  40. }
复制代码
Filters(滤镜)

BitmapDataExample5.as
  1. package
  2. {
  3.         import flash.display.Bitmap;
  4.         import flash.display.BitmapData;
  5.         import flash.display.Sprite;
  6.         import flash.display.StageAlign;
  7.         import flash.display.StageScaleMode;
  8.         import flash.events.Event;
  9.         import flash.filters.BitmapFilter;
  10.         import flash.filters.BlurFilter;
  11.         import flash.geom.Point;
  12.         import flash.geom.Rectangle;
  13.        
  14.         [SWF(backgroundColor="#CCCCCC", frameRate="30", width="200", height="200")]
  15.         public class BitmapDataExample5 extends Sprite
  16.         {
  17.                 private var bm:Bitmap;
  18.                 private var filter:BitmapFilter;

  19.                 public function BitmapDataExample5()
  20.                 {
  21.                         //do some general housekeeping
  22.                         stage.align = StageAlign.TOP_LEFT;
  23.                         stage.scaleMode = StageScaleMode.NO_SCALE;
  24.                        
  25.                         //create filter
  26.                         filter = new BlurFilter(2, 2, 1);
  27.                        
  28.                         //create a new BitmapData object
  29.                         var bmd:BitmapData = new BitmapData(100, 100, false, 0x000000);
  30.                         //create bitmap and pass in BitmapData object
  31.                         bm = new Bitmap(bmd);
  32.                         //add bitmap to stage
  33.                         bm.x = 50;
  34.                         bm.y = 50;
  35.                         addChild(bm);
  36.                         //add loop
  37.                         addEventListener(Event.ENTER_FRAME, loop);
  38.                 }
  39.                
  40.                 //called every frame
  41.                 private function loop(event:Event):void
  42.                 {
  43.                         //apply a blur
  44.                         bm.bitmapData.applyFilter(bm.bitmapData, bm.bitmapData.rect, new Point(0, 0), filter);
  45.                         //draw new block randomly
  46.                         var rect:Rectangle = new Rectangle(Math.random()*90, Math.random()*90, 10, 10);
  47.                         bm.bitmapData.fillRect(rect, Math.random()*0xFFFFFF);
  48.                 }

  49.         }
  50. }
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?[免费注册]

x

评分

参与人数 1 +8 +2 收起 理由
sanbos + 8 + 2 多谢教程,辛苦了。

查看全部评分

发表于 2011-3-24 15:25:47 | 显示全部楼层
支持下  
回复 支持 反对

使用道具 举报

发表于 2011-3-31 14:36:55 | 显示全部楼层
本帖最后由 知否 于 2011-3-31 14:38 编辑

cao4811老师:你好!今天我在练习bitmapData基础_实例2中的几个案例,对代码的基本含义有了一个轮廓形的理解!只是其中BitmapDataExample4.as中的关于threshold调用的几个参数不甚理解(主要是5、6、7这三个颜色参数):bmDest.bitmapData.(bmSrc.bitmapData, bmSrc.bitmapData.rect, new Point(0, 0), ">=", 0x00800000, 0xFFFFFF00, 0x00FF0000, false);这样取值的含义是什么?不吝赐教!
     谢谢!
回复 支持 反对

使用道具 举报

发表于 2012-1-11 11:29:43 | 显示全部楼层
多谢老师这样祥细地,一步步的讲解。这样的好老师,是我们一生的敬重。
回复 支持 反对

使用道具 举报

发表于 2017-12-4 20:16:13 | 显示全部楼层
楼主是超人
回复 支持 反对

使用道具 举报

发表于 2017-12-4 19:39:47 | 显示全部楼层
好帖就是要顶
回复 支持 反对

使用道具 举报

发表于 2017-12-4 19:58:26 | 显示全部楼层
很好哦。。。
回复 支持 反对

使用道具 举报

发表于 2017-12-4 20:17:13 | 显示全部楼层
果断收藏了
回复 支持 反对

使用道具 举报

发表于 2017-12-4 19:53:28 | 显示全部楼层
教程网我挺你
回复 支持 反对

使用道具 举报

发表于 2018-3-29 15:55:55 | 显示全部楼层
LZ真是人才
回复 支持 反对

使用道具 举报

发表于 2018-3-29 15:28:17 | 显示全部楼层
学习了。。。
回复 支持 反对

使用道具 举报

发表于 2018-3-29 15:19:08 | 显示全部楼层
好帖子要收藏
回复 支持 反对

使用道具 举报

发表于 2018-3-29 15:01:42 | 显示全部楼层
教程网我挺你
回复 支持 反对

使用道具 举报

发表于 2018-3-29 15:38:25 | 显示全部楼层
楼主我支持你
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | [免费注册]

本版积分规则