当我尝试应用CIRandomGenerator时,我的代码返回null。当我进入过滤页面时,应用程序崩溃了,我正在使用目标c进行编码。
if([filterName isEqualToString:@"CIRandomGenerator"]){
// parameters
[filter setValue:[[CIFilter filterWithName:@"CIRandomGenerator"] valueForKey:@"outputImage"] forKey:@"inputImage"];
CIContext *context = [CIContext contextWithOptions:nil];
CIImage *outputImage = [filter outputImage];
CGImageRef cgImage = [context createCGImage:outputImage fromRect:[outputImage extent]];
UIImage *result = [UIImage imageWithCGImage:cgImage];
CGImageRelease(cgImage);
return result;
CIRandomGenerator
生成一个无限范围的图像。您需要在将结果渲染为CGImage
之前裁剪结果,例如:
CIImage *outputImage = [[filter outputImage] imageByCroppingToRect: CGRectMake(0, 0, 500, 500)];