Nik*_*ita 7 iphone image-processing objective-c gpuimage
我正在使用GPUImage框架(一些旧版本)来混合两个图像(将边框叠加添加到某个图像).在我更新到最新的框架版本后,应用这样的混合后,我得到一个空的黑色图像.
我正在使用下一个方法:
- (void)addBorder {
if (currentBorder != kBorderInitialValue) {
GPUImageAlphaBlendFilter *blendFilter = [[GPUImageAlphaBlendFilter alloc] init];
GPUImagePicture *imageToProcess = [[GPUImagePicture alloc] initWithImage:self.imageToWorkWithView.image];
GPUImagePicture *border = [[GPUImagePicture alloc] initWithImage:self.imageBorder];
blendFilter.mix = 1.0f;
[imageToProcess addTarget:blendFilter];
[border addTarget:blendFilter];
[imageToProcess processImage];
self.imageToWorkWithView.image = [blendFilter imageFromCurrentlyProcessedOutput];
[blendFilter release];
[imageToProcess release];
[border release];
}
}
Run Code Online (Sandbox Code Playgroud)
问题是什么?
Bra*_*son 11
您忘记处理边框图像.之后[imageToProcess processImage],添加以下行:
[border processImage];
Run Code Online (Sandbox Code Playgroud)
要将两个图像输入到混合中,必须-processImage在将它们添加到混合滤镜后使用它们.我改变了混合滤镜的工作方式以修复一些错误,这就是你现在需要做的事情.
这是我目前用于将两个图像与GPUImageAlphaBlendFilter合并的代码.
GPUImagePicture *mainPicture = [[GPUImagePicture alloc] initWithImage:image];
GPUImagePicture *topPicture = [[GPUImagePicture alloc] initWithImage:blurredImage];
GPUImageAlphaBlendFilter *blendFilter = [[GPUImageAlphaBlendFilter alloc] init];
[blendFilter setMix:0.5];
[mainPicture addTarget:blendFilter];
[topPicture addTarget:blendFilter];
[blendFilter useNextFrameForImageCapture];
[mainPicture processImage];
[topPicture processImage];
UIImage * mergedImage = [blendFilter imageFromCurrentFramebuffer];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9397 次 |
| 最近记录: |