¿Cómo obtener un UIImage correctamente rotado de una representación ALAsset?
Estoy tratando de obtener una rotación correctaUIImage
desde unALAssetRepresentation
utilizando lafullScreenImage
método. Tengo varias fotos de prueba tomadas en varias orientaciones de dispositivos; Las fotos se muestran correctamente en la aplicación Fotos. La documentación parafullScreenImage
dice:
En iOS 5 y versiones posteriores, este método devuelve una imagen totalmente recortada, girada y ajustada, exactamente como lo vería un usuario en Fotos o en el selector de imágenes.
Para crear un rotado correctamente.UIImage
objeto de laCGImage
, tu usasimageWithCGImage:scale:orientation:
oinitWithCGImage:scale:orientation:
, pasando los valores deorientation
yscale
.
Dada la documentación, mi código se ve así:
ALAssetRepresentation *rep = [asset defaultRepresentation];
UIImage *img = [UIImage
imageWithCGImage:[rep fullScreenImage]
scale:[rep scale]
orientation:[rep orientation]];
Pero el resultadoUIImage
La rotación es incorrecta. Cuando reemplace[rep orientation]
conUIImageOrientationUp
, la imagen está bien para todas las fotos de prueba. Obviamente estoy dudando en seguir con esta "solución", ya que se siente como un hack. ¿Qué estoy haciendo mal?