Отражение растрового изображения по горизонтали - PullRequest
3 голосов
/ 15 октября 2011

Мне нужно перевернуть Bitmap по горизонтали. Я попытался установить для его свойства scaleX значение -1.0, и это изменило Bitmap таким образом, что я вижу только небольшую его часть (перевернутую) с левой стороны вместо всей перевернутой Bitmap , Свойство x осталось 0. Я попробовал то же самое, используя матрицу преобразования, с теми же результатами.

Что я делаю не так?

1 Ответ

12 голосов
/ 15 октября 2011

Я разместил простую функцию, чтобы перевернуть объект растровых данных. 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».

...