2010-11-18 101 views
2

當我使用下面的代碼在UIView上繪製UIImage* image時,圖像水平鏡像。這就像如果我畫4,它是借鑑這樣alt text ..使用CGContext時的圖像繪製問題。圖像水平鏡像

CGRect rect = CGRectMake(x, y, imageWidth, imageHeight); 
CGContextDrawImage((CGContextRef) g, rect, ((UIImage*)image).CGImage); 

這就是問題???我做錯了?或者如果有人知道如何解決它,請讓我也知道。我非常感激,提前。

感謝loooooooooot。

+0

它是垂直鏡像,而不是水平方向 – 2010-11-18 22:58:57

回答

5

參見:CGContextDrawImage draws image upside down when passed UIImage.CGImage

使用[image drawInRect:rect]代替CGContextDrawImage

+0

'[image drawInRect:rect]'只在上下文是當前圖形上下文時才起作用 - 如果不是,則需要使用畢竟核心圖形方法。 – 2010-11-18 22:59:34

+0

確實夠不錯,但是對於UIViews上的東西,這幾乎是你所需要的。當然,我更喜歡使用UIImageViews。 – 2010-11-18 23:06:46

+0

我建議使用這個問題後面的答案中描述的轉換。 – tia 2010-11-18 23:07:16

2

你可以把圖片周圍使用

CGAffineTransform transform =CGAffineTransformMakeTranslation(0.0, height); 
transform = CGAffineTransformScale(transform, 1.0, -1.0); 
CGContextConcatCTM(context, transform); 

//draw image in the context 
CGContextDrawImage(context, rect, ((UIImage*)image).CGImage); 

使用正確的方式[圖像drawInRect:RECT]使用默認的情況下,即在屏幕上,你不能給它當前的情況下,例如如果你想把它作爲一個按鈕的圖像的一部分