IOS开发入门之iOS图片拼接,图片文字合成总结
凌雪 2018-11-09 来源 :网络 阅读 2162 评论 0

摘要:本文将带你了解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频道!

本文由 @凌雪 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 1
看完这篇文章有何感觉?已经有1人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程