2012-07-08 13 views
8

मुझे "निकटतम पड़ोसी" resampling के साथ फ़ोटोशॉप में UIImage का आकार बदलने के लिए एक विधि की आवश्यकता है। मैं कुछ ढूंढ रहा था, लेकिन मुझे जो कुछ भी मिला वह कोरग्राफिक्स थिक्स के बारे में था, जो कि बाइबिक रीसाम्प्लिंग गुणवत्ता को बेहतर बनाने के लिए था। मेरे पास मेरे ऐप में पिक्सेल-स्टाइल डिज़ाइन है, और पिक्सेल द्वारा बनाई गई बहुत सारी चीज़ें और फिर इसे x5 गुणक के साथ बढ़ाएं (और इसमें बहुत समय लगता है, इसलिए मैं फ़ोटोशॉप के लिए एक स्क्रिप्ट लिखने के करीब भी हूं)। उदाहरण के लिए:UIImage हार्ड किनारों के साथ आकार बदलें

enter image description here

हो सकता है कि किसी को भी मुझे सही रास्ता दिखाएगा:

enter image description here>enter image description here

लेकिन मैं वास्तव में resampling के इस तरह परिणाम जरूरत नहीं है।

+0

अतिरिक्त के रूप में मैं कह सकता हूं कि मुझे फ़ोटोशॉप "क्रियाओं" के साथ बैच छवि प्रसंस्करण के लिए एक अच्छा तरीका मिला है। लेकिन संग्रहित संसाधन छवियों के आकार को कम करने के लिए मुझे अभी भी एक उत्तर की आवश्यकता है। – kokoko

उत्तर

16

जब आप एक ग्राफिक्स संदर्भ में अपनी छवि को आकर्षित, आप, ग्राफिक्स संदर्भ के प्रक्षेप गुणवत्ता के लिए "कोई नहीं" सेट कर सकते हैं इस तरह (किसी दृश्य के drawRect विधि में जैसे):

CGContextRef c = UIGraphicsGetCurrentContext(); 
CGContextSetInterpolationQuality(c, kCGInterpolationNone); 
UIImage *image = [UIImage imageNamed:@"pixels.png"]; 
[image drawInRect:self.bounds]; 

आप परिणाम की जरूरत है UIImage (उदाहरण के लिए इसे अंतर्निहित UI नियंत्रण में असाइन करने के लिए), आप इसे UIGraphicsBeginImageContext के साथ कर सकते हैं (आपको इसके लिए बहुत सारे उदाहरण मिलेंगे)।

एक वैकल्पिक एक छवि को देखने की परत की magnificationFilter गुण सेट करने के लिए होगा:

pixelatedImageView.layer.magnificationFilter = kCAFilterNearest; 

इसका कारण यह है कि आप छवि पुनः बनाने की जरूरत नहीं है, तेजी से और अधिक स्मृति कुशल शायद है।

+0

यह उत्तर अच्छा दिखता है, मुझे इसे स्वीकार करने के लिए जल्द ही एक्सकोड में जांचना होगा। धन्यवाद। – kokoko

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