flash位图技术研究篇(6):黑白画

本文介绍如何使用AS3对彩色图像进行黑白像素处理。通过遍历每个像素并根据其颜色值将其设置为白色或黑色,实现黑白效果。文中提供了一个具体的AS3代码示例。

继续把上面的资料记录一下,像素画是对每一个像素进行操作进行重组,而这些操作可以看到位图像素操作是可以变化出很多令人意想不到的效果。今天,把 在网站看到的一些文章记录一下,关于黑白画像素操作。原理很简单,从一张图片可以看到是由一个个像素组成,可以看成是一个个细小的微粒。这些微粒包含了一 些值,颜色值,这些值呈现出不同的颜色,as3可以对每一个像素进行索引,通过这个索引我们就可以对画面的某一些像素进行“动手脚”,在某一些值范围内设置白色,某一些值范围内设置黑色。

黑色:0x000000;

白色:0xffffff;

这样就能够实现到黑白画的效果。

rgb

演示的效果。

黑白画



package
{
    import flash.display.Sprite;
    import flash.display.Loader;
    import flash.display.Bitmap;
    import flash.display.BitmapData;
    import flash.events.*;
    import flash.net.*;
    import flash.geom.Rectangle;
    public class Main extends Sprite
    {
        private var loader:Loader;
        private var url:String="3.jpg";
        public function Main()
        {
            init();
        }
        //初始化
        private function init():void
        {
            loader=new Loader();//外部加载一张图片
            loader.load(new URLRequest(url));
            loader.contentLoaderInfo.addEventListener(Event.COMPLETE,onComplete);
        }
        private function onComplete(event:Event):void
        {  
           
            var Width:Number=loader.content.width;
            var Height:Number=loader.content.height;
            addChild(new Bitmap(Bitmap(loader.content).bitmapData));
           
            var bmpData:BitmapData=new BitmapData(Width,Height,false,0xffffff);//新建一个空白的位图数据
            bmpData.draw(loader);//获取影像

            //进行像素获取,重组像素
            for (var i:int=0; i<Width; i++)
            {
                for (var j:int=0; j<Height; j++)
                {
                    var color:uint=bmpData.getPixel(i,j);
                    if(color>0x3fffff)
                    bmpData.setPixel(i,j,0xffffff);//设置白色
                    else bmpData.setPixel(i,j,0x000000);//设置黑色                   
                }
            }
            //显示到列表菜单
            var bitmap:Bitmap=new Bitmap(bmpData);
            bitmap.x=Width;
            addChild(bitmap);
           
        }
    }
}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值