2014-10-12 8 views
17

मैं उपयोगकर्ता की लाइब्रेरी से एक फोटो में फ़िल्टर लागू करना चाहता हूं, फिर उसे डिस्क पर वापस लिखना चाहता हूं। मैं UIImageJPEGRepresentation का उपयोग कर रहा हूँ। यह फ़ंक्शन UIImage और 0.0 और 1.0 के बीच compressionQuality मान लेता है। क्योंकि मैं मूल गुणवत्ता को संरक्षित करना चाहता हूं, इसलिए मैंने इसे 1.0 पर सेट किया है। लेकिन मैंने पाया कि यह वास्तव में एक छवि फ़ाइल बनाता है जो मूल से फ़ाइल आकार में बड़ा है, कुछ हद तक काफी बड़ा है। मैंने ऐप्पल के नमूना फोटो संपादन एक्सटेंशन ऐप में देखा है कि वे हमेशा गुणवत्ता को 0.9 पर सेट करते हैं। मैंने कोशिश की और यह मूल फोटो फ़ाइल आकार के करीब एक फ़ाइल आकार आउटपुट करता है। यह मुझे समझ में नहीं आता है। क्या कोई इसे समझा सकता है? क्या हमेशा 0.9 का उपयोग करना उचित है? क्या आईओएस कैमरा उस मान का उपयोग करके इसे संपीड़ित करता है और इस प्रकार 0.9 मूल गुणवत्ता है? या 0.9 वास्तव में 1.0 क्यों नहीं है, अगर कुछ भी बेहतर गुणवत्ता नहीं है?UIImageJPEGRepresentation का उपयोग करते समय संपीड़न गुणवत्ता क्या होनी चाहिए?

NSData *renderedJPEGData = UIImageJPEGRepresentation(image, 0.9f); 
+1

0.9 परिणामस्वरूप छवि में गुणवत्ता का नुकसान होगा - संपीड़न के कुछ स्तर लागू किए जा रहे हैं, इसलिए आप डेटा खो देंगे। यदि आपको मूल गुणवत्ता को संरक्षित करने की आवश्यकता है, तो UIImagePNGReresentation का उपयोग करें। जेपीजी एक हानिकारक प्रारूप है। पीएनजी का उपयोग करने के परिणामस्वरूप एक बड़ा फ़ाइल आकार होगा, लेकिन सहेजे गए परिणाम इनपुट छवि के समान गुणवत्ता होंगे। – rickerbh

+0

@rickerbh लेकिन आईफोन कैमरा के साथ ली गई तस्वीरें जेपीईजी नहीं हैं पीएनजी – Joey

+1

निश्चित रूप से। लेकिन अगर आप एक ही गुणवत्ता को बनाए रखना चाहते हैं तो आपको छवि को हानिकारक प्रारूप के साथ फिर से एन्कोड नहीं करना चाहिए। यदि आप कुछ गुणवत्ता हानि से खुश हैं (जो आमतौर पर छवि को देखने वाले मनुष्यों द्वारा नहीं देखा जाएगा), जेपीजी का उपयोग करें। मैं आमतौर पर 0.7 जैसे मान का उपयोग करता हूं क्योंकि मुझे लगता है कि यह आमतौर पर ऐसी छवि में परिणाम देता है जो भयानक नहीं है, लेकिन आमतौर पर एक अच्छी फ़ाइल आकार की बचत देता है। यदि आप रीकंप्रेशन के बारे में अधिक देखना चाहते हैं, तो http://www.ampsoft.net/webdesign-l/jpeg-compression.html – rickerbh

उत्तर

0

आप मूल छवि गुणवत्ता के लिए पीएनजी प्रतिनिधित्व में छवि को परिवर्तित कर सकते हैं।

UIImagePNGRepresentation(image) 
+1

मैं UIImagePNGRepresentation का उपयोग नहीं करना चाहता हूं और मैं UIImageJPEGRepresentation पर उपयोग करना चाहता हूं :) –

संबंधित मुद्दे

 संबंधित मुद्दे