摘要:本文将带你了解IOS开发入门iOS图片拼接,图片文字合成总结,希望本文对大家学IOS有所帮助。
本文将带你了解IOS开发入门iOS图片拼接,图片文字合成总结,希望本文对大家学IOS有所帮助。
iOS图片拼接,图片文字合成总结
一、注意事项:项目报错,图片模糊,内存问题,离屏渲染
二、以下是合成的步骤:
1、先读取两张图片把创建出CGImageRef
2、创建上下文画布
3、把图片依次画在画布指定位置上
4、从上下文中获得合并后的图片
5、关闭上下文
6、释放内存
7、两张图片合成:
(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);
}
图片与文字合成:
(UIImage *)CSImage:(UIImage *)img AddText:(NSString *)text
{
UIImageView *view = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, img.size.width, img.size.height)];
view.image = img;
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0,0,0,0)];
[label setNumberOfLines:0];
label.lineBreakMode = UILineBreakModeWordWrap;
NSString *s = text;
UIFont *font = [UIFont fontWithName:@"Arial" size:12];
CGSize size = CGSizeMake(320,2000);
CGSize labelsize = [s sizeWithFont:font constrainedToSize:size lineBreakMode:UILineBreakModeWordWrap];
label.frame = CGRectMake(0,0, labelsize.width, labelsize.height);
[view addSubview:label];
return [self convertViewToImage:view];
}
-(UIImage*)convertViewToImage:(UIView*)v
{
CGSize s = v.bounds.size;
UIGraphicsBeginImageContextWithOptions(s, NO, [UIScreen mainScreen].scale);
CGContextRef context = UIGraphicsGetCurrentContext();
[v.layer renderInContext:context];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
v.layer.contents = nil;
return image;
}
图片模糊问题,解决方法:1本身图片有问题,2图片压缩的太狠了,3使用WithOptions函数
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之IOS频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号