2016-11-29 24 views
2

私はCIImageCIFilterを使用して画像のフィルタ処理を行っています。その後、画像データをUIImageJPEGRepresentationで取得しようとしていますが、ヌルデータを取得しています。CIImageから画像データを取得できません

CIImage *beginImage = [[CIImage alloc] initWithImage:sourceImage]; 

CIContext *context = [CIContext contextWithOptions:nil]; 

CIFilter *filter = [CIFilter filterWithName:effect keysAndValues:kCIInputImageKey, beginImage, nil]; 

CIImage *outputImage = [filter outputImage]; 

CGImageRef cgimg = [context createCGImage:outputImage fromRect:[outputImage extent]]; 

UIImage *filteredImage = [UIImage imageWithCIImage:outputImage]; 
CGImageRelease(cgimg); 

NSData *imageData = UIImageJPEGRepresentation(filteredImage, 1.0); 

imageDataをコンソールにすると、データが失われています。私の上記のコードをチェックし、私が間違っているところを教えてください。

+0

何に役立つことを願っていますがCIImage

UIImage *filteredImage = [UIImage imageWithCIImage:outputImage]; 

を渡している。しかしUIImage書き込みを作成中は、この

UIImage *filteredImage = [[UIImage alloc] initWithCGImage:cgimg]; 

CGImageRefを渡す必要がここにあります効果の価値は?この行では、CIFilter * filter = [CIFilter filterWithName:effect keysAndValues:kCIInputImageKey、beginImage、nil]; –

答えて

1

//私たちのぼやけたイメージを作成するこの希望をあなたのために働かせてください。

CIContext *context = [CIContext contextWithOptions:nil]; 
CIImage *inputImage = [CIImage imageWithCGImage:theImage.CGImage]; //theImage pass your image 
CIFilter *filter1 = [CIFilter filterWithName:@"CIGaussianBlur"]; 
[filter1 setValue:inputImage forKey:kCIInputImageKey]; 
CIImage *result = [filter1 valueForKey:kCIOutputImageKey]; 
CGImageRef cgImage = [context createCGImage:result fromRect:[inputImage extent]]; 
UIImage *returnImage = [UIImage imageWithCGImage:cgImage]; // returnImage is your blur image 
CGImageRelease(cgImage); 
2

あなたの問題は、私はそれはあなた

+0

答えをありがとう。出来た。 –

+0

あなたはよく来ました –

関連する問題