API Docs for: 最后更新日期:2014年8月25日
Google搜索   
Show:

LBitmapData Class

Extends LObject

Available since 1.0.0

指定された幅と高さで BitmapData オブジェクトを作成します。 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.currentTarget);  
    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

callParent

(
  • functionName
  • arguments
)
public

Inherited from LObject: main/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
}

clone

() LBitmapData public

Defined in display/LBitmapData.js:216

Available since 1.8.2

新しい BitmapData オブジェクトとして、元のインスタンスのクローンを返します。含まれるビットマップはまったく同じコピーになります。

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:615

Available since 1.9.4

source このメソッドは、ソースイメージの矩形領域を、ターゲット LBitmapData オブジェクトのターゲットポイントにある同じサイズの矩形領域にコピーします。

利用条件:LBitmapDataのデーターの保存形式はCanvas オブジェクトである。

Parameters:

  • rect LRectangle

    LColorTransform オブジェクトが適用されるイメージの領域を定義する LRectangle オブジェクトです。

  • 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:657

Available since 1.9.4

source このメソッドは、ソースイメージの矩形領域を、ターゲット LBitmapData オブジェクトのターゲットポイントにある同じサイズの矩形領域にコピーします。

利用条件:LBitmapDataのデーターの保存形式は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:528

Available since 1.7.7

source 表示オブジェクトをビットマップイメージ上に描画します。

Parameters:

  • [source] LDisplayObject | LBitmapData optional

    LBitmapData オブジェクトに描画される表示オブジェクトまたは LBitmapData オブジェクトです。

  • matrix LMatrix

    ビットマップの座標を拡大 / 縮小、回転、または平行移動するために使われる LMatrix オブジェクトです。マトリックス変換をイメージに適用したくない場合は、(デフォルト new LMatrix() コンストラクターを使って作成される)単位マトリックスにこのパラメーターを設定するか、null 値を渡してください。

  • colorTransform LColorTransform

    ビットマップのカラー値を調整するために使用する ColorTransform オブジェクトです。オブジェクトが提供されない場合、ビットマップイメージのカラーは変換されません。このパラメーターを渡す必要があるが、イメージを変換したくない場合、このパラメーターを、デフォルトの new ColorTransform() コンストラクターを使って作成される ColorTransform オブジェクトに設定します。

    実際のサンプルを見る

  • blendMode String

    結果として生成されるビットマップに適用されるブレンドモードを指定する、flash.display.BlendMode クラスのストリング値です。

    実際のサンプルを見る

  • clipRect 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:249

Available since 1.5.1

LBitmapData オブジェクトの特定ポイント (x, y) の RGB ピクセル値を表す整数を返します。

Parameters:

  • x Int

    ピクセルの x 座標です。

  • y Int

    ピクセルの y 座標です。

  • colorType String

    取得するカラータイプを指定する。[number|array](省略可)。

Returns:

Array:

RGB ピクセル値を表す数値。

Example:

var bitmapData = new LBitmapData(event.currentTarget);
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:371

Available since 1.5.1

ピクセルデータの矩形領域からバイト配列を生成します。

Parameters:

  • rect LRectangle

    現在の BitmapData オブジェクト内の矩形領域です。

Returns:

Array:

特定の矩形内のピクセルを表す配列です

Example:

var bitmapData = new LBitmapData(event.currentTarget);
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:506

Available since 1.5.1

ピクセルデータを操作する時、もう一つの非表示canvasを使っています、この関数使うと、LBitmapDataをロックして、一回しか描けないですから、効率が高くすることができます。

putPixels

(
  • rect
  • data
)
public

Defined in display/LBitmapData.js:472

Available since 1.9.1

LBitmapData オブジェクトの指定する矩形領域のピクセルを設定します。使う条件は下記となります:

1,LBitmapDataのデーターの保存形式はCanvas オブジェクトである。

2,フレームごと一回か数回だけ使う,そしてsetPixel,setPixels,getPixel,getPixelsなどと同時に使わない。

上記の二つの条件を満足したら、setPixelsの代わりにputPixelsを使って、速く処理することができます,そしてlockとunlockは要りません。

Parameters:

  • rect LRectangle

    LBitmapData オブジェクトの矩形領域を指定します。

  • data Array

    矩形領域で使用されるピクセル値です。(ImageData オブジェクト)

Example:

var bitmapData = new LBitmapData(event.currentTarget);
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:191

Available since 1.0.0

LBitmapData内のImageの表示範囲の座標を変更する

Parameters:

  • x Float

    Imageの表示範囲の座標x.

  • y Float

    Imageの表示範囲の座標y.

Example:

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

var bitmapdata2 = new LBitmapData(event.currentTarget, 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:306

Available since 1.5.1

LBitmapData オブジェクトの特定ポイント (x, y) の RGB ピクセル値を表す整数を返します。

Parameters:

  • x Int

    値が変更されるピクセルの x 座標です。

  • y Int

    値が変更されるピクセルの y 座標です。

  • data Array

    結果として生成される、ピクセルの RGB カラーデータです。

Returns:

Array:

RGB ピクセル値を表す数値。

Example:

var bitmapData = new LBitmapData(event.currentTarget);
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:408

Available since 1.5.1

LBitmapData オブジェクトの指定する矩形領域のピクセルを設定します。

Parameters:

  • rect LRectangle

    LBitmapData オブジェクトの矩形領域を指定します。

  • data Array

    矩形領域で使用されるピクセル値です。(ImageDataオブジェクト | String"#000000" | Number0x000000)

Example:

var bitmapData = new LBitmapData(event.currentTarget);
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:162

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.currentTarget, 0, 0, 200, 200);
var bitmap1 = new LBitmap(bitmapdata1);
addChild(bitmap1);

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

unlock

() public

Defined in display/LBitmapData.js:517

Available since 1.5.1

ピクセルデータの操作が終わったら、LBitmapDataのロックを解除します。

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: main/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(ピクセル単位)です。