iOS:在图片中插入文字和图片(以二维码文字和条形码logo为例)

介绍一个图像里面嵌入图像、文字或者合并两张图像的思路。首先我们需要产生一个临时的画布,为其设置好大小,然后将目标图像、文字和原图像一起加入到这张画布上面。

在这里用二维码和条形码来举例


在条形码下方插入文字

假设我们已经有一张条形码的图片barCodeImage,并且打算将其转换为带文字的条形码图片:

CGSize size = CGSizeMake(barcodeImage.size.width,barcodeImage.size.height + 10); //比原图高一些以放置文字

UIGraphicsBeginImageContextWithOptions(size,NO,0.0);//初始化画布

[barCodeImage drawAtPoint:CGPointZero];//把条形码图片添加到画布中

CGContextRef context = UIGraphicsGetCurrentContext();//画布上下文

CGContextDrawPath(context,kCGPathStroke);

NSMutableParagraphStyle *textStyle = [[NSMutableParagraphStyle alloc]init];

textStyle.lineBreakeMode = NSLineBreakeModeWordWrapping;
textStyle.alignment = NStextAlignmentCenter;

NSString *text = @"990873074";
[text drawInRect:CGRectMake(0,size.height - 15,size.width,40),withAttributes:@{NSFontAttributeName:[UIFont systemFontOfSize:18],NSBacgroundColorAttributeName:[UIColor clearColor],NSParagraphStyleAttributeName:textStyle}];//绘制文字

UIImage *image = UIGraphicsGetImageFromCurrentContext();//将画布映射到图片对象
UIGraphicsEndImageContext();//关闭画布
barCodeImage = image;//赋值

和在条形码中加入文本类似,我们需要将二维码和logo图片绘制到画布中并将画布转换为新的图片对象。
假设我们有一张二维码图片对象QRCodeImage和一张logo图片对象logoImage:

CGSize size = CGSizeMake(QRCodeImage.size.width,QRCodeImage.size.width); 

UIGraphicsBeginImageContextWithOptions(size,NO,0.0);//初始化画布

[barCodeImage drawAtPoint:CGPointZero];//把条形码图片添加到画布中

CGContextRef context = UIGraphicsGetCurrentContext();//画布上下文

CGContextDrawPath(context,kCGPathStroke);

[QRCodeImage drawInRect:CGRectMake(0,0,size.width,size.width)];

[logoImage drawInRect:CGRectMake(size.width / 2 - 20,size.width / 2 - 20, 40, 40)];

UIImage *image = UIGraphicsGetImageFromCurrentContext();//将画布映射到图片对象
UIGraphicsEndImageContext();//关闭画布
QRCodeImage = image;//赋值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值