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