2014-11-01 79 views
1

我有两个包含两个不同图像的imageView。我的firstImageview有主图像,然后我添加了一个更多的imageview作为firstImageview的子视图,如[firstImageview addSubView:secondImageview]。我需要这个在一个单一的形象。将两幅图像合并为单幅图像,然后顶部图像在ios sdk中变大

我使用下面的代码(它工作顺利):

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

但在我resultedImage,topImage secondImageview.image变大。

我的观点看起来像(前合并):

image prior to merge

我造成的图像合并后(上面的图像变大):

image after merge

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

回答

0

我解决我的问题,通过下面的代码

UIGraphicsBeginImageContextWithOptions(mainImageview.bounds.size, mainImageview.opaque, 0.0); 
[self.mainImageview.layer renderInContext:UIGraphicsGetCurrentContext()]; 
UIImage *resultingImage = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 
相关问题