需求:我们要将非固定的文本、图片等信息合成到一张图片上,例如我们要做一个分享的功能,有一张底图,在这底图上我们要把用户的头像和昵称放上去。这里我们用到Quart2D绘图之UIGraphicsBeginImageContextWithOptions 图形上下文的功能。

1、在指定图片上添加另一张图片(被添加者我们称之为水印)

+ (UIImage *)pq_WaterImageWithImage:(UIImage *)image waterImage:(UIImage *)waterImage waterImageRect:(CGRect)rect{//1.获取图片//2.开启上下文UIGraphicsBeginImageContextWithOptions(image.size, NO, 0);//3.绘制背景图片[image drawInRect:CGRectMake(0, 0, image.size.width, image.size.height)];//绘制水印图片到当前上下文[waterImage drawInRect:rect];//4.从上下文中获取新图片UIImage * newImage = UIGraphicsGetImageFromCurrentImageContext();//5.关闭图形上下文UIGraphicsEndImageContext();//返回图片return newImage;
}

注意这里的rect需要输入像素坐标

2、把指定文本合成到图片上

+ (UIImage *)pq_WaterImageWithImage:(UIImage *)image text:(NSString *)text textPoint:(CGPoint)point attributedString:(NSDictionary * )attributed{//1.开启上下文UIGraphicsBeginImageContextWithOptions(image.size, NO, 0);//2.绘制图片[image drawInRect:CGRectMake(0, 0, image.size.width, image.size.height)];//添加水印文字[text drawAtPoint:point withAttributes:attributed];//3.从上下文中获取新图片UIImage * newImage = UIGraphicsGetImageFromCurrentImageContext();//4.关闭图形上下文UIGraphicsEndImageContext();//返回图片return newImage;}

3、剪切指定图片

+ (nullable UIImage *)pq_ClipCircleImageWithImage:(nullable UIImage *)image circleRect:(CGRect)rect{//1、开启上下文UIGraphicsBeginImageContextWithOptions(image.size, NO, 0);//2、设置裁剪区域UIBezierPath * path = [UIBezierPath bezierPathWithOvalInRect:rect];[path addClip];//3、绘制图片[image drawAtPoint:CGPointZero];//4、获取新图片UIImage * newImage = UIGraphicsGetImageFromCurrentImageContext();//5、关闭上下文UIGraphicsEndImageContext();//6、返回新图片return newImage;
}

具体的使用请参照我下一篇博客
我是磊怀 2849765859 是我的QQ,联系我。

iOS 图片合成(一)相关推荐

  1. iOS图片合成————(拍照换发)

    一个简单的换发小程序,可以实现拍照,移动发型,放大缩小发型. 如图: .h中实现: #import <UIKit/UIKit.h>@interface ChangeHairVC : UIV ...

  2. IOS 绘图 bitmap 滤镜 图片合成

    CGSize size = CGSizeMake(800, 800);UIGraphicsBeginImageContextWithOptions(size, NO, 1);//1.获取bitmap上 ...

  3. iOS GIF合成有透明通道图片重叠问题

    iOS GIF合成有透明通道图片重叠问题 项目中需要用到合成gif, 如果图片含有透明通道, 则会出现重叠现象, 设置 kCGImagePropertyGIFHasGlobalColorMap 为tr ...

  4. ios 图片自动轮播

    ios 图片自动轮播 #import "NYViewController.h"#define kImageCount 5@interface NYViewController () ...

  5. 小猿圈web前端简述canvas如何实现二维码和图片合成

    你经常看到活动海报什么的,上都是有各种宣传文案以及二维码形成的,你知道怎么用canvas实现二维码和图片合成,下面小猿圈Linux讲师为你详细介绍一下canvas如何实现二维码和图片合成的. 使用ur ...

  6. Android 图片合成:添加蒙板效果 不规则相框 透明度渐变效果的实现

    Android 图片合成:添加蒙板效果 不规则相框 透明度渐变效果的实现 暂时还未有时间开发这效果,所以先贴出来. 先贴一张效果图,这是一张手机截屏: 左上方的风景图:背景图片 右上方的人物图:前景图 ...

  7. 图片合成gif_使用在线图片工具处理静态和动态图片的技巧

    图片一般分为两种,一种是静态图片,常用的图片格式有jpg,png等.处理静态图片可用用手机自己带的图片处理工具处理,也能够使用线上的在线作图工具来进行操作,比如找图设计,懒设计,稿定设计等设计类型的网 ...

  8. 图片合成gif_谈谈有哪些好用的制作GIF的方式

    今天咱们谈谈计算机上几种制作 GIF 的方式,而且他们都是免费的,但可能需要你会一点计算机操作技能.本文会简单的介绍一些常用的GIF软件,比较一下功能和上手程度.常见的GIF录制方式大概有这么几种方式 ...

  9. php 图片合成,PHP中多张图片合成一张图片例子

    今天分享一段PHP中多张图片合成一张图片的代码实现,我们可以在图片合成,水印,九宫格等需求下使用到类似这样的图片合成效果,下面一起来看看例子吧. 今天分享一段PHP中多张图片合成一张图片的代码实现,我 ...

最新文章

  1. vconsole 调试 查看LOG VUE在手机上调试 手机查看h5的日志
  2. li 在 UL 中居中均匀显示
  3. ASP.NET 实践:写入 Cookie
  4. java记事本应用程序_Java教程:使用记事本编写运行Java程序
  5. Windows上安装Mac OS虚拟机
  6. element ui 多个子组件_ElementUI 技术揭秘(2) 组件库的整体设计
  7. 浅析RTB和RTA(二)
  8. python filter map区别_Python:map()、reduce()、filter()的区别
  9. halcon学习之图像分割
  10. ansible安装包和管理 playbook相关
  11. (转)DeepMind 的下一场博弈:用机器学习颠覆资产管理?
  12. 高阶篇:4.2.5)DFMEA建议措施及后续完备
  13. Hadoop报错Permissions incorrectly set for dir /tmp/hadoop-LeiHanhan/nm-local-dir/filecache, should be
  14. 升级 MacOS 到最新版本 macOS Ventura 13.0 后,Parallels Desktop 不可用
  15. 湖南大学大学计算机基础教程,湖南大学计算机基础试题题库及答案(26页)-原创力文档...
  16. 巴比特 | 元宇宙每日必读:回顾数字藏品的2022,从高歌猛进到急速刹车,明年能否等到“风”来?...
  17. 2022 IEEE Fellow:AI华人之光
  18. SEO工作,不要三人成虎!
  19. P2404 自然数的拆分问题(洛谷)
  20. Android体系结构

热门文章

  1. 单阶段目标检测重要论文总结
  2. 进博抢先看 | 辉瑞、默沙东、强生、GSK、西门子医疗、蔡司、霍尼韦尔、江森自控、阿迪达斯、迪卡侬、乐高等将亮相第五届进博会...
  3. BBeditV10.0的注册码
  4. python strip 函数用法及介绍
  5. docker-anpine镜像介绍
  6. 一周市场摘抄20210118
  7. matlab角点检测fast_AGAST角点检测算法:比FAST和FAST-ER更快
  8. Mysql---查询进阶(二)
  9. 2022五千元笔记本电脑推荐
  10. 100元 50元 20元 10元 5元 1元 标准尺寸