Flash as2中BitmapData类的应用
BitmapData类可以直接处理位图,比如把一张位图转换成由无数细线构成的画,或者可以得知位图中一个点的RGB,甚至能做出面部识别器(我做过这个,利用人的头发识别脸的位置!)。
首先BitmapData类的构造方法:
1.
import flash.display.BitmapData;
var X:BitmapData = new BitmapData(A, B,C,D);
以上代码可以新建一个BitmapData类并设定宽、高、是否透明、背景色
X代表BitmapData类的名称
A 代表宽(数字)
B 代表高(数字)
C 代表是否可以显示透明位图(true/false布尔值)
D 代表背景色(0xXXXXXX是0x红红绿绿蓝蓝,如果C是true,就可以写为0xXXXXXXXX,就是0x红红绿绿蓝蓝ALPHA,注意是“零爱克斯XXXXXX”,不是“零哦XXXXXX”)
2.
import flash.display.BitmapData;
var X:BitmapData =BitmapData.loadBitmap("A")
以上代码可以新建一个BitmapData类并让它的宽和高等于一张图片的宽高并导入那张图片到这个类里(类的背景色默认为黑色0x000000)。
X代表BitmapData类的名称
A代表图片在库中的链接
如果BitmapData类是一个箱子,那么这个箱子里只能装照片(位图),而且这个箱子是隐藏的!要让它显示,一定要把它加载到影片剪辑里。
如:
import flash.display.BitmapData;
var
Bit:BitmapData =BitmapData.loadBitmap("PictureX");
var mc:MovieClip = this.createEmptyMovieClip("mc",0);
mc.attachBitmap(Bit);
以上代码将让mc这个剪辑里出现位图PictureX。
以上是最基本的知识。
若要知道一张位图中任意一个点的RGB,可以用X.getPixel(A,B)
X代表类的名字
A代表点的X
B代表点的Y
如: import flash.display.BitmapData;
var
Bit:BitmapData =BitmapData.loadBitmap("PictureX");
var mc:MovieClip = this.createEmptyMovieClip("mc",0);
mc.attachBitmap(Bit);
trace(Bit.getPixel(10,20));
这样会输出一串10进制数字,可你一定会说“我要的是RGB值!”没关系,我们来把它转换成RGB
RGB是一串16进制数字与英文字母的结合,如“0x3AB77F”, RGB的“0x”后的前两位是红色,中间两位是绿,剩下的两位是蓝。
常用的RGB:
0x000000 黑
0x00ff00
绿
0xffffff
白
0xff0000
红
0x0000ff
蓝
0xA0E2BC 一种舒服的绿色
刚才看到的10进制数字是RGB转换成10进制的数字。只要用toString()函数就可以解决转换问题
16进制=10进制.toString(16);
10进制=16进制.toString(10);
运用到RGB是同样的道理:
import flash.display.BitmapData;
var
Bit:BitmapData =BitmapData.loadBitmap("PictureX");
var mc:MovieClip = this.createEmptyMovieClip("mc",0);
mc.attachBitmap(Bit);
trace(“0x”+Bit.getPixel(10,20).toString(16));
这样就可以输出RGB了。
Word教程网 | Excel教程网 | Dreamweaver教程网 | Fireworks教程网 | PPT教程网 | FLASH教程网 | PS教程网 |
HTML教程网 | DIV CSS教程网 | FLASH AS教程网 | ACCESS教程网 | SQL SERVER教程网 | C语言教程网 | JAVASCRIPT教程网 |
ASP教程网 | ASP.NET教程网 | CorelDraw教程网 |