IOS图片等比缩放合成Demo代码

//图片等比缩放合成并处于中心位置显示
- (UIImage *)addImage:(UIImage *)image1 toImage:(UIImage *)image2 {
    CGSize miSize = self.viewImage.frame.size;
    CGFloat miAspectRatio = miSize.width / miSize.height;
    CGFloat img2AspectRatio = image2.size.width / image2.size.height;

    UIGraphicsBeginImageContextWithOptions(miSize, NO, 0.0f);
    CGFloat w2 = miSize.width;
    if (img2AspectRatio < miAspectRatio) {
        w2 = miSize.width * (img2AspectRatio/miAspectRatio);
    }
    CGFloat h2 = w2 / img2AspectRatio;;
    CGFloat x2 = (miSize.width - w2)/2.0f;
    CGFloat y2 = (miSize.height - h2)/2.0f;
    [image2 drawInRect:CGRectMake(x2, y2, w2, h2)];
    
    CGFloat img1AspectRatio = (w2 / img2AspectRatio)/h2;
    CGFloat w1 = w2 * img1AspectRatio;
    if (img1AspectRatio < img2AspectRatio) {
        w1 = w2 * (img1AspectRatio/img2AspectRatio);
    }
    CGFloat h1 = h2 * img1AspectRatio;
    CGFloat x1 = (w2 - w1)/2.0f + x2;
    CGFloat y1 = (h2 - h1)/2.0f + y2;
    [image1 drawInRect:CGRectMake(x1, y1, w1, h1)];

    UIImage *resultingImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
//    NSString *path = [[NSHomeDirectory()stringByAppendingPathComponent:@"Documents"]stringByAppendingPathComponent:@"image.png"];
//    [UIImagePNGRepresentation(resultingImage) writeToFile:path atomically:YES];
    return resultingImage;
}

 

猜你喜欢

转载自lancehan.iteye.com/blog/2018858