我需要水平翻转Bitmap
。我尝试将其scaleX
属性设置为-1.0
,并修改了Bitmap
,使得我只能在左侧看到它的一小部分(翻转),而不是整个翻转Bitmap
。其x
属性仍为0
。我使用转换矩阵尝试了同样的事情,结果相同。
我做错了什么?
答案 0 :(得分:12)
我发布了一个简单的函数来翻转bitmapdata对象。 http://plasticsturgeon.com/2010/09/flipping-a-bitmapdata-image/
以下是相关代码。
function flipBitmapData(original:BitmapData, axis:String = "x"):BitmapData
{
var flipped:BitmapData = new BitmapData(original.width, original.height, true, 0);
var matrix:Matrix
if(axis == "x"){
matrix = new Matrix( -1, 0, 0, 1, original.width, 0);
} else {
matrix = new Matrix( 1, 0, 0, -1, 0, original.height);
}
flipped.draw(original, matrix, null, null, null, true);
return flipped;
}
如果要在位图中翻转图像,可以像这样翻转其bitmapdata属性:
myBitmap.bitmapData = flipBitmapData(myBitmap.bitmapData, "x");
您可以使用“y”切换到垂直翻转。