API Docs for: 1.10.1 最后更新日期:2016年03月28日
Google搜索   
Show:

LBitmapData Class

Extends LObject

Available since 1.0.0

创建一个具有指定的宽度和高度的 LBitmapData 对象。

使用 LBitmapData 类,您可以处理 LBitmap 对象的数据(像素)。可以使用 LBitmapData 类的方法创建任意大小的Image对象,并在运行时采用多种方式操作这些图像。也可以访问使用 LLoader 类加载的Image对象。

Constructor

LBitmapData

(
  • image
  • x
  • y
  • width
  • height
  • dataType
)
public

Defined in display/LBitmapData.js:1

Available since 1.0.0

Parameters:

  • image Image

    一个Image对象。

  • x Float

    Image可视范围x坐标(该参数可省略)。

  • y Float

    Image可视范围y坐标(该参数可省略)。

  • width Float

    Image可视范围宽(该参数可省略)。

  • height Float

    Image可视范围高(该参数可省略)。

  • dataType String

    指定数据格式,可以使用LBitmapData.DATA_IMAGE(Image对象)和LBitmapData.DATA_CANVAS(Canvas对象)(该参数可省略)。

Example:

Linit(50, "mylegend", 800, 480, main);
function main () {
    var loader = new LLoader();
    loader.addEventListener(LEvent.COMPLETE, loadBitmapdata);
    loader.load("lufylegend.js.png", "bitmapData");
}
function loadBitmapdata (event) {
    var bitmapdata = new LBitmapData(event.target);
    var bitmap = new LBitmap(bitmapdata);
    addChild(bitmap);

    var bitmapdata2 = new LBitmapData("#FF0000", 0, 0, 100, 100);
    var bitmap2 = new LBitmap(bitmapdata2);
    bitmap2.x = 200;
    addChild(bitmap2);
}

Methods

applyFilter

(
  • sourceBitmapData
  • sourceRect
  • destPoint
  • filter
)
public

Defined in display/LBitmapData.js:269

Available since 1.9.11

取得一个源图像和一个滤镜对象,并生成过滤的图像。

此方法依赖于内置滤镜对象的行为,这些对象确定受输入源矩形影响的目标矩形。

Parameters:

  • sourceBitmapData LBitmapData

    要使用的输入位图图像。源图像可以是另一个 LBitmapData 对象,也可以引用当前 LBitmapData 实例。

  • sourceRect LRectangle

    定义要用作输入的源图像区域的矩形。

  • destPoint LPoint

    目标图像(当前 LBitmapData 实例)中与源矩形的左上角对应的点。

  • filter LBitmapFilter

    用于执行过滤操作的滤镜对象。

callParent

(
  • functionName
  • arguments
)
public

Inherited from LObject: utils/LObject.js:22

Available since 1.6.0

调用父类的函数。

Parameters:

  • functionName String

    函数名

  • arguments Array

    固定值arguments

Example:

function funA(){
    LExtends(this,LObject,[]);
}
funA.prototype.myName = function(){
    return "AAA";
}
function funB(){
    LExtends(this,funA,[]);
}
funB.prototype.myName = function(){
    return "BBB";
}
function funC(){
    LExtends(this,funA,[]);
}
funC.prototype.myName = function(){
    return this.callParent("myName",arguments);
}
LInit(1000/50,"legend",800,150,main);
function main(){
    LGlobal.setDebug(true);
    var objB = new funB();
    trace(objB.myName());//BBB
    var objC = new funC();
    trace(objC.myName());//AAA
}

clear

(
  • rectangle
)
public

Defined in display/LBitmapData.js:162

Available since 1.9.12

擦除LBitmapData

使用条件:数据保存形式为LBitmapData.DATA_CANVAS。

Parameters:

  • rectangle LRectangle

    擦除范围,默认为全部擦除。

clone

() LBitmapData public

Defined in display/LBitmapData.js:236

Available since 1.8.2

返回一个LBitmapData的克隆对象。

Returns:

LBitmapData:

一个新的 LBitmapData 对象,它与原始对象相同.

Example:

var bmd1 = new LBitmapData("#FF0000", 0, 0, 100, 100);
var bm1 = new LBitmap(bmd1);
addChild(bm1);

var bmd2 = bmd1.clone();
var bm2 = new LBitmap(bmd2);
bm2.x = 120;
addChild(bm2);

colorTransform

(
  • rect
  • colorTransform
)
public

Defined in display/LBitmapData.js:648

Available since 1.9.4

使用 LColorTransform 对象调整位图图像的指定区域中的颜色值。如果矩形与位图图像的边界匹配,则此方法将转换整个图像的颜色值。

使用条件:数据保存形式为LBitmapData.DATA_CANVAS。

Parameters:

  • rect LRectangle

    一个 LRectangle 对象,它定义在其中应用 LColorTransform 对象的图像区域。

  • colorTransform LColorTransform

    一个 LColorTransform 对象,它描述要应用的颜色转换值。

Example:

LInit(50, "legend", 800, 480, main);
function main () {
    var loader = new LLoader();
    loader.addEventListener(LEvent.COMPLETE, loadBitmapdata);
    loader.load("face.jpg", "bitmapData");
}
function loadBitmapdata (event) {
    var bitmapData = new LBitmapData(event.target, 0, 0, 240, 240, LBitmapData.DATA_CANVAS);
    var rect = new LRectangle(50, 50, 90, 90);
    var colorTransform = new LColorTransform(0.5, 0.7, 0.4, 1, 0, 0, 0, 0);
    bitmapData.colorTransform(rect, colorTransform);
    var bitmap = new LBitmap(bitmapData);
    addChild(bitmap);
}

copyPixels

(
  • sourceBitmapData
  • sourceRect
  • destPoint
)
public

Defined in display/LBitmapData.js:690

Available since 1.9.4

此方法在目标 LBitmapData 对象的目标点将源图像的矩形区域复制为同样大小的矩形区域。

使用条件:数据保存形式为LBitmapData.DATA_CANVAS。

Parameters:

  • sourceBitmapData LBitmapData

    要从中复制像素的输入位图图像。源图像可以是另一个 LBitmapData 实例,也可以指当前 LBitmapData 实例。

  • sourceRect LRectangle

    定义要用作输入的源图像区域的矩形。

  • destPoint LPoint

    目标点,它表示将在其中放置新像素的矩形区域的左上角。

Example:

LInit(50, "legend", 800, 480, main);
function main () {
    var loader = new LLoader();
    loader.addEventListener(LEvent.COMPLETE, loadBitmapdata);
    loader.load("face.jpg", "bitmapData");
}
function loadBitmapdata (event) {
    var bitmapData = new LBitmapData(event.target);
    bitmapData2 = new LBitmapData(null, 0, 0, 240, 240, LBitmapData.DATA_CANVAS);
    bitmapData2.copyPixels(bitmapData, new LRectangle(0, 0, 240, 240), new LPoint(0,0));
    bitmapData2.copyPixels(bitmapData, new LRectangle(50, 50, 100, 100), new LPoint(0,50));
    bitmapData2.copyPixels(bitmapData, new LRectangle(100, 50, 100, 100), new LPoint(50,150));

    var bitmap = new LBitmap(bitmapData);
    addChild(bitmap);

    var bitmap2 = new LBitmap(bitmapData2);
    bitmap2.y = 250;
    addChild(bitmap2);
}

draw

(
  • source
  • matrix
  • colorTransform
  • blendMode
  • clipRect
)
public

Defined in display/LBitmapData.js:566

Available since 1.7.7

在LBitmapData位图图像上绘制 source 显示对象。可以指定 matrix、colorTransform、blendMode 和目标 clipRect 参数来控制呈现的执行方式。您可以根据需要指定是否应在缩放时对位图进行平滑处理。

Parameters:

  • source LDisplayObject | LBitmapData

    要绘制到 LBitmapData 对象的显示对象或 LBitmapData 对象。

  • matrix LMatrix

    一个 Matrix 对象,用于缩放、旋转位图或转换位图的坐标。如果不想将矩阵转换应用于图像,请将此参数设置为恒等矩阵(使用默认 new LMatrix() 构造函数创建),或传递 null 值。

  • colorTransform LColorTransform

    一个 LColorTransform 对象,用于调整位图的颜色值。如果没有提供任何对象,则不会转换位图图像的颜色。如果必须传递此参数但又不想转换图像,请将此参数设置为使用默认 new LColorTransform() 构造函数创建的 LColorTransform 对象。

    测试链接

  • blendMode String

    来自 LBlendMode 类的一个字符串值,指定要应用于所生成位图的混合模式。

    测试链接

  • clipRect LRectangle

    一个 LRectangle 对象,定义要绘制的源对象的区域。 如果不提供此值,则不会进行剪裁,并且将绘制整个源对象。

    测试链接

Example:

var layer = new LSprite();
layer.graphics.drawRect(1, "#000000", [0, 0, 100, 100], true, "#000000");
layer.graphics.drawRect(1, "#FF0000", [100, 0, 100, 100], true, "#FF0000");
addChild(layer);

var bitmapData = new LBitmapData(null, 0, 0, 500, 400);
bitmapData.draw(layer);
var bitmap = new LBitmap(bitmapData);
bitmap.y = 150;
addChild(bitmap);

getPixel

(
  • x
  • y
  • colorType
)
Array public

Defined in display/LBitmapData.js:287

Available since 1.5.1

返回一个数组,它表示 LBitmapData 对象中在特定点 (x, y) 处的 RGB 像素数据。

Parameters:

  • x Int

    指定坐标点x坐标。

  • y Int

    指定坐标点y坐标。

  • colorType String

    指定获取的颜色种类。[number|array](可省略)。

Returns:

Array:

像素数据。

Example:

var bitmapData = new LBitmapData(event.target);
bitmapData2 = new LBitmapData(null, 0, 0, 500, 400);
var img, imgs = [], arr;
bitmapData.lock();
for (var i = 0; i < 50; i++) {
     arr = [];
     for (var j = 0; j < 50; j++) {
        img = bitmapData.getPixel(100 + i, 100 + j);
        arr.push(img);
    }
    imgs.push(arr);
}
bitmapData.unlock();
bitmapData2.lock();
for (var i = 0; i < 50; i++) {
    arr = imgs[i];
    for (var j = 0; j < 50; j++) {
        img = arr[j];
        bitmapData2.setPixel(i, j, img);
    }
}
bitmapData2.unlock();
var bitmap = new LBitmap(bitmapData);
addChild(bitmap);
var bitmap2 = new LBitmap(bitmapData2);
bitmap2.x = 250;
addChild(bitmap2);

getPixels

(
  • rect
)
Array public

Defined in display/LBitmapData.js:409

Available since 1.5.1

返回一个数组,它表示 LBitmapData 对象中在特定矩形区域rect中的像素数据。

Parameters:

Returns:

Array:

返回该矩形区域的像素数据。

Example:

var bitmapData = new LBitmapData(event.target);
bitmapData2 = new LBitmapData(null, 0, 0, 500, 400);
var img = bitmapData.getPixels(new LRectangle(75, 50, 100, 100));
bitmapData2.lock();
bitmapData2.setPixels(new LRectangle(50, 30, 50, 50), img);
bitmapData2.setPixels(new LRectangle(100, 30, 50, 50), img);
bitmapData2.setPixels(new LRectangle(150, 30, 50, 50), img);
bitmapData2.setPixels(new LRectangle(200, 30, 50, 50), img);
bitmapData2.unlock();

var bitmap = new LBitmap(bitmapData);
addChild(bitmap);

var bitmap2 = new LBitmap(bitmapData2);
bitmap2.y = 250;
addChild(bitmap2);

lock

() public

Defined in display/LBitmapData.js:544

Available since 1.5.1

此函数将操作对象锁定,保证操作对象在另一个临时操作的canvas上只绘制一遍。

putPixels

(
  • rect
  • data
)
public

Defined in display/LBitmapData.js:510

Available since 1.9.1

设置 LBitmapData 对象的指定区域的像素数据。使用条件如下:

1,数据保存形式为LBitmapData.DATA_CANVAS。

2,每桢单次或少量次数操作,且不与setPixel,setPixels,getPixel,getPixels等函数同时进行。

满足以上两个条件,可以使用putPixels来代替setPixels来更快速的设置像素,且不需要lock和unlock。

Parameters:

  • rect LRectangle

    指定矩形。

  • data Array

    像素数据。(ImageData对象)

Example:

var bitmapData = new LBitmapData(event.target);
bitmapData2 = new LBitmapData(null, 0, 0, 500, 400,LBitmapData.DATA_CANVAS);
bitmapData.lock();
var img = bitmapData.getPixels(new LRectangle(75, 50, 100, 100));
bitmapData.unlock();

bitmapData2.putPixels(new LRectangle(50, 30, 50, 50), img);

var bitmap = new LBitmap(bitmapData);
addChild(bitmap);

var bitmap2 = new LBitmap(bitmapData2);
bitmap2.y = 250;
addChild(bitmap2);

setCoordinate

(
  • x
  • y
)
public

Defined in display/LBitmapData.js:211

Available since 1.0.0

用来改变LBitmapData内Image的可视范围的起点位置坐标

Parameters:

  • x Float

    Image可视范围x坐标。

  • y Float

    Image可视范围y坐标。

Example:

var bitmapdata1 = new LBitmapData(event.target, 20, 20, 100, 100);
var bitmap1 = new LBitmap(bitmapdata1);
addChild(bitmap1);

var bitmapdata2 = new LBitmapData(event.target, 20, 20, 100, 100);
bitmapdata2.setCoordinate(100, 100);
var bitmap2 = new LBitmap(bitmapdata2);
bitmap2.x = 120;
addChild(bitmap2);

setPixel

(
  • x
  • y
  • data
)
Array public

Defined in display/LBitmapData.js:344

Available since 1.5.1

返回一个数组,它表示 LBitmapData 对象中在特定点 (x, y) 处的 RGB 像素数据。

Parameters:

  • x Int

    指定坐标点x坐标。

  • y Int

    指定坐标点y坐标。

  • data Array

    像素数据。

Returns:

Array:

像素数据。

Example:

var bitmapData = new LBitmapData(event.target);
bitmapData2 = new LBitmapData(null, 0, 0, 500, 400);
var img, imgs = [], arr;
bitmapData.lock();
for (var i = 0; i < 50; i++) {
     arr = [];
     for (var j = 0; j < 50; j++) {
        img = bitmapData.getPixel(100 + i, 100 + j);
        arr.push(img);
    }
    imgs.push(arr);
}
bitmapData.unlock();
bitmapData2.lock();
for (var i = 0; i < 50; i++) {
    arr = imgs[i];
    for (var j = 0; j < 50; j++) {
        img = arr[j];
        bitmapData2.setPixel(i, j, img);
    }
}
bitmapData2.unlock();
var bitmap = new LBitmap(bitmapData);
addChild(bitmap);
var bitmap2 = new LBitmap(bitmapData2);
bitmap2.x = 250;
addChild(bitmap2);

setPixels

(
  • rect
  • data
)
public

Defined in display/LBitmapData.js:446

Available since 1.5.1

设置 LBitmapData 对象的指定区域的像素数据。

Parameters:

  • rect LRectangle

    指定矩形。

  • data Array

    像素数据。(ImageData对象 | 字符串"#000000" | 数值0x000000)

Example:

var bitmapData = new LBitmapData(event.target);
bitmapData2 = new LBitmapData(null, 0, 0, 500, 400);
var img = bitmapData.getPixels(new LRectangle(75, 50, 100, 100));
bitmapData2.lock();
bitmapData2.setPixels(new LRectangle(50, 30, 50, 50), img);
bitmapData2.setPixels(new LRectangle(100, 30, 50, 50), img);
bitmapData2.setPixels(new LRectangle(150, 30, 50, 50), img);
bitmapData2.setPixels(new LRectangle(200, 30, 50, 50), img);
bitmapData2.unlock();

var bitmap = new LBitmap(bitmapData);
addChild(bitmap);

var bitmap2 = new LBitmap(bitmapData2);
bitmap2.y = 250;
addChild(bitmap2);

setProperties

(
  • x
  • y
  • width
  • height
)
public

Defined in display/LBitmapData.js:182

Available since 1.0.0

用来改变LBitmapData内Image的可视范围

Parameters:

  • x Float

    Image可视范围x坐标。

  • y Float

    Image可视范围y坐标。

  • width Float

    Image可视范围宽。

  • height Float

    Image可视范围高。

Example:

var bitmapdata1 = new LBitmapData(event.target, 0, 0, 200, 200);
var bitmap1 = new LBitmap(bitmapdata1);
addChild(bitmap1);

var bitmapdata2 = new LBitmapData(event.target);
bitmapdata2.setProperties(50, 100, 200, 50);
var bitmap2 = new LBitmap(bitmapdata2);
bitmap2.x = 240;
addChild(bitmap2);

unlock

() public

Defined in display/LBitmapData.js:555

Available since 1.5.1

拷贝像素等操作结束后,解除对操作对象的锁定。

Properties

dataType

String public

Defined in display/LBitmapData.js:77

Available since 1.8.8

数据格式,LBitmapData.DATA_IMAGE(Image对象)或者LBitmapData.DATA_CANVAS(Canvas对象)

height

Float public

Defined in display/LBitmapData.js:69

Available since 1.0.0

位图图像的高度,以像素为单位。

LBitmapData.DATA_CANVAS

String public static

Defined in display/LBitmapData.js:125

Available since 1.8.8

LBitmapData数据保存形式的一种,以Canvas对象形式保存。

LBitmapData.DATA_IMAGE

String public static

Defined in display/LBitmapData.js:116

Available since 1.8.8

LBitmapData数据保存形式的一种,以Image对象形式保存。

objectIndex

Int public

Inherited from LObject: utils/LObject.js:11

Available since 1.6.0

对象的ID

width

Float public

Defined in display/LBitmapData.js:61

Available since 1.0.0

位图图像的宽度,以像素为单位。

x

Float public

Defined in display/LBitmapData.js:45

Available since 1.0.0

位图图像的位置x,以像素为单位。

y

Float public

Defined in display/LBitmapData.js:53

Available since 1.0.0

位图图像的位置y,以像素为单位。