核心图像过滤器CISourceOverCompositing无法正常工作

时间:2013-12-18 14:49:20

标签: ios iphone photo core-image

我正在制作照片编辑应用程序,我必须将两个图像合并为另一个像这样

enter image description here

我已实施以下代码来执行此操作:
这里imgedit是背景图片和
     imgEdit是包含imgedit的UIImageView。

        UIImage *tempImg = [UIImage imageNamed:[NSString stringWithFormat:@"borderImg"]];
        CIImage *inputBackgroundImage = [[CIImage alloc] initWithImage:imgedit];
        CIImage *inputImage = [[CIImage alloc]initWithImage:tempImg] ;

        CIFilter *filter = [CIFilter filterWithName:@"CISourceOverCompositing"];
        [filter setDefaults];
        [filter setValue:inputImage forKey:@"inputImage"];
        [filter setValue:inputBackgroundImage forKey:@"inputBackgroundImage"];

        CIImage *outputImage1 = [filter valueForKey:@"outputImage"];
        CIContext *context = [CIContext contextWithOptions:nil];
        imgEdit.image = [UIImage imageWithCGImage:[context createCGImage:outputImage1 fromRect:outputImage1.extent]];

但实现上述代码后我得到的 outputImage是:
enter image description here

我还尝试使用以下代码调整大小输入白框图像:

        tempImg=[tempImg resizedImageToSize:CGSizeMake(imgEdit.image.size.width,imgEdit.image.size.height)];  

通过使用上面的代码图像得到适当调整大小,但这也无法正常工作。

请从这里帮助我。
您的宝贵帮助将受到高度赞赏 谢谢你提前。

1 个答案:

答案 0 :(得分:3)

更好的调整大小的方法如下:

inputImage = [inputImage imageByApplyingTransform:CGAffineTransformMakeScale(inputBackgroundImage.extent.size.width/inputImage.extent.size.with, inputBackgroundImage.extent.size.height/inputImage.extent.size.height)];