Как предотвратить изменение размера/масштабирования изображений, сохраненных в библиотеке фотографий, на весь экран?

Вот в чем дело, я попытался использовать оба метода, показанные ниже, чтобы сохранить изображение в библиотеке фотографий. После успешного сохранения изображения и запуска приложения «Фотографии», чтобы взглянуть на изображение, приложение автоматически масштабирует / изменяет размер изображения на весь экран.

Есть ли способ предотвратить это? Это раздражает, потому что, чтобы увидеть изображение целиком, пользователю нужно сжать изображение, чтобы показать его целиком. Я заметил, что некоторые из наиболее популярных приложений камеры не имеют этой проблемы при сохранении в библиотеку фотографий. Мне интересно, какой метод они используют.

//Save to Photo Library;
ALAssetsLibrary* library = [[ALAssetsLibrary alloc] init];
//CIImage *ciImage = image.CIImage;
[library writeImageToSavedPhotosAlbum:finalImage.CGImage
                          orientation:ALAssetOrientationUp
                      completionBlock:^(NSURL *assetURL, NSError *error) {
                          NSlog(@"Done");
                      }];

Save to Photo Library;
UIImageWriteToSavedPhotosAlbum(savedPhoto,nil,nil,nil);

Спасибо за помощь!


person dana0550    schedule 13.07.2012    source источник
comment
Вы говорите, что они масштабируют ваше изображение, чтобы заполнить экран, и обрезают позиции по бокам?   -  person nielsbot    schedule 22.07.2012
comment
Да, но после сохранения изображения. Кажется, я не совсем понятно это объясняю. Проблема не в моем приложении. Это происходит после того, как изображение было сохранено, а затем запущено приложение Apple Photo Library.   -  person dana0550    schedule 24.07.2012
comment
да - я понимаю, просто подтверждаю.   -  person nielsbot    schedule 24.07.2012
comment
что произойдет, если вы поменяете ориентацию?   -  person nielsbot    schedule 25.07.2012
comment
Если я поворачиваю устройство в альбомную ориентацию, все изображение отображается нормально. Это просто проблема, когда держишь устройство в портретной ориентации. Это то, как приложение для фотографий автоматически масштабируется, чтобы соответствовать всему экрану. Я не уверен, почему Apple делает это.   -  person dana0550    schedule 25.07.2012
comment
я имел в виду ориентацию вашего сохраненного изображения, а не ориентацию вашего устройства. простите :)   -  person nielsbot    schedule 26.07.2012
comment
Ну, ориентация всегда портретная для сохраненных фотографий.   -  person dana0550    schedule 26.07.2012


Ответы (4)


После небольшого исследования нет решения этой проблемы. Приложение для фотографий автоматически масштабирует изображение, чтобы заполнить экран.

Спасибо за все ответы.

person dana0550    schedule 21.10.2012

Сохранение изображения должно пройти нормально.

Я думаю, вы можете установить свойство UIView UIViewContentMode при использовании изображения.

typedef enum {
UIViewContentModeScaleToFill,
UIViewContentModeScaleAspectFit,      // contents scaled to fit with fixed aspect. remainder is transparent
UIViewContentModeScaleAspectFill,     // contents scaled to fill with fixed aspect. some portion of content may be clipped.
UIViewContentModeRedraw,              // redraw on bounds change (calls -setNeedsDisplay)
UIViewContentModeCenter,              // contents remain same size. positioned adjusted.
UIViewContentModeTop,
UIViewContentModeBottom,
UIViewContentModeLeft,
UIViewContentModeRight,
UIViewContentModeTopLeft,
UIViewContentModeTopRight,
UIViewContentModeBottomLeft,
UIViewContentModeBottomRight,

} UIViewContentMode;

Надеюсь, поможет.

person TK189    schedule 16.07.2012

Если вы посмотрите на образец приложения FrogScroller от Apple, вы увидите, что они сначала загружают изображение с низким разрешением, а затем при масштабировании используют CATiledLayer с размером, установленным функцией setMaxMinZoomScalesForCurrentBounds.

Вы можете посмотреть видео WWDC 2010 на scrollViews, а также 2011 для получения дополнительной информации. Джош и Элиза отлично объясняют, в чем дело.

person SushiGrass Jacob    schedule 16.07.2012

Почему бы перед сохранением не наложить изображение на полноэкранное изображение с четким фоном?

person Nic Robertson    schedule 20.07.2012