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。