2012-05-23 9 views

答えて

10

を参照してくださいビットマップオブジェクトとdirectyスケールを使用しない場合。 ここでは、BitmapDataの簡単な例を示します。

package { 
import flash.display.Bitmap; 
import flash.display.BitmapData; 
import flash.display.Sprite; 
import flash.geom.Matrix; 

import mx.core.BitmapAsset; 

public class Test extends Sprite { 


    [Embed(source="test.jpg")] 
    private var Image:Class; 

    public function Test() { 

     var originalBitmapData:BitmapData = BitmapAsset(new Image()).bitmapData; 

     function scaleBitmapData(bitmapData:BitmapData, scale:Number):BitmapData { 
      scale = Math.abs(scale); 
      var width:int = (bitmapData.width * scale) || 1; 
      var height:int = (bitmapData.height * scale) || 1; 
      var transparent:Boolean = bitmapData.transparent; 
      var result:BitmapData = new BitmapData(width, height, transparent); 
      var matrix:Matrix = new Matrix(); 
      matrix.scale(scale, scale); 
      result.draw(bitmapData, matrix); 
      return result; 
     } 

     var bitmapA:Bitmap = new Bitmap(originalBitmapData); 
     addChild(bitmapA); 

     var bitmapB:Bitmap = new Bitmap(scaleBitmapData(originalBitmapData, 0.5)); 
     addChild(bitmapB); 

    } 
} 
} 
2

ビットマップオブジェクトの幅と高さを設定すると、そのイメージのスケーリングが行われるため、bitmapDataでビットマップを作成してからwidth/heightを使用してスケーリングするか、スケーリング値を使用する場合はscaleX/Yを使用します。

var bmp:Bitmap = new Bitmap(bmpData); 
bmp.width = 400; // or 600,800 etc. 
bmp.height = 400; 

あなたがBitmapDataあなたは直接BitmapDataを拡張することはできませんが、あなたはそれのスケールのクローンを作ることができ、この What is the best way to resize a BitmapData object?