续把上面的资料记录一下,像素画是对每一个像素进行操作进行重组,而这些操作可以看到位图像素操作是可以变化出很多令人意想不到的效果。今天,把在网站看到的一些文章记录一下,关于黑白画像素操作。原理很简单,从一张图片可以看到是由一个个像素组成,可以看成是一个个细小的微粒。这些微粒包含了一些值,颜色值,这些值呈现出不同的颜色,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文档中大量图片的保真...可以对Flash IDE中所有打开的文档一键操作,也可以仅对当前文档操作,结果是将位图转为无损格式并且平滑。有需要的朋有看看。因为我的米米不多,所以此文档要宰你2分。
音视频-图像处理-录井导向井位图处理技术研究与应用.pdf
国内首篇利用freetype的跨平台truetype字体真正轮廓(非位图)获取(带完整qt工程代码).rar 国内首篇利用freetype的跨平台truetype字体真正轮廓(非位图)获取(带完整qt工程代码).rar 国内首篇利用freetype的跨平台...
flash动画优化——位图淘汰机制 Bitmap对象是flash中渲染速度最快的,同时它还有一个特点是多个Bitmap实例可以共用同一个BitmapData对象,在这种情况下,多个Bitmap实例和单个Bitmap实例所占用的内存相差无几。 ...
Flash as3基于位图的碰撞检测实例,自己写的,有兴趣的话可以看看
24位彩图转为8位灰度图的C++代码,通过修改位图文件信息头来实现位图转换。
触摸屏位图,需要的看看交流。我也需要位图 触摸屏位图,需要的看看交流。我也需要位图
位图置换飘忽效果-PerlinDistort类flash源文件
VC下彩色位图转单色位图,可实现截图,生成位图数据文件。
android 多位图转化为单色位图。32位深图转1位深图。24位深转1位
易语言位图句柄和位图数据转换源码,位图句柄和位图数据转换,NotifySys,运行时错误,取执行的文件名,位图句柄取数据,数据取位图句柄
易语言位图句柄取位图模块源码,位图句柄取位图模块,NotifySys,运行时错误,取执行的文件名,位图句柄取数据,数据取位图句柄,解锁内存块,释放内存块,取内存块长度,锁定内存块,删除对象,取屏幕句柄
VB 翻转放大位图 VB 翻转放大位图 VB 翻转放大位图
这是一个flashCS系列使用的jsfl...首先打开fla文档(该fla文档必须被保存过),之后双击运行该文件会将当前正在编辑的时间轴转换成位图序列。 适合flash移动开发、 flash网游素材制作和优化、 flash stage3D材质制作等
基于聚合位向量算法,提出一种新的改进算法,在不影响时间效率的基础上,通过改变算法中位图的存储方式,将聚合位图与位图交叉存储,忽略位图中全为0的部分,极大地减少了空间开销。最后,在仿真环境中对算法进行评测...
在Flash中应用文字和位图.pdf
vc中如何显示位图vc中如何显示位图vc中如何显示位图vc中如何显示位图vc中如何显示位图
位图转换技术文档,24位位图转换8位。 介绍BMP文件的格式及结构定义。
位图操作支持库|位图操作支持库