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

     

  • 相关阅读:
    git 看不到别人创建的远程分支
    win10 系统开始菜单没反应的解决方法
    Fiddler 抓取 https 设置详解(图文)
    MongoDB + Express + art-template 项目实例-博客管理系统
    使用 XAML 格式化工具:XAML Styler
    [WPF] 在单元测试中使用 Prism 的 EventAggregator,订阅到 ThreadOption.UIThread 会报错
    分别使用 Python 和 Math.Net 调用优化算法
    在 Azure 上执行一些简单的 python 工作
    Linux默认路由与直连路由
    网站使用域名访问而禁止ip访问的配置
  • 原文地址:https://www.cnblogs.com/yang-guang-girl/p/5197099.html
Copyright © 2011-2022 走看看