2010-11-18 26 views
2

Lorsque je dessine UIImage* image sur UIView en utilisant le code ci-dessous, l'image est mise en miroir horizontalement. Il est comme ça si je dessine 4, il dessine comme ça alt text ..Problème de dessin d'image lors de l'utilisation de CGContext. L'image est mise en miroir horizontalement

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

C'est le problème ??? Je fais mal ??? ou si quelqu'un sait comment y remédier, s'il vous plaît laissez-moi savoir aussi. J'apprécie beaucoup cela d'avance.

Merci un loooooooooot.

+0

Il est en miroir verticalement, pas horizontalement –

Répondre

5

Voir: CGContextDrawImage draws image upside down when passed UIImage.CGImage

Utilisation [image drawInRect:rect] au lieu de CGContextDrawImage.

+0

'[image drawInRect: rect]' ne fonctionnera que si le contexte est le contexte graphique actuel - si ce n'est pas, vous devez utiliser les méthodes Core Graphics après tout. –

+0

Assez vrai, mais pour faire des choses sur UIViews, c'est à peu près tout ce dont vous avez besoin. Bien sûr, je préfère simplement utiliser UIImageViews. –

+0

Je suggère d'utiliser la transformation comme décrit dans la dernière réponse dans cette question. – tia

2

vous pouvez transformer l'image de la bonne façon en utilisant autour

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); 

l'aide de [drawInRect: rect] utilise le contexte par défaut à savoir l'écran, vous ne pouvez pas donner votre contexte actuel, par exemple Si vous voulez le mettre dans le cadre d'un bouton