Вкратце, приложение предназначено для следующих действий:
- Пользователь будет выбирать из фотографий на iPhone (через ALAssets).С этой частью все в порядке.
- Выбранная фотография появится на другом виде в пределах меньшего прямоугольного подпредставления.
- При использовании миниатюры ALAsset изображение корректно отображается в подпредставлении.Однако разрешение плохое, поэтому я пытаюсь использовать изображение с более высоким разрешением.
- При использовании изображения с полным разрешением и последующем размещении его на снимке любая портретная фотография будет повернута на 90 градусов в противоположную сторону.по часовой стрелке.
По кодам это выглядит так:
//ImageView is the UIImageView subview that will hold the selected photo image.
//This code works ok, but I'd rather have a higher resolution photo.
[imageView setClipsToBounds:YES];
[imageView setContentMode:UIViewContentModeScaleAspectFill];
[imageView setImage:[UIImage imageWithCGImage:[selectedPhoto thumbnail]];
Теперь это код, в котором я пытаюсь использовать изображение с более высоким разрешением, но затем изображениев пределах imageView поворачивается на -90 градусов:
[imageView setClipsToBounds:YES];
[imageView setContentMode:UIViewContentModeScaleAspectFill];
//HIGH RESOLUTION IMAGE
ALAssetRepresentation *rep = [selectedPhoto defaultRepresentation];
CGImageRef iref = [rep fullResolutionImage];
if (iref)
{
UIImage *largeImage = [Utilities imageWithImage:[UIImage imageWithCGImage:iref] scaledToSize:CGSizeMake(CGImageGetWidth(iref)/4, CGImageGetHeight(iref)/4)];
[imageView setImage:largeImage];
}
И вызываемая там функция imageWithImage: выглядит следующим образом:
+ (UIImage *)imageWithImage:(UIImage *)image scaledToSize:(CGSize)newSize {
UIGraphicsBeginImageContext(newSize);
[image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
}
Как уже упоминалось, фотографии, сделанные в альбомной ориентации камерой iPhone, приходятхорошоОднако фотографии, снятые в портретной ориентации камеры, получаются повернутыми на -90 градусов.
Как сделать так, чтобы каждая фотография, сделанная в портретной или альбомной ориентации, была правильно ориентирована на моем ImageView?
Любая помощь будет оценена!Спасибо!