iOS 图片合成(一)
需求:我们要将非固定的文本、图片等信息合成到一张图片上,例如我们要做一个分享的功能,有一张底图,在这底图上我们要把用户的头像和昵称放上去。这里我们用到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 图片合成(一)相关推荐
- iOS图片合成————(拍照换发)
一个简单的换发小程序,可以实现拍照,移动发型,放大缩小发型. 如图: .h中实现: #import <UIKit/UIKit.h>@interface ChangeHairVC : UIV ...
- IOS 绘图 bitmap 滤镜 图片合成
CGSize size = CGSizeMake(800, 800);UIGraphicsBeginImageContextWithOptions(size, NO, 1);//1.获取bitmap上 ...
- iOS GIF合成有透明通道图片重叠问题
iOS GIF合成有透明通道图片重叠问题 项目中需要用到合成gif, 如果图片含有透明通道, 则会出现重叠现象, 设置 kCGImagePropertyGIFHasGlobalColorMap 为tr ...
- ios 图片自动轮播
ios 图片自动轮播 #import "NYViewController.h"#define kImageCount 5@interface NYViewController () ...
- 小猿圈web前端简述canvas如何实现二维码和图片合成
你经常看到活动海报什么的,上都是有各种宣传文案以及二维码形成的,你知道怎么用canvas实现二维码和图片合成,下面小猿圈Linux讲师为你详细介绍一下canvas如何实现二维码和图片合成的. 使用ur ...
- Android 图片合成:添加蒙板效果 不规则相框 透明度渐变效果的实现
Android 图片合成:添加蒙板效果 不规则相框 透明度渐变效果的实现 暂时还未有时间开发这效果,所以先贴出来. 先贴一张效果图,这是一张手机截屏: 左上方的风景图:背景图片 右上方的人物图:前景图 ...
- 图片合成gif_使用在线图片工具处理静态和动态图片的技巧
图片一般分为两种,一种是静态图片,常用的图片格式有jpg,png等.处理静态图片可用用手机自己带的图片处理工具处理,也能够使用线上的在线作图工具来进行操作,比如找图设计,懒设计,稿定设计等设计类型的网 ...
- 图片合成gif_谈谈有哪些好用的制作GIF的方式
今天咱们谈谈计算机上几种制作 GIF 的方式,而且他们都是免费的,但可能需要你会一点计算机操作技能.本文会简单的介绍一些常用的GIF软件,比较一下功能和上手程度.常见的GIF录制方式大概有这么几种方式 ...
- php 图片合成,PHP中多张图片合成一张图片例子
今天分享一段PHP中多张图片合成一张图片的代码实现,我们可以在图片合成,水印,九宫格等需求下使用到类似这样的图片合成效果,下面一起来看看例子吧. 今天分享一段PHP中多张图片合成一张图片的代码实现,我 ...
最新文章
- vconsole 调试 查看LOG VUE在手机上调试 手机查看h5的日志
- li 在 UL 中居中均匀显示
- ASP.NET 实践:写入 Cookie
- java记事本应用程序_Java教程:使用记事本编写运行Java程序
- Windows上安装Mac OS虚拟机
- element ui 多个子组件_ElementUI 技术揭秘(2) 组件库的整体设计
- 浅析RTB和RTA(二)
- python filter map区别_Python:map()、reduce()、filter()的区别
- halcon学习之图像分割
- ansible安装包和管理 playbook相关
- (转)DeepMind 的下一场博弈:用机器学习颠覆资产管理?
- 高阶篇:4.2.5)DFMEA建议措施及后续完备
- Hadoop报错Permissions incorrectly set for dir /tmp/hadoop-LeiHanhan/nm-local-dir/filecache, should be
- 升级 MacOS 到最新版本 macOS Ventura 13.0 后,Parallels Desktop 不可用
- 湖南大学大学计算机基础教程,湖南大学计算机基础试题题库及答案(26页)-原创力文档...
- 巴比特 | 元宇宙每日必读:回顾数字藏品的2022,从高歌猛进到急速刹车,明年能否等到“风”来?...
- 2022 IEEE Fellow:AI华人之光
- SEO工作,不要三人成虎!
- P2404 自然数的拆分问题(洛谷)
- Android体系结构