多张照片合成1张

代码:

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

    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];

    //imgPointArray中的数据为图片在合成后的图片后的x,y坐标。
    NSArray *imgPointArray = [[NSArray alloc] initWithObjects:
                              @"10", @"10",
                              @"20", @"20",
                              @"30", @"30",
                              @"40", @"40",
                              @"50", @"50",
                              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;
    }
}
时间: 2024-10-10 17:12:39

多张照片合成1张的相关文章

Core Graphics 学习——1 两张图合成为一张图

-(UIImage *)MergeTwoImage { UIImage * img =[UIImage imageNamed:@"icon"]; CGSize sz = img.size; UIGraphicsBeginImageContextWithOptions(CGSizeMake(sz.width*2, sz.height), NO, 0); [img drawAtPoint:CGPointMake(0, 0)]; [img drawAtPoint:CGPointMake(sz

使用Windows绘图合成多张图

[使用Windows绘图合成多张图] 1.点击图片右键选择打开方式→选择画图工具打开图片. 2.这时图片可以改变外框大小,将外框尽量弄大些. 3.点击编辑选中下拉菜单中的粘贴来源,选择需要增加进来的图片. 4.将合成好的图片保存. 参考:http://wenku.baidu.com/link?url=6svEyBPmNwxGE89ztwco_DCsIWNSEUyNSbLs4pNCfGExfjth_3S-b9dBxudGZH0QXeGuhevYoP157OS_mn4fYXi6PRfsm57KrvN

把二维码的图片和文字结合到一个背景图片上,合成一张图

public ActionResult HeCheng(string name) { string imgFullPath = HttpContext.Server.MapPath("~/images/djq_bg.jpg"); string imgFullPathwx = HttpContext.Server.MapPath("~/images/wx_bg.jpg"); using(Image bmp = Bitmap.FromFile(imgFullPath))

js多张图片合成一张图,canvas(海报图,将二维码和背景图合并) -----vue

思路:vue中图片合并 首先准备好要合并的背景图,和请求后得到的二维码, canvas画图,将两张背景图和一张二维码用canvas画出来, 将canvas再转为img 注意canvas和图片的清晰图和图片的尺寸位置 开始时canvas是隐藏的,两张背景图时显示的,当canvas画完后再转为img的时候,隐藏canvas和背景图,显示canvas转完的图片(也就是合并后的图片) 这个适配方式可能有些瑕疵,所以会加了很多设备的判断 代码: html      <div class="wap-p

关于使用TexturePackerGUI将图片合成和用Python Imaging Library将图片分解

写这片博客前,我在学习cocos2d-x,正在做一个微信打飞机的项目,为了将飞机图片资源合成为一张,使用到了TexturePackerGUI软件,在这介绍使用方法,后面是将这张合成图片分解成原来图片的方法. 合成 软件下载地址 破解完成之后就开始使用,对里面控件不熟悉的请参考这篇文章,虽然看起来复杂,但是只要把你所有需要合成的资源全部移到右边的框内就行了,如下图(蓝色的地方): 好了,把图片全部拖进去之后,就可以开始导出了,选择菜单栏中的Publish,在此之前,请在左边的DataFile中设置

ImageMagick两个版本对imagick合成图片的一点差异

第一次听说imagick,然后使用,强大到任性,任性到手册上资料也少,合成一张图毕竟还是很容易的. 本地执行完全OK,到了服务器上,没有任何输出,一点小问题,来源于版本. /** * function: 合成图片 * @param string $output_url 图片保存路径 * @param string $img_type 图片保存类型 * @param integral $line_num 每行显示图片数量 * @param array $logo_info 每张待合成图片的信息(要

ps图片合成教程

ps合成功能同样也是很多ps爱好者经常用到的,ps合成可以把二张不同的图片,甚至是多张都合成一张图像,只保留每张图片里面我们想要的,比如给人物换个风景,给照片加个人,通常用于想把某个东西融入到一张照片里,这就需要用到ps合成,真正把ps合成功能做好的,还需要搭配ps抠图技巧,这个之前笔者有说过详细的教程,新手可去了解,今天我们就来说说ps怎么把两张图片合成一张,接下来请看ps图片合成教程. PS两张图片合成一张换背景效果 如上图,上面可是两张照片换背景合成的,怎么样,很漂亮吧.那么给图片换背景如

利用开源软件 Hugin 实现照片的景深合成

利用开源软件 Hugin 实现照片的景深合成 本文主要参考了下面的文章:http://macrocam.blogspot.jp/2013/09/using-hugin-for-focus-stacking.html 根据我自己的理解做了少量的增删.首先感谢原作者. Hugin 是一个很出名的全景照片拼接软件.但其实除了全景拼接功能外, hugin 还提供了一系列的命令行工具,可以用来操纵和融合多张图像,实现高动态图像(HDR).景深合成(Focus Stacking)等各种高级功能.本文就来介绍

将两张图片合成一张

CreateTime--2017年8月24日17:21:26 Author:Marydon 如何将两张图片合成一张 参考链接:http://jingyan.baidu.com/article/63acb44aef083161fcc17e29.html 1.选择其中一张图片,单击右键,选择“打开方式”下的“画图”工具: 2.打开后,鼠标放在图片的拉伸点上进行拖拽,使画布变大,足以容纳第二张图片: 3.单击“画图”工具中“粘贴”项下面的“粘贴来源”,在弹出的“粘贴来源”选项框中选择我们要合二为一的另