2014-10-02 19 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