2013-03-12 4 views
0

잠시 동안 mono를 사용해 왔고 내가 겪었던 문제 중 하나는 이미지를 CGImage 객체에로드하면 이미지가 수직으로 뒤집어지게된다는 것입니다. 이것은 내가 원래 사용하던 코드이었다Monotouch - 이미지 회전을 뒤집어서 수정하기

public static CGImage LoadJPEG (string sImagePath, bool bSmoothImage) 
{ 
    return CGImage.FromJPEG (
     new CGDataProvider (sImagePath), null, bSmoothImage, 
     CGColorRenderingIntent.Default); 
} 

당신은 단순히 대신 CGImage.FromPNG를 사용하여 위치를 잘못된 파일 형식으로 잘못된 형식을 사용하는 경우,하지만 당신은 예외를 얻을 것이라는 점에 PNG 버전이있다 . 필자는 항상 내 파일 유형을 알고 있으므로 예외를 방지하기 위해 캐치/검사를하지 않았습니다.

이 코드를 사용하면 수직으로 이미지를 뒤집을 수 있습니다. 왜 모노가 이것을 수행하는지 설명 할 수 없으며 해결 방법을 찾고 있지 않은 해결책을 보았습니다.

어떻게 뒤집을 수 있습니까? 다행히도 나는 그 자신에게 대답 할 수있다. 그러나 나는 그것을 "올바른"방법으로 보증 할 수 없다!

답변

0

이미지가 거꾸로 표시되는 간단한 해결책이라는 것을 명심하십시오. 나는이 코드가 일을 끝내는 동안 얻을 수있는만큼 간단하다고 생각한다. 그래서 나는이 당신 도움이되기를 바랍니다 D : this question과 생각의 코드로 주위를 재생하는 동안

public static CGImage RotateImage (CGImage oImage) 
{ 
    CGContext oContext; 
    UIImage oRotatedImage; 
    RectangleF oImageBounds; 
    // 
    oImageBounds = new RectangleF (0, 0, oImage.Width, oImage.Height); 
    // 
    UIGraphics.BeginImageContext (oImageBounds.Size); 
    oContext = UIGraphics.GetCurrentContext(); 
    // 
    oContext.DrawImage (oImageBounds, oImage); 
    oRotatedImage = UIGraphics.GetImageFromCurrentImageContext(); 
    UIGraphics.EndImageContext(); 
    // 
    return oRotatedImage.CGImage; 
} 

나는 작동하고 나는 그것이 다른 작업을 수행 할 필요가 없습니다 어이 그,이 솔루션 우연히!

또한 누군가가이 모든 이유를 설명 할 수 있다면 제발, 실제로 무슨 일이 일어나는지 알고 싶습니다. 2D 그래픽 작업에 대한 이전 경험은 XNA 프레임 워크를 사용하는 것입니다.

+0

편집 맥스에 감사드립니다. C# 하이라이트 방법을 살펴 보았습니다. :) –