5

我正在开发一个 iPhone 应用程序,我想合并两个 UIImages(leftImage 和 rightImage)。任何人都可以建议如何做到这一点,而不会在它们之间有界限吗?

我目前正在这样做:

- (UIImage*)mergeImage:(UIImage*)first withImage:(UIImage*)second
{
    // get size of the first image
    CGImageRef firstImageRef = first.CGImage;
    CGFloat firstWidth = CGImageGetWidth(firstImageRef);
    CGFloat firstHeight = CGImageGetHeight(firstImageRef);

    // get size of the second image
    CGImageRef secondImageRef = second.CGImage;
    CGFloat secondWidth = CGImageGetWidth(secondImageRef);
    CGFloat secondHeight = CGImageGetHeight(secondImageRef);

    // build merged size
    CGSize mergedSize = CGSizeMake((firstWidth+secondWidth), MAX(firstHeight, secondHeight));

    // capture image context ref
    UIGraphicsBeginImageContext(mergedSize);

    //Draw images onto the context
    [first drawInRect:CGRectMake(0, 0, firstWidth, firstHeight)];
    //[second drawInRect:CGRectMake(firstWidth, 0, secondWidth, secondHeight)];
    [second drawInRect:CGRectMake(firstWidth, 0, secondWidth, secondHeight) blendMode:kCGBlendModeNormal alpha:1.0];

    // assign context to new UIImage
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();

    // end context
    UIGraphicsEndImageContext();

    return newImage;

}

但它在两个图像之间创建了一条小线。我不想要这个分隔符,就像Splitcam做的那样。

我怎样才能做到这一点 ?

4

1 回答 1

6

只需让边缘重叠一个像素。

[second drawInRect:CGRectMake(firstWidth-1, 0, secondWidth, secondHeight) 
   blendMode:kCGBlendModeNormal alpha:1.0];
于 2012-08-31T08:51:26.750 回答