zoukankan      html  css  js  c++  java
  • 【代码笔记】iOS-多张图片合成一张

    代码:

     

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

     

  • 相关阅读:
    Java 面试 --- 3
    Java 面试-- 1
    面试之痛 -- 二叉树 前序 中序 后序
    java 事务
    深入理解mybatis
    hibernate
    mybatis 原理
    spring 原理
    spring aop
    spring 事务
  • 原文地址:https://www.cnblogs.com/yang-guang-girl/p/5197099.html
Copyright © 2011-2022 走看看