Ниже приведен код, который я пытаюсь применить, чтобы получить фильтр CIFourfoldRotatedTile на изображении, но я получаю нулевое изображение на выходе.CIFourfoldRotatedTile Core Image Filter
CIContext *context = [CIContext contextWithOptions:nil]; // 1
CIImage *aimage = [CIImage imageWithCGImage:[UIImage imageNamed:@"Image1.png"].CGImage];
CIFilter *filter = [CIFilter filterWithName:@"CIFourfoldRotatedTile"]; // 3
[filter setValue:aimage forKey:kCIInputImageKey];
[filter setValue:[CIVector vectorWithCGPoint:CGPointMake(200, 200)] forKey:@"inputCenter"];
[filter setValue:[NSNumber numberWithFloat:2.0] forKey:@"inputAngle"];
[filter setValue:[NSNumber numberWithFloat:50] forKey:@"inputWidth"];
CIImage *result = [filter valueForKey:kCIOutputImageKey]; // 4
CGRect extent = [result extent];
CGImageRef cgImage = [context createCGImage:result fromRect:extent];
UIImage *finalImage = [UIImage imageWithCGImage:cgImage];
self.imgview.image = finalImage;
Не знаю, какой параметр я вхожу неправильно. Пожалуйста, помогите мне в этом. Спасибо.
экстент содержит размер выходного изображения, так что мое выходное изображение не создается должным образом с использованием фильтра – Leena
Я думаю, что я прав. Вы должны использовать '[aimage extent]' вместо '[result extent]' – TheTiger
На самом деле я также пробовал 'CIGaussianBlur' и' [result extent] 'не подходит, даже вы можете проверить его со значениями по умолчанию. Не заполняйте ничего, просто попробуйте значения по умолчанию, а затем посмотрите. – TheTiger