LBitmapData Class
指定された幅と高さで BitmapData オブジェクトを作成します。 LBitmapData クラスを使用すると、LBitmap オブジェクトのデータ (ピクセル) を処理できます。LBitmapData クラスのメソッドを使用して、任意のサイズのImageを作成し、実行時に様々な方法で操作できます。LLoaderを使ってロードしたImageも利用することができます。
Constructor
LBitmapData
-
image
-
x
-
y
-
width
-
height
-
dataType
Parameters:
-
image
ImageImage型オブジェクト。
-
x
FloatImageの表示範囲の座標x.(省略可).
-
y
FloatImageの表示範囲の座標y.(省略可).
-
width
FloatImageの表示範囲の幅。(省略可).
-
height
FloatImageの表示範囲の高さ。(省略可).
-
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);
}
Item Index
Methods
Properties
- dataType
- height
- LBitmapData.DATA_CANVAS static
- LBitmapData.DATA_IMAGE static
- objectIndex
- width
- x
- y
Methods
callParent
-
functionName
-
arguments
親クラスの関数を呼び出す。
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
新しい BitmapData オブジェクトとして、元のインスタンスのクローンを返します。含まれるビットマップはまったく同じコピーになります。
Returns:
元のオブジェクトと同一の新しい 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
source このメソッドは、ソースイメージの矩形領域を、ターゲット LBitmapData オブジェクトのターゲットポイントにある同じサイズの矩形領域にコピーします。
利用条件:LBitmapDataのデーターの保存形式はCanvas オブジェクトである。
Parameters:
-
rect
LRectangleLColorTransform オブジェクトが適用されるイメージの領域を定義する 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
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
source 表示オブジェクトをビットマップイメージ上に描画します。
Parameters:
-
[source]
LDisplayObject | LBitmapData optionalLBitmapData オブジェクトに描画される表示オブジェクトまたは 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
LBitmapData オブジェクトの特定ポイント (x, y) の RGB ピクセル値を表す整数を返します。
Parameters:
-
x
Intピクセルの x 座標です。
-
y
Intピクセルの y 座標です。
-
colorType
String取得するカラータイプを指定する。[number|array](省略可)。
Returns:
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
ピクセルデータの矩形領域からバイト配列を生成します。
Parameters:
-
rect
LRectangle現在の BitmapData オブジェクト内の矩形領域です。
Returns:
特定の矩形内のピクセルを表す配列です
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
ピクセルデータを操作する時、もう一つの非表示canvasを使っています、この関数使うと、LBitmapDataをロックして、一回しか描けないですから、効率が高くすることができます。
putPixels
-
rect
-
data
LBitmapData オブジェクトの指定する矩形領域のピクセルを設定します。使う条件は下記となります:
1,LBitmapDataのデーターの保存形式はCanvas オブジェクトである。
2,フレームごと一回か数回だけ使う,そしてsetPixel,setPixels,getPixel,getPixelsなどと同時に使わない。
上記の二つの条件を満足したら、setPixelsの代わりにputPixelsを使って、速く処理することができます,そしてlockとunlockは要りません。
Parameters:
-
rect
LRectangleLBitmapData オブジェクトの矩形領域を指定します。
-
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
LBitmapData内のImageの表示範囲の座標を変更する
Parameters:
-
x
FloatImageの表示範囲の座標x.
-
y
FloatImageの表示範囲の座標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
LBitmapData オブジェクトの特定ポイント (x, y) の RGB ピクセル値を表す整数を返します。
Parameters:
-
x
Int値が変更されるピクセルの x 座標です。
-
y
Int値が変更されるピクセルの y 座標です。
-
data
Array結果として生成される、ピクセルの RGB カラーデータです。
Returns:
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
LBitmapData オブジェクトの指定する矩形領域のピクセルを設定します。
Parameters:
-
rect
LRectangleLBitmapData オブジェクトの矩形領域を指定します。
-
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
LBitmapData内のImageの表示範囲を変更する
Parameters:
-
x
FloatImageの表示範囲の座標x.
-
y
FloatImageの表示範囲の座標y.
-
width
FloatImageの表示範囲の幅。
-
height
FloatImageの表示範囲の高さ。
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
ピクセルデータの操作が終わったら、LBitmapDataのロックを解除します。
Properties
dataType
String
public
データータイプ,値はLBitmapData.DATA_IMAGE(Imageオブジェクト)またはLBitmapData.DATA_CANVAS(Canvasオブジェクト)です。
height
Float
public
ビットマップイメージの高さ(ピクセル単位)です。
LBitmapData.DATA_CANVAS
String
public
static
LBitmapDataのデーターの保存形式です,Canvas オブジェクト。
LBitmapData.DATA_IMAGE
String
public
static
LBitmapDataのデーターの保存形式です,Image オブジェクト。
objectIndex
Int
public
オブジェクトのID
width
Float
public
ビットマップイメージの幅(ピクセル単位)です。
x
Float
public
ビットマップイメージの位置x(ピクセル単位)です。
y
Float
public
ビットマップイメージの位置y(ピクセル単位)です。