2013-06-30 10 views
6

मैं कोर छवि ढांचे के साथ खेल रहा हूं। जैसा कि मैं समझता हूं, अगर मेरे पास एक छवि है (एनएसआईमेज), तो इसे पहले CIImage में परिवर्तित करने की आवश्यकता है। मैं ऐसा कर सकता हूँ।एनएसआईमेज में सीआईएममेज को कनवर्ट करना

NSImage *im1 = [[NSImage alloc] initWithContentsOfFile:imagepath]; 
NSRect rect1;rect1.size.width = img1.size.width; rect1.size.height = img1.size.height; 
CGImageRef imageRef1 = [img1 CGImageForProposedRect:&rect1 context:[NSGraphicsContext currentContext] hints:nil]; 
CIImage *ciimage = [CIImage imageWithCGImage:imageRef1]; 

मैं एक कोर छवि (CIImage) है, जो मैं परीक्षण करना चाहते करने के लिए एक मुख्य छवि फिल्टर लागू होने वाला एक समारोह है। और मैं एक विंडो में आउटपुट छवि को एक सबव्यूव के रूप में जोड़ना चाहता हूं। तो मुझे एनएसआईमेज चाहिए। मैं इस मूल छवि को वापस एनएसआईमेज में कैसे परिवर्तित कर सकता हूं? अगर मैं Google से पूछता हूं, तो मुझे अच्छे नतीजे नहीं मिलते हैं।

आपकी मदद के लिए धन्यवाद।

+0

एक सुझाव यह थोड़ा आसान बनाने के लिए 3 के साथ: CGImageRef imageRef1 = [img1 CGImageForProposedRect: शून्य संदर्भ: शून्य संकेत: शून्य]; –

उत्तर

21

मैं इसे परीक्षण नहीं किया है, लेकिन मुझे लगता है कि यह यह करना चाहिए:

CIImage *ciImage = ...; 

NSCIImageRep *rep = [NSCIImageRep imageRepWithCIImage:ciImage]; 
NSImage *nsImage = [[NSImage alloc] initWithSize:rep.size]; 
[nsImage addRepresentation:rep]; 
8

स्विफ्ट में: लाइन 2 को हटा दें और लाइन की जगह:

var rep: NSCIImageRep = NSCIImageRep(ciImage: gaussianBlurFilter.outputImage) 
var nsImage: NSImage = NSImage(size: rep.size) 
nsImage.addRepresentation(rep) 
संबंधित मुद्दे