0
我注意到很多人问关于使用GPUImage链接过滤器的问题。我无法弄清楚如何简洁地做到这一点。终于在今晚工作。只是想分享我的代码,以便人们可以链接到解决方案。如何添加多个过滤器到UIImage GPUImage?
我注意到很多人问关于使用GPUImage链接过滤器的问题。我无法弄清楚如何简洁地做到这一点。终于在今晚工作。只是想分享我的代码,以便人们可以链接到解决方案。如何添加多个过滤器到UIImage GPUImage?
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