2015-02-04 51 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

相關問題