2012-06-22 14 views
5

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

संपादित करें: ठीक है मुझे सेपिया फ़िल्टर काम करने के लिए मिला है, इसलिए मैंने पोस्टरिज करने की कोशिश की और मुझे वही समस्या थी जो छवि गायब हो गई। यहाँ कोड है:

CIImage *beginImage = [CIImage imageWithCGImage:[image_view.image CGImage]]; 
context = [CIContext contextWithOptions:nil]; 
filter = [CIFilter filterWithName:@"CIColorPosterize" keysAndValues:kCIInputImageKey, beginImage,@"inputLevels",[NSNumber numberWithFloat:0.8], nil]; 
CIImage *outputImage = [filter outputImage]; 
CGImageRef cgimg = [context createCGImage:outputImage fromRect:[outputImage extent]]; 
UIImage *newImg = [UIImage imageWithCGImage:cgimg]; 
[image_view setImage:newImg]; 
CGImageRelease(cgimg); 
+0

पर सफलतापूर्वक जांच की गई पोस्ट कोड आप इस प्रकार अब तक है !!! – trumpetlicks

+0

बस इसे पोस्ट किया गया! –

+0

आईओएस एसडीके से कोरइमेज फ़िल्टर गायब हैं। मेरा मानना ​​है कि पोस्टरिज उनमें से एक है। आईओएस के लिए Google समर्थित लोगों की सूची के लिए CoreImage फ़िल्टर समर्थित है। –

उत्तर

11

कुछ इस तरह का प्रयास करें

CIImage *beginImage = [CIImage imageWithCGImage:[myImageView.image CGImage]]; 
CIContext *context = [CIContext contextWithOptions:nil]; 

CIFilter *filter = [CIFilter filterWithName:@"CISepiaTone" keysAndValues: kCIInputImageKey, beginImage, @"inputIntensity", [NSNumber numberWithFloat:0.8], nil]; 
CIImage *outputImage = [filter outputImage]; 

CGImageRef cgimg = [context createCGImage:outputImage fromRect:[outputImage extent]]; 
UIImage *newImg = [UIImage imageWithCGImage:cgimg]; 

[myImageView setImage:newImg]; 

CGImageRelease(cgimg); 
+0

आह! यह काम करता है! आपको बहुत - बहुत धन्यवाद! –

+0

इस उत्तर का स्रोत: http://www.raywenderlich.com/22167/beginning-core-image-in-ios-6 –

+3

या यह: http://blog.objectgraph.com/index.php/2011/ 12/31/कोर-इमेज-फ्रेमवर्क-इन-आईओएस -5-0/या यह: http://books.google.com/books?id=ANOhiaaOwjAC&pg=PA633&lpg=PA633&dq=cisepiatone&source=bl&ots=aRg2fklJUm&sig=8eb3ThWDPwqmkz0ZN-8WHZQLb6w&hl = en & sa = X और ei = -_ XPU8mkDIeCzAP40oKYCw और redir_esc = y # v = onepage और q = cisepiatone और f = false या यह http://technet.weblineindia.com/mobile/apply-image-filters-using-coreimage-framework-in-ios/2/ या ... – Ladislav

0

Xcode 8.2 पर स्विफ्ट 3.0 में एक ही कोड (कहते हैं कि तुम एक UIImageView * myImageView डालते हैं) (परियोजना में मेरे imageView "है @IBOutlet वर photoImageView: UIImageView ") एक iPhone 7Plus डिवाइस iOS 10

guard let myImageView = self.photoImageView.image else 
    { 
     return 
    } 
    guard let cg = myImageView.cgImage else 
    { 
     return 
    } 
    let beginImage = CIImage(cgImage: cg) 
    let context : CIContext = CIContext(options: nil) 
    let inputParams : [String : Any]? = [kCIInputImageKey : beginImage, 
             "inputIntensity" : NSNumber(value : 0.8)] 
    let filter : CIFilter = CIFilter(name: "CISepiaTone", withInputParameters: inputParams)! 
    let outputImage : CIImage? = filter.outputImage! 

    if let outputImage = outputImage 
    { 
     let cgImage : CGImage? = context.createCGImage(outputImage, from: outputImage.extent)! 

     if let cg = cgImage 
     { 
      let newImage : UIImage = UIImage(cgImage: cg) 
      photoImageView.image = newImage 
     } 
    } 
संबंधित मुद्दे