/ / Girar imagem em quartzo? A imagem está de cabeça para baixo! (iPhone) - iphone, objectiva-c, imagem, rotação, gráficos de quartzo

Rodar imagem em quartzo? A imagem está de cabeça para baixo! (iPhone) - iphone, objectiva-c, imagem, rotação, gráficos de quartzo

  • Eu não quero transformar o contexto INTEIRO.

Eu estou fazendo um jogo com o Quartz, e estou desenhando meu player com linhas, retas e elipses.

E então eu tenho diamong.png que eu processei em 0,0 no canto superior esquerdo da tela.

Problema é ...

Ele fica de cabeça para baixo!

Como eu giraria 180 graus?

Aqui está um pouco do meu código:

CGImageRef diamondImage = CGImageRetain([UIImage imageWithContentsOfFile: [[NSBundle mainBundle] pathForResource:@"Diamond.png" ofType:nil]].CGImage);
CGContextDrawImage(context, CGRectMake(0, 0, 32, 24), diamondImage);

Se for de alguma ajuda, estou usando o modo Paisagem, com o botão home à direita. Ele é definido tanto no meu .plist como no meu ViewController.

-shouldAutorotateToInterfaceOrientation: interfaceOrientation:

Como eu giraria / transformaria?

Respostas:

5 para resposta № 1

Por que não usar

[[UIImage imageWithContentsOfFile:…] drawInRect:CGRectMake(0, 0, 32, 24)];

? Isto toma cuidado da coordenada transforma para você.


E se CGContextDrawImage deve ser usado, transformando todo o contexto é o único caminho. Você pode restaurar para o estado original usando:

CGContextSaveGState(context);
// transform ...
// draw ...
CGContextRestoreGState(context);