0

背景画像と小さい画像があります。次のように copypixels を使用して、小さい画像を大きい画像にコピーします。

   destBitMap.copyPixels(img, new Rectangle(0, 0, img.width, img.height), 
   location);

コピーする前に画像を回転させたいと思います。それを行う最良の方法は何ですか?Matrix と bitmapData.draw() を使用してみましたが、受け入れられません。ピクセル化されたエッジがあります。

このピクセルベンダーフィルターを見つけました:http://life.neophi.com/danielr/2009/07/image_rotation_with_pixel_bend.html 画像を回転させるため。プラス面では、それは本当に速いです。私は pixelbender を使用したことがないので、そのフィルターを取得してビットマップ画像に適用し、回転した画像を背景画像にコピーできるかどうかに興味があります。

これは私が試したものです(うまくいきません):

    shader = new Shader(new RotateFilter() as ByteArray);
    shader.data.origin.value = [resizedImage.width / 2, resizedImage.width / 2];
    shader.data.rotation.value = [rotation];
    filter = new ShaderFilter(shader);

    var bm:BitmapImage = new BitmapImage();
    bm.source = resizedImage;
    bm.filters = [filter];

次は何ですか?これはまったく可能ですか?

4

1 に答える 1

1

単一のフィルターをビットマップに適用する場合は、BitmapData.applyFilter() メソッドを使用します。明らかに、結果のビットマップで何でもできます。ただし、これらすべてを UIComponent が許可するレベルよりも低いレベルで適用する必要があります。resizedImage が Bitmap タイプの場合は、次のようにします。

resizedImage.bitmapData.applyFilter(resizedImage.bitmapData,resizedImage.bitmapData.rect,new Point(),filter);

この後、 resizedImage.bitmapData には回転したビットマップが含まれます。

于 2012-09-20T05:19:06.017 に答える