CIImage 怎么 转 NSData 呢?

解决方案 »

  1.   

    不能直接转的话你可以过渡一下,把ciimage转成uiimage,然后再转成nsdata
    UIImage *uiimage=[UIImage imageWithCIImage:ciimage];
    NSData *imageData=[UIImageJPEGRepresentation(uiimage,1.0)];
      

  2.   

    已解决,谢谢!
                CIImage *ciImage = [CIImage imageWithCVPixelBuffer:pixelBuffer];
                _imgView.image = [UIImage imageWithCIImage:ciImage];
                
                CIContext *context = [CIContext contextWithOptions:nil];
                CIFilter * filter = [CIFilter filterWithName:@"CISepiaTone"];
                [filter setValue:ciImage forKey:kCIInputImageKey];
                [filter setValue:@1.0f forKey:kCIInputIntensityKey];
                CIImage *outputImg = [filter outputImage];
                CGImageRef cgImage = [context createCGImage:outputImg fromRect:[outputImg extent]];
                
                UIImage *takePhoto =  [UIImage imageWithCGImage:cgImage];
                
                NSUserDefaults *user = [NSUserDefaults standardUserDefaults];
                NSString *currentTimeName =[NSString stringWithFormat:@"%@",[user objectForKey:@"currentTimeName"]] ;
                NSLog(@"currentTimeName =%@",currentTimeName);
                
                // 文件以当前时间命名
                NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
                NSString *homePath = [paths objectAtIndex:0];
                NSString *imagePath =  [homePath stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.png",currentTimeName]];
                NSLog(@"%@",imagePath);
                [UIImagePNGRepresentation(takePhoto) writeToFile: imagePath  atomically:YES];