我正在使用 CIImage 和 CIFilter 进行图像过滤。之后,我试图通过 UIImageJPEGRepresentation 获取图像数据,但我得到的是空数据。
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 createCGImageutputImage fromRect:[outputImage extent]];
UIImage *filteredImage = [UIImage imageWithCIImageutputImage];
CGImageRelease(cgimg);
NSData *imageData = UIImageJPEGRepresentation(filteredImage, 1.0);
我在控制台 imageData 时得到空数据。请检查我上面的代码,让我知道我做错了什么。
Best Answer-推荐答案 strong>
你的问题是在这里你传递 CIImage
UIImage *filteredImage = [UIImage imageWithCIImageutputImage];
但是你需要在创建UIImage 的时候通过CGImageRef 这样写
UIImage *filteredImage = [[UIImage alloc] initWithCGImage:cgimg];
希望对你有帮助
关于ios - 无法从 CIImage 获取图像数据,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/40863167/
|