Объединение двух изображений в одно изображение, после чего верхнее изображение становится больше в ios sdk

У меня есть два изображения, содержащие два разных изображения. У моего firstImageview есть основное изображение, затем я добавил еще одно изображение в качестве подпредставления firstImageview, например [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;
}

Но в моем полученном изображении topImage secondImageview.image становится больше.

Мой вид выглядит так (до слияния):

изображение до слияния

Мое полученное изображение после слияния (верхнее изображение становится больше):

изображение после слияния

Как я могу объединить эти изображения, чтобы secondImageview не стало больше?


person IKKA    schedule 01.11.2014    source источник


Ответы (1)


Я решил свою проблему, следуя коду

UIGraphicsBeginImageContextWithOptions(mainImageview.bounds.size, mainImageview.opaque, 0.0);
[self.mainImageview.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *resultingImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
person IKKA    schedule 03.11.2014