2012-11-15 36 views
0

我想分析如何在ActionScript內部縮放工作。在ActionScript中縮放後位圖圖像的像素值?

我創建了一個小場景:

  1. 創造了一個2×2的JPG圖片和柔性引進。圖像現在有4個像素
  2. 創建了一個位圖並使用getPixel(x,y)並打印出值。

    Values of bitmap 2 X 2 
    ╔══════════╦══════════╗ 
    ║ 16777215 ║ 16777215 ║ 
    ╠══════════╬══════════╣ 
    ║ 16777215 ║ 16777215 ║ 
    ╚══════════╩══════════╝ 
    
  3. 現在我縮放位圖scaleX = 2並打印出像素值。位圖的

    for (var x:int =0; x < original.width; x = x+1) 
    { 
        for (var y:int = 0; y < original.height; y = y+1) 
        { 
         tempUnit = original.bitmapData.getPixel(x,y); 
         outputString1 = outputString1 + tempUnit.toString() + '\t'; 
        } 
        outputString1 = outputString1 + '\r\n'; 
    } 
    

    值縮放之後

    Values of bitmap 
    ╔══════════╦══════════╗ 
    ║ 16777215 ║ 16777215 ║ 
    ║ 16777215 ║ 16777215 ║ 
    ╠══════════╬══════════╣ 
    ║  0 ║  0 ║ 
    ║  0 ║  0 ║ 
    ╚══════════╩══════════╝ 
    

什麼值確實在位置(2,0)3,1像素,(2,1),(3,0),( )拿?它不會取現有像素的平均值嗎?

我只用這4個像素來分析。我得出結論,他的X和Y軸單位正在關於顯示對象進行縮放之後進行更改。

我是新來的ActionScript和圖像處理。請指向正確的方向。

回答

3

當您縮放位圖時,BitmapDatas不會縮放。將Bitmap看作BitmapData的可縮放包裝器。所以,對於BitmapData,你不應該嘗試讓像素超出邊界。

+0

所以我需要手動更改bitmapData中的像素值?我期望完成像素複製或相鄰像素的平均雙線性插值。 我想我會手工寫功能來完成它們,閃光燈不會做下面的這些。 –

+0

不完全是,您可以執行一個'BitmapData.draw()'來獲得雙線性插值。您必須提供一個轉換矩陣來將某個對象繪製到BitmapData上。在那裏有一些實現這樣一個目標的功能。 – Vesper