当前位置: 代码迷 >> Iphone >> 【代码札记】多张图片合成一张
  详细解决方案

【代码札记】多张图片合成一张

热度:373   发布时间:2016-04-25 05:23:08.0
【代码笔记】多张图片合成一张

代码:

 

RootViewController.m

 

复制代码
#import "RootViewController.h"@interface RootViewController ()@end@implementation RootViewController- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil{    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];    if (self) {        // Custom initialization    }    return self;}- (void)viewDidLoad{    [super viewDidLoad];    // Do any additional setup after loading the view.        NSArray *imgArray = [[NSArray alloc] initWithObjects:                         [UIImage imageNamed:@"1.jpg"],                         [UIImage imageNamed:@"2.jpg"],                         [UIImage imageNamed:@"3.jpg"],                         [UIImage imageNamed:@"4.jpg"],                         [UIImage imageNamed:@"5.jpg"],                        nil];        NSArray *imgPointArray = [[NSArray alloc] initWithObjects:                              @"10", @"10",                              @"10", @"25",                              @"30", @"15",                              @"30", @"50",                              @"20", @"80",                              nil];            BOOL suc = [self mergedImageOnMainImage:[UIImage imageNamed:@"1.jpg"] WithImageArray:imgArray AndImagePointArray:imgPointArray];        if (suc == YES) {         NSLog(@"Images Successfully Mearged & Saved to Album");     }     else {         NSLog(@"Images not Mearged & not Saved to Album");     }    }#pragma -mark -functions//多张图片合成一张- (BOOL) mergedImageOnMainImage:(UIImage *)mainImg WithImageArray:(NSArray *)imgArray AndImagePointArray:(NSArray *)imgPointArray{        UIGraphicsBeginImageContext(mainImg.size);        [mainImg drawInRect:CGRectMake(0, 0, mainImg.size.width, mainImg.size.height)];    int i = 0;    for (UIImage *img in imgArray) {        [img drawInRect:CGRectMake([[imgPointArray objectAtIndex:i] floatValue],                                   [[imgPointArray objectAtIndex:i+1] floatValue],                                   img.size.width,                                   img.size.height)];                i+=2;    }        CGImageRef NewMergeImg = CGImageCreateWithImageInRect(UIGraphicsGetImageFromCurrentImageContext().CGImage,                                                          CGRectMake(0, 0, mainImg.size.width, mainImg.size.height));        UIGraphicsEndImageContext();    if (NewMergeImg == nil) {        return NO;    }    else {        UIImageWriteToSavedPhotosAlbum([UIImage imageWithCGImage:NewMergeImg], self, nil, nil);        return YES;    }}- (void)didReceiveMemoryWarning{    [super didReceiveMemoryWarning];    // Dispose of any resources that can be recreated.}@end
复制代码

 

  相关解决方案