2012-09-11 102 views
3

我的應用程序需要整個網頁的屏幕截圖。當它保存到相冊時,圖像質量會有所變化,靜止圖像上的文字模糊且難以閱讀。我發現這個解決方案有望在保存到相冊時具有更好的質量,但它似乎仍然不是完全可以接受的。有沒有比這更好的方式將UIImage保存爲相冊,而且質量損失極小?謝謝。保存UIImage沒有質量損失

UIImage* img = [UIImage imageWithCGImage:screenshotImage.CGImage]; 
NSData* imdata = UIImagePNGRepresentation (img); 
UIImage* image = [UIImage imageWithData:imdata]; // wrap UIImage around PNG representation 

UIImageWriteToSavedPhotosAlbum(image, self, @selector(image:didFinishSavingWithError:contextInfo:), nil); 
+0

你有沒有檢查'img'和'圖像質量(可能顯示在圖像視圖)? –

+0

http://developer.apple.com/library/ios/#qa/qa1703/_index.html –

+0

你失去了什麼質量?請給出一些截圖,你的意思是什麼_lose quality_。 – holex

回答

0

除了查看圖像質量設置,還需要了解哪種圖像格式最適合於存儲不同類型的圖像。

我比較喜歡使用JPG來拍攝真實世界的圖像,例如用相機拍攝的照片。 JPEG在保持較高圖像質量的同時實現了更好的壓縮效果。

如果您正在截取圖片的很多部分都是相同顏色的截圖(比如此網頁或您的編程編輯器),那麼我更喜歡使用PNG。 PNG將保存圖像,而不會產生大量經常出現在JPEG中的骯髒僞像,但仍可爲這些類型的圖像實現良好的壓縮比。

上述原因與各自使用的壓縮算法有關(JPEG是FFT; PNG是DEFLATE)。嘗試改變圖像類型以及質量設置,看看是否有所作爲。

+0

謝謝。讓我做一些調查並返回結果。 – Vad

+1

UIGraphicsBeginImageContextWithOptions(webView.scrollView.contentSize,NO,0);給了我非常滿意的結果。 – Vad