`
suiyuan0808
  • 浏览: 154426 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

flash位图技术研究篇

阅读更多

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

黑色:0x000000;

白色:0xffffff;

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);  
              
        }  
    }  


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/hero82748274/archive/2010/02/22/5316132.aspx

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

 

今天光顾了外国的某一些博客对位图的应用,发现对位图的操作会变化出很多很多效果,其中一篇是像素画的实现,借助这种对位图的像素操作应用,重新组合成新的图片,然后拼合成一张新的图片。

  思路很简单。借用这种手法应用对一些效果会很大帮助。如聚合与分散的像素动画。

左边是一张正常的,而右边是一张经过像素处理的灰太狼的图片。

通过外部加载回来的图片,获取到数据源,通过这个数据源我们可以借用bitmapdata 类的获取像素的值的操作,每一个像素包含RBG的值,通过getPixel(x,y)能够对位图进行像素获取。然后进行填充使用。最后产生出右边像素的画面的效果。主要涉及的方法应用是

两个循环获取像素的的值。

//进行像素获取,重组像素
   for (var i:int=0; i<Width; i+=step)
   {
    for (var j:int=0; j<Height; j+=step)
    {
     var color:uint=bmpData.getPixel(i,j);
     var rect:Rectangle=new Rectangle(i,j,step,step);
     bmpData.fillRect(rect,color);//填充像素
    }
   }

下面是实现过程,最主要了解到getPixel这个方法使用即可。

view plaincopy to clipboardprint?
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";  
        private var step:int=5;  
        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+=step)  
            {  
                for (var j:int=0; j<Height; j+=step)  
                {  
                    var color:uint=bmpData.getPixel(i,j);  
                    var rect:Rectangle=new Rectangle(i,j,step,step);  
                    bmpData.fillRect(rect,color);//填充像素  
                }  
            }  
            //显示到列表菜单  
            var bitmap:Bitmap=new Bitmap(bmpData);  
            bitmap.x=Width;  
            addChild(bitmap);  
              
        }  
    }  

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/hero82748274/archive/2010/02/21/5314532.aspx

分享到:
评论

相关推荐

    Flash CS6案例教程-素材源文件.rar

    FLA文件是创作和编辑Flash内容的基础,你可以在此基础上深入理解每个案例的设计思路和技术应用。 在"Flash CS6案例教程-素材源文件-电子教案-翟慧-51701770"这个文件中,我们可以期待找到一系列由教师翟慧编写的...

    flash源代码经典特效

    Flash源代码的经典特效往往包含了开发者们的创新思维和技术精粹,"smoke"特效就是其中之一。它通过ActionScript控制粒子系统,模拟烟雾的生成、扩散和消散过程,呈现出逼真的视觉效果。ActionScript是Flash平台的...

    60个Flash片头源文件

    这60个源文件可能包含了各种不同的设计风格和技术,包括渐变动画、形状补间、动作脚本3.0(AS3)编程、位图处理、音频集成等。通过研究这些源文件,用户可以学习如何创建动态过渡效果、自定义按钮、管理时间轴、应用...

    Flex 游戏入门级----------------位图切割,人物行走

    通过研究这些代码,你可以更深入地理解如何在 Flex 中实现位图切割和人物行走动画。 总结,位图切割和人物行走动画是 Flex 游戏开发中的重要组成部分。通过熟练掌握这些技术,你将能够创建出更加生动和交互性强的...

    Flash(SWF文件)拆解.rar

    2. Flash拆解过程:这个工具可能采用了反编译技术,将SWF文件的二进制数据解析为可读的形式。它首先识别出文件中的各个组件,如形状、图像、文本块、声音片段等,然后将它们导出为单独的文件。例如,位图可能被保存...

    金鱼的FLASH素材

    在IT行业中,特别是数字艺术与动画制作领域,Flash素材是一种广泛应用的资源,它通常包括图形、动画...这个压缩包提供的“as金鱼.fla”文件,对于学习和研究Flash动画技术,尤其是金鱼动画的制作,具有很高的参考价值。

    基于Flash平台的WebGIS构建研究.pdf

    "基于Flash平台的WebGIS构建研究" 本文研究了基于Flash平台的WebGIS构建方法,旨在解决小型WebGIS的开发难题。通过实际项目的开发,文章详细介绍了如何利用Flash+PHP+XML技术来构建小型WebGIS的方法。 WebGIS是GIS...

    Flash光线特效源文件.rar

    关于“矢量化技术”,在Flash中,矢量图形是由数学公式定义的,这意味着它们可以无损缩放且保持清晰,与位图图形相比,矢量图形占用的存储空间更小。在创建光线特效时,使用矢量图形可以实现平滑的动画过渡,同时...

    用flash制作MTV的论文

    这篇论文主要探讨如何使用Flash来制作MTV,特别是针对Flash CS3版本的特性进行深入研究。 首先,Flash的核心优势在于其矢量图形技术。与位图图形相比,矢量图形在放大或缩小时不会失去清晰度,这对于创建各种尺寸的...

    开发Flash网络游戏需要掌握的技术

    ### 开发Flash网络游戏...综上所述,开发Flash网络游戏涉及多个方面的技术,从基本的显示技术到高级的通信协议,每一点都值得深入研究。通过对上述知识点的学习和实践,开发者将能够构建出既美观又高效的网络游戏作品。

    flash文件拆解器

    《深入理解Flash文件拆解器》 在数字媒体领域,Flash曾是网页动画和交互设计的重要工具,而...随着技术的发展,虽然Flash已经逐渐淡出舞台,但其遗留的大量SWF资源依然可以通过这样的工具得到有效的利用和再创造。

    蜻蜓与黄鹂鸟Flash动画.rar

    《Flash动画制作技术——以“蜻蜓与黄鹂鸟”为例》 Flash动画,作为互联网早期流行的动态表现形式,以其轻量化、互动性强的特点深受喜爱。本资源名为“蜻蜓与黄鹂鸟Flash动画.rar”,它包含了一部非氏量(vector)...

    北京麻将-flash原文件

    总结来说,“北京麻将-flash原文件”不仅是游戏内容的载体,也是学习和研究Flash技术的宝贵资料。通过深入分析这个原文件,我们可以了解到Flash如何将图形、动画、代码和声音融合在一起,创建出互动性强、用户体验佳...

    flash制作mtv论文-flash毕业论文-flash-mtv论文.doc

    FLASH 动画制作的主要特点是可以把一些矢量图、位图和歌词、文字做成交互性很强的动画,不仅具有视觉和听觉的双重感受,使其更具有趣味性和创造性。 FLASH MTV 动画制作是 FLASH 动画制作的一种特殊形式,它主要...

    Nokia.rar_flash 游戏_flash游戏

    总的来说,这个“Nokia.rar”压缩包提供了一次回顾移动设备早期游戏历史的机会,对于喜欢怀旧或研究Flash游戏发展的人来说具有一定的价值。同时,它也可以作为教学资源,帮助初学者了解Flash游戏的开发和设计。

    flv-flash.rar_FlashMX _flash 播放_flash 播放器_flv_flv 播放器

    在IT行业中,Flash MX是一款非常经典的动画和交互设计软件,它是Adobe Flash Professional的早期版本,主要用于...尽管随着HTML5的发展,Flash已经逐渐淡出舞台,但理解其工作原理对于理解现代Web技术仍有历史价值。

    Flash动画设计经典200例.pdf

    1. **矢量图形与位图图像**:Flash动画的核心在于矢量图形的应用,这种格式使得动画在不同分辨率下都能保持清晰,而位图图像则用于复杂的背景和细节渲染。 2. **时间轴与关键帧**:时间轴是Flash动画制作的灵魂,...

    flash 飞机射击游戏

    《Flash飞机射击游戏》是一款基于Adobe Flash技术开发的娱乐项目,它展示了Flash在游戏制作领域的应用。这款源文件是开发者们学习和探索游戏编程、动画设计以及互动元素构建的宝贵资源。通过分析这款游戏,我们可以...

    FLash文件分解工具

    标题中的“Flash文件分解工具”指的是专门用于解析和拆分Adobe Flash(SWF)文件的软件工具。在描述中提到,这种工具能够...不过,掌握这些工具的使用技巧,对于那些仍然依赖或研究Flash技术的人来说,仍然是有价值的。

    一个Flash游戏人物行走源码和素材

    在IT行业中,Flash游戏开发是一项历史悠久的技术,尤其在网页游戏早期阶段非常流行。这个压缩包“Flash游戏人物行走源码和素材”包含了制作一个角色行走动画的关键元素,这对于理解Flash游戏开发,特别是动画处理和...

Global site tag (gtag.js) - Google Analytics