2014-10-02 61 views
0

我能够将UIView的内容作为图像保存到库中。将UIView保存为原生解析图像

我试图保存的图像在应用上是一个很好的分辨率,但将其保存到照片库会显着降低分辨率。我试图保存的图像与屏幕具有相同的宽度,但屏幕高度多次。

我保存的图像看起来像我想要在应用程序中的UIScrollView但它保存的图像具有比实际图像更低的分辨率。我如何防止它做到这一点?

在先进的感谢:d

编辑:添加代码...

- (void) saveImageToLibrary 
{ 
    UIImage* image;// = nil; 
    UIGraphicsBeginImageContext(scrollview.contentSize); 
    { 
     CGPoint savedContentOffset = scrollview.contentOffset; 
     CGRect savedFrame = scrollview.frame; 
     scrollview.contentOffset = CGPointZero; 
     scrollview.frame = CGRectMake(0, 0, scrollview.contentSize.width, scrollview.contentSize.height); 
     self.view.frame = CGRectMake(0, 0, scrollview.contentSize.width, scrollview.contentSize.height); 

     [scrollview.layer renderInContext: UIGraphicsGetCurrentContext()]; 
     image = UIGraphicsGetImageFromCurrentImageContext(); 

     scrollview.contentOffset = savedContentOffset; 
     scrollview.frame = savedFrame; 
     self.view.frame = savedFrame; 
    } 
    UIGraphicsEndImageContext(); 
    UIImageWriteToSavedPhotosAlbum(image, nil,nil,nil); 
} 

我希望这是很有帮助的。

回答

0

好家伙和goyals ...我想我找到了问题。

问题是iPhone模拟器。取决于你正在求和的硬件,图像将针对扩展器的分辨率进行优化。

我不完全信服这个,因为我以前模拟iPhone 5(它有视网膜显示),但模拟iphone 6似乎工作正常。

这里是一个链接,如果你想跟着进一步的细节,或者如果你想添加到这个线程:d

https://stackoverflow.com/questions/8032528/uiimage-image-loaded-from-appbundle-is-saved-at-lower-resolution-in-app-direct 
0

您是否在尝试创建图像时设置了正确的比例?你能发布代码吗?

+0

即时消息不知道你的规模是什么意思。我认为它会保存图像根据其所包含的UIView的尺寸。我将代码添加到此线程。 – X0r0N 2014-10-02 19:53:20

+0

缩放意味着如果图像的大小会得到2倍或3倍的乘数。您可以在此链接(https://coderwall.com/p/jdwyta)中看到,如果您使用0作为比例,则会自动使用正确的比例。 – 2014-10-03 03:25:44

0

使用这个代替:

UIGraphicsBeginImageContextWithOptions(scrollView.contentSize, scrollView.opaque, [[UIScreen mainScreen] scale]); 

编辑

您也可以尝试规模设置为零:

UIGraphicsBeginImageContextWithOptions(scrollView.contentSize, scrollView.opaque, 0.0); 

是否帮助你吗?

+0

这没有做任何事情。保存大图像时保存的图像仍然很模糊。 – X0r0N 2014-10-02 20:27:28

+0

这应该从理论上增加规模,因为您的设备屏幕可能具有“2.0”或更多的比例... – 2014-10-13 17:58:37

+0

请参阅我的编辑,是否可以帮助您? – 2014-10-13 18:00:45