iOS把两张图片合成一张图片

作者: LeeYZ | 来源:发表于2016-01-28 20:20 被阅读9057次

0x00 步骤

  1. 先读取两张图片把创建出CGImageRef
  2. 创建上下文画布
  3. 把图片依次画在画布指定位置上
  4. 从上下文中获得合并后的图片
  5. 关闭上下文
  6. 释放内存

0x01 代码实现

- (void)composeImg {
    UIImage *img = [UIImage imageNamed:@"0.png"];
    CGImageRef imgRef = img.CGImage;
    CGFloat w = CGImageGetWidth(imgRef);
    CGFloat h = CGImageGetHeight(imgRef);
    
    //以1.png的图大小为底图
    UIImage *img1 = [UIImage imageNamed:@"1.png"];
    CGImageRef imgRef1 = img1.CGImage;
    CGFloat w1 = CGImageGetWidth(imgRef1);
    CGFloat h1 = CGImageGetHeight(imgRef1);
    
    //以1.png的图大小为画布创建上下文
    UIGraphicsBeginImageContext(CGSizeMake(w1, h1));
    [img1 drawInRect:CGRectMake(0, 0, w1, h1)];//先把1.png 画到上下文中
    [img drawInRect:CGRectMake(100, 100, w, h)];//再把小图放在上下文中
    UIImage *resultImg = UIGraphicsGetImageFromCurrentImageContext();//从当前上下文中获得最终图片
    UIGraphicsEndImageContext();//关闭上下文
    
    NSString *path = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];
    NSString *filePath = [path stringByAppendingPathComponent:@"01.png"];
    [UIImagePNGRepresentation(resultImg) writeToFile:filePath atomically:YES];//保存图片到沙盒

    CGImageRelease(imgRef);
    CGImageRelease(imgRef1);
}

0x10 效果图

0.png 1.png 01.png

相关文章

  • iOS把两张图片合成一张图片

    0x00 步骤 先读取两张图片把创建出CGImageRef 创建上下文画布 把图片依次画在画布指定位置上 从上下文...

  • 如何用PHP合成两张图片?

    前言:业务需要,进行两张图片的合成。 PHP图片合成类 调用方法:

  • #30天专注橙长计划#ps能力的提高Day18

    合成图 要将一个地方两张角度不同图片合成一张图片,首先就是要以晚图为基准调整白天图片的角度。 调整角度是需要特别有...

  • 图片合成与添加文字

    一. 图片合成 确认两张素材图片的像素尺寸,决定合成方法(拼接/叠加),根据方法,计算出合成新图片的尺寸。 将图...

  • 长着恐龙嘴巴的苹果,你敢吃吗

    本篇水果恶搞合成教程属于基础级别的合成方法,主要用到了蒙版把两张图片合成一张,难度不算太大,喜欢恶搞的同学来学习吧...

  • iOS开发--两张图片合成

    在iOS开发过程中 有时候需要对几张图片进行合成 UIImage * image1 = [UIImage imag...

  • 两张图片合成一张

    //案例三:输出->图片叠加->新图片intmain(intargc,char** argv ){ //注意事项...

  • iOS下载两张图片再合成图片

    对于图片下载有很多方法,下载图片再合成,主要是需要监听到图片下载完成。可以使用GCD的信号量或者使用GCD组都比较...

  • Unity中实现贴图融合案例-墙壁上留下弹痕

    原理:实现两张图片的融合,即将其中一张图片的的像素点放到另外一张图片上。 1、需要两张图片,一张墙壁的图片,一张弹...

  • 弹孔融合

    原理:实现两张图片的融合,即将其中一张图片的的像素点放到另外一张图片上。 这是俩张图片资源, 将两张图片的属性改下...

网友评论

  • Hunter琼:怎么把2张图合成,链接在一起 不是以那张为底图???
  • mmmickychiang7:如果添加的是旋转的小图 那么该如何写呢?
    你的可爱猪队友:我也遇到了这个问题.如果是经过旋转缩放后的图片,再合成上去,缩放旋转和位置都不对?

    你解决了这个问题了吗?
  • raymondchans:不太明白为什么要取出对象CGImageRef,然后根本没用到,最后又把他释放。是否多余代码?
    Kely_Developer:@Harvey002 我的也是
    Harvey002:@LeeYZ 这句话害我崩溃了。
    LeeYZ:@raymondchans 获得宽高用的,其实可以在获得后就释放掉,我只是习惯写下面
  • 玉舒:合并的图片格式有要求吗
    LeeYZ:@小小少爷 能读取出来应该是都可以的
  • mark666:什么需求,没看懂
    mark666: @LeeYZ (⊙o⊙)哦,谢谢你
    LeeYZ:@mark666 不好意思,刚在手机上看错了,这个就是如果想在一张图片的指定位置替换成另一张图片,比如想把脸遮住,只要知道坐标就可以用这个方法实现
    mark666: @LeeYZ 你这不是合并吗,跟你这个需求???

本文标题:iOS把两张图片合成一张图片

本文链接:https://www.haomeiwen.com/subject/fzrjkttx.html