将两个图像与CIFilter合并时对齐两个图像

时间:2013-09-19 08:31:58

标签: ios core-image cifilter

我正在使用CIFilter @"CIDarkenBlendMode"将两张图片合并在一起。除了一件事,它工作正常。无论图像大小如何,我都希望图像完全对齐,但我无法实现这一点。我是否必须创建自己的过滤器?

这就是我得到的:

result

这就是我想要的:

what I want

我的合并代码:

-(void)mergeImagesWithCIImage:(UIImage*)image
{

    CIImage *topImage = [[CIImage alloc]initWithImage:image];
    CIImage *scaledImage = [self scaleImageWithCIImage:topImage];

    CIImage *backgroundImage = [[CIImage alloc]initWithImage:self.vImage.image];

    CIFilter *darkenFilter = [CIFilter filterWithName:@"CIDarkenBlendMode" keysAndValues:kCIInputImageKey,scaledImage,
                              @"inputBackgroundImage",backgroundImage,nil];

    CIImage *filterOutputImage = darkenFilter.outputImage;

    CIContext *ctx = [CIContext contextWithOptions:nil];
    CGImageRef createdImage = [ctx createCGImage:filterOutputImage fromRect:filterOutputImage.extent];

    UIImage *outputImage = [UIImage imageWithCGImage:createdImage];
    CGImageRelease(createdImage);
    createdImage = nil;

    self.vImage.image = outputImage;
}

1 个答案:

答案 0 :(得分:0)

而不是使用我使用过的CIFilter:

[_image drawInRect:CGRectMake(centerX,centerY,_image.size.width,_image.size.height) blendMode:kCGBlendModeDarken alpha:0.8];

并使图像居中。