2015-02-04 50 views

回答

2
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]]; 
+0

我不会推荐将它指向UIImageView。相反,使用GPUImageView并定位它。从UIImage转换为/昂贵且耗费内存,并直接转到GPUImageView避免这种情况。 –

+0

我使用了GPUImageView,它呈现图像中心和黑色背景。现在是你发明了我相信你的东西,但作为产品开发人员,UIImageView就是这样,这就是我所知道的,它获得了我希望图像设置到我定义的框架中的结果。所以,如果你想让人们这样做,那就简单点吧。要实现这个目标是非常困难的,人们总是会通过最快的途径获得他们想要的结果。 – chrisallick

+0

此外,我会建议去每个职位,人们都问如何做到我刚刚完成的工作,并纠正它们,而不是敲一个解决方案。 – chrisallick

相关问题