0

を使用して 2 つの画像を結合していCIFilter @"CIDarkenBlendMode"ます。1つのことを除いて正常に動作します。画像のサイズに関係なく、画像を正確に重ね合わせたいのですが、これを実現できません。独自のフィルターを作成する必要がありますか?

これは私が得るものです:

結果

これは私が欲しいものです:

私が欲しいもの

私のマージコード:

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

1 に答える 1

0

私が使用したCIFilterを使用する代わりに:

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

画像を中央に配置しました。

于 2013-09-27T08:58:58.733 に答える