如何防止保存到照片库的图像被调整大小/缩放到全屏?

时间:2012-07-13 17:13:02

标签: iphone camera uiimage photos alassetslibrary

这是交易,我尝试使用下面显示的两种方法将图像保存到照片库。成功保存图像并启动照片应用程序以查看图像后,应用程序会自动将图像缩放/调整为全屏。

有什么方法可以阻止这种情况吗?这很烦人,因为要看到整个图像,用户需要将图像捏出来展示整个图像。我注意到一些比较流行的相机应用程序在保存到照片库时没有这个问题。我很好奇他们正在使用什么方法。

//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);

感谢您的帮助!

4 个答案:

答案 0 :(得分:1)

经过一些研究后,没有解决这个问题的办法。照片应用程序会自动调整图像以填满屏幕。

感谢所有回复。

答案 1 :(得分:0)

保存图片应该没问题。

我认为您可以在使用图像时设置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;

希望它有所帮助。

答案 2 :(得分:0)

如果您查看Apple的FrogScroller示例应用程序,您会看到他们最初首先加载图像的低分辨率,然后在缩放时使用CATiledLayer,其大小由setMaxMinZoomScalesForCurrentBounds设置功能。

您可能希望在scrollViews以及2011上查看WWDC 2010的视频以获取更多信息。 Josh和Eliza做了很好的解释是什么。

答案 3 :(得分:0)

为什么不在保存之前将图像分层到具有清晰背景的全屏图像上?