2011-10-14 8 views
3

가로로 Bitmap을 뒤집어야합니다. 나는 그 scaleX 속성을 -1.0으로 설정하고, 그 대신에 전체가 뒤집힌 것 대신에 왼쪽에 약간의 부분 만 볼 수있는 그런 방법으로 Bitmap을 수정했다. Bitmap. 그 x 속성은 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"를 사용하여 수직 플립로 전환 할 수 있습니다.

+0

가능하면'BitmapData' 대신'Bitmap'을 뒤집겠습니까? – rid

+0

그 이점은 무엇입니까? 플립 된 비트 맵은 천천히 렌더링되고, 변환 연산은 되돌려지고이 방법을 사용하면 플립이 완전히 되돌릴 수 있습니다. 귀하의 경우에 플립 된 비트 맵에 이점이 있습니까? –

+0

오 - 비트 맵 뒤집기가 이미지를 왼쪽으로 이동시키는 이유는 모든 비트 맵의 ​​등록 포인트가 왼쪽 상단에 있기 때문입니다. 비트 맵 데이터를 뒤집 으면 등록 포인트가 여전히 왼쪽 상단에 있습니다. –