回転行列で ImageSnapshot.captureBitmapData 関数を使用する例はありますか? これは私が使用しているコードです:
var matrix:Matrix = new Matrix();
matrix.rotate(degreesToRadians(90));
var bitmapData:BitmapData = ImageSnapshot.captureBitmapData(textInput, matrix);
残念ながら、これは ImageSnapshot.as の次の行でエラーをスローします。
data = new BitmapData(scaledWidth, scaledHeight, true, 0x00000000); // <-- THROWS ERROR HERE AS scaledWidth / scaledHeight are extremely small numbers (-1-e16 etc)
data.draw(source, matrix, colorTransform,
blendMode, clipRect, smoothing);
}
finally
{
if (source is IUIComponent)
finishPrintObject(IUIComponent(source), normalState); // <-- ERROR THROWN HERE, BUT CAUSE OF ERROR IS ABOVE
}
私が達成しようとしているのは、テキスト入力コントロールの回転したビットマップです (アプリケーションにフォントを埋め込まないようにしています)。このコードは、ビットマップを回転させないときは問題なく動作しますが、回転させた瞬間に壊れます。
回答後編集
私は元の問題でローダークラスを使用していましたが、テキスト 270degrees も必要でした-それを行うテキストは次のとおりです。
var matrix:Matrix = new Matrix();
matrix.rotate(Math.PI * 1.5);
matrix.translate(0, copyThis.width);
var bitmapData:BitmapData = ImageSnapshot.captureBitmapData(copyThis, new Matrix());
var rotatedBitmap : BitmapData = new BitmapData(bitmapData.height, bitmapData.width, false, 0xFFFF0000);
rotatedBitmap.draw(bitmapData, matrix);
loader.load(new Bitmap(rotatedBitmap));
ありがとうございました!