UIImage *faceImage = [UIImage imageNamed:@"469453586_640.jpg"];
UIImageView *face = [[UIImageView alloc] initWithFrame:CGRectMake(0.0, 0.0, faceImage.size.width/2.0, faceImage.size.height/2.0)];
[face setImage:faceImage];
[self.view addSubview:face];
GPUImagePicture *stillImageSource = [[GPUImagePicture alloc] initWithImage:faceImage];
GPUImageBrightnessFilter *brightnessFilter = [[GPUImageBrightnessFilter alloc] init];
[brightnessFilter setBrightness:.15];
GPUImageGrayscaleFilter *grayscaleFilter = [[GPUImageGrayscaleFilter alloc] init];
GPUImagePosterizeFilter *posterizeFilter = [[GPUImagePosterizeFilter alloc] init];
[posterizeFilter setColorLevels:1];
[stillImageSource addTarget:brightnessFilter];
[brightnessFilter addTarget:grayscaleFilter];
[grayscaleFilter addTarget:posterizeFilter];
// these need to be changed if you change the order of your filters
// [brightnessFilter useNextFrameForImageCapture];
// [grayscaleFilter useNextFrameForImageCapture];
[posterizeFilter useNextFrameForImageCapture];
[stillImageSource processImage];
[face setImage: [posterizeFilter imageFromCurrentFramebuffer]];
Я бы не рекомендовал направлять это в UIImageView. Вместо этого используйте GPUImageView и настройте таргетинг. Преобразование в/из UIImage является дорогостоящим и потребляющим память, и переход непосредственно к GPUImageView позволяет избежать этого. –
Я использовал GPUImageView, и он отобразил центр изображения и с черным фоном. Теперь, когда вы изобрели то, что я вам доверяю, но как разработчик продукта UIImageView - это то, что я знаю, и он получает результаты, которые я хочу, чтобы изображение было установлено в определенный мной фрейм. Итак, если вы хотите, чтобы люди делали это, сделайте это так просто. Было очень сложно заставить это работать, и люди всегда будут стремиться к самому быстрому пути к желаемому результату. – chrisallick
Кроме того, я предлагаю перейти к каждому сообщению, где люди спрашивают, как сделать то, что я только что сделал, и исправить их, а не сбить решение. – chrisallick