1

我有两个包含两个不同图像的 imageViews。我firstImageview有主图像,然后我添加了一个图像视图作为子视图firstImageviewlike [firstImageview addSubView:secondImageview]。我需要这个在一个图像中。

我正在使用以下代码(它运行顺利):

- (UIImage*)imageByCombiningImage:(UIImage*)firstImage withImage:(UIImage*)secondImage {
    UIImage *image = nil;

    CGSize newImageSize = CGSizeMake(MAX(firstImage.size.width, secondImage.size.width), MAX(firstImage.size.height, secondImage.size.height));
    if (UIGraphicsBeginImageContextWithOptions != NULL) {
        UIGraphicsBeginImageContextWithOptions(newImageSize, NO, [[UIScreen mainScreen] scale]);
    } else {
       // UIGraphicsBeginImageContext(newImageSize);
    }
    [firstImage drawAtPoint:CGPointMake(roundf((newImageSize.width-firstImage.size.width)/2),
                                        roundf((newImageSize.height-firstImage.size.height)/2))];
    [secondImage drawAtPoint:CGPointMake(roundf((newImageSize.width-secondImage.size.width)/2),
                                         roundf((newImageSize.height-secondImage.size.height)/2))];
    image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    return image;
}

但在我的结果图像中,topImagesecondImageview.image变大了。

我的视图看起来像(合并前):

合并前的图像

合并后我的结果图像(顶部图像变大):

合并后的图像

如何合并这些图像而不secondImageview会变大?

4

1 回答 1

0

我通过以下代码解决了我的问题

UIGraphicsBeginImageContextWithOptions(mainImageview.bounds.size, mainImageview.opaque, 0.0);
[self.mainImageview.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *resultingImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
于 2014-11-03T07:22:18.917 回答