Como obter um UIImage corretamente girado de um ALAssetRepresentation?
Estou tentando fazer uma rotação corretaUIImage
de umALAssetRepresentation
usando ofullScreenImage
método. Tenho várias fotos de teste gravadas em várias orientações de dispositivos; as fotos aparecem corretamente no aplicativo Fotos. A documentação parafullScreenImage
diz:
No iOS 5 e posterior, esse método retorna uma imagem totalmente recortada, girada e ajustada, exatamente como um usuário veria no Photos ou no seletor de imagens.
Para criar uma rotação corretaUIImage
objeto doCGImage
, você usaimageWithCGImage:scale:orientation:
ouinitWithCGImage:scale:orientation:
, passando os valores deorientation
escale
.
Dada a documentação, meu código é assim:
ALAssetRepresentation *rep = [asset defaultRepresentation];
UIImage *img = [UIImage
imageWithCGImage:[rep fullScreenImage]
scale:[rep scale]
orientation:[rep orientation]];
Mas o resultadoUIImage
Rotação está errada. Quando eu substituir[rep orientation]
comUIImageOrientationUp
, a imagem é boa para todas as fotos de teste. Obviamente, eu estou hesitando em ficar com esta "solução", como se sente como um hack. O que estou fazendo de errado?