getPixel(x:int, y:int):uint
傳回整數,代表 BitmapData 物件中特定點 (x, y) 的 RGB 像素值。
toString(radix:uint):String
傳回 int 物件的字串形式。
radix:uint — 會指定用於數字到字串轉換的底數 (從 2 到 36)。 如果您並未指定 radix 參數,預設值會是 10。
(例一)
深藍色為主場景背景色。
左上角 300x200 大小的 0xaabbff 色塊為 BitmapData 物件所定義:
var bmData:BitmapData = new BitmapData(300, 200, true, 0xffaabbff);
( 並透過Bitmap類別顯示在主場景(50,50)位置,即 bm.x = 50; bm.y = 50; )
以 var pixelValue:uint = bmData.getPixel(0, 0); 擷取 bmData 上座標(0,0)位置的RGB畫素值,
並指定給pixelValue。這個座標(0,0)是屬於bmData的local座標,而非主場景座標。
此時pixelValue為10進位整數。因此以 pixelValue.toString(16) 轉換與傳回 16 進位數值的字串形式。
300x200 大小的bmData物件,其座標範圍在 (0, 0) ~ (299, 199)
當使用getPixel()方法指定擷取點時,不能超過此範圍,否則會傳回 0 值 。
import flash.display.BitmapData; // var bmData:BitmapData = new BitmapData(300, 200, true, 0xffaabbff); // var pixelValue:uint = bmData.getPixel(0, 0); trace(pixelValue.toString(16)); tf.text = pixelValue.toString(16); // var bm:Bitmap = new Bitmap(bmData); bm.x = 50; bm.y = 50; addChild(bm);
(例二)
將元件庫中的點陣圖設定為內嵌資源類別,類別名稱為 MyPhoto,基底類別為 BitmapData。
再以 new 運算子建構 MyPhoto 實體,並指定給名為 bmData 的 BitmapData型態變數。
var bmData:BitmapData = new MyPhoto(0, 0);
此處 new MyPhoto(0, 0)的(0, 0)本應指定點陣圖類別實體的寬與高,但其實不會有作用,
bmData物件所載入的點陣圖寬高,將遵循元件庫中的圖檔寬高。
以 var pixelValue:uint = bmData.getPixel(599, 425); 擷取 bmData 上座標(599, 425)位置的RGB畫素值。
import flash.display.BitmapData; // var bmData:BitmapData = new MyPhoto(0, 0); // var pixelValue:uint = bmData.getPixel(599, 425); trace(pixelValue.toString(16)); tf.text = pixelValue.toString(16); // var bm:Bitmap = new Bitmap(bmData); //bm.width = 550; //bm.height = 400; bm.x = 0; bm.y = 0; addChild(bm); addChild(tf); addChild(comment);
沒有留言:
張貼留言