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

Ios 将两个图像与CIFilter合并时对齐,ios,core-image,cifilter,Ios,Core Image,Cifilter,我正在使用CIFilter@“CIDarkenBlendMode”将两个图像合并在一起。除了一件事,它工作得很好。我希望无论图像大小如何,图像都能精确对齐,但我无法做到这一点。我必须创建自己的过滤器吗 这就是我得到的: 这就是我想要的: 我的合并代码: -(void)mergeImagesWithCIImage:(UIImage*)image { CIImage *topImage = [[CIImage alloc]initWithImage:image]; CIImag

我正在使用
CIFilter
@“CIDarkenBlendMode”
将两个图像合并在一起。除了一件事,它工作得很好。我希望无论图像大小如何,图像都能精确对齐,但我无法做到这一点。我必须创建自己的过滤器吗

这就是我得到的:

这就是我想要的:

我的合并代码:

-(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;
}

我没有使用CIFilter,而是使用了:

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

并将图像居中。

CIFilter的价格会更低。下次,通过转换图像位置进行适当的变换,然后应用CIFilter。