我使用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];
}
}
怎么了?
最佳答案
你忘了处理边界图像。在[imageToProcess processImage]
之后,添加行:
[border processImage];
对于要输入到混合的两个图像,必须在将它们添加到混合过滤器后对它们使用
-processImage
。我改变了混合过滤器的工作方式以修复一些错误,这就是你现在需要做的事情。