你的位置:首页 > 操作系统

[操作系统]【代码笔记】多张图片合成一张


代码:

 

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
复制代码