有没有人有使用带有旋转矩阵的 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
}
我想要实现的是文本输入控件的旋转位图(我试图避免在应用程序中嵌入字体)。当我不旋转位图时,这段代码工作得很好,但我旋转它的那一刻,它就坏了。
接受后的答案编辑
我在原始问题中使用加载器类,并且我还想要文本 270 度 - 所以这是执行此操作的文本:
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));
谢谢!