美文网首页
iOS 将ImageView上的控件合成一张Image

iOS 将ImageView上的控件合成一张Image

作者: 小小小Lucky | 来源:发表于2019-08-21 23:23 被阅读0次

    iOS 将ImageView上的控件合成一张Image

     

    其实你懂De 关注

    2018.07.06 12:11* 字数 221 阅读 736评论 0喜欢 0

    为什么写这篇文章,前几天产品提了这样的需求,扫一扫当前页面并且将扫一扫的图片截图到下一页,并附上当前时间。有人说这很好做啊,扫描成功同时拍照,然后图片UIImageView上放上UILable控件不就可以吗?是的想法是对的,但是需要将UIImageView和UILabel两个控件合成一张UIImage ,这样才能以二进制文件流格式传给后台,这才是关键。扫一扫和拍照时进行,这些功能都是大家比较常见的功能,我就不附代码了。

    首先看下app端的效果(扫一扫之后的部分页面)

    6D609BD9-F92C-4AFB-AF21-C7D00F25488E.png

    这是怎么写的大家都知道了,没什么可说的。关键的时候到了,我们请求到的图片也要和现在一样就是把当前时间也需要传上去,也就是在网页访问图片也是这种效果:

    5EE7CBC1-B274-4EA2-B85D-4AF78A51D419.png

    是的就这种效果,这时候也就是前边提到的,要将ImageView上的控件都变成Image这样我们就可以传给后台了。代码不多。

    //将ImageView上的控件合成image用于服务器上传//这个方法就是讲ImageView控件画在上面(自己的理解,不懂的可以去看看API)

    - (UIImage*)imageWithView:(UIImageView*)view{

    UIGraphicsBeginImageContextWithOptions(view.bounds.size, view.opaque, [[UIScreenmainScreen] scale]);//图形以选项开始图像上下文

    [view.layer renderInContext:UIGraphicsGetCurrentContext()];/**渲染属性和方法。* * /

    /*将接收器及其子处理器呈现为“ctx”。这个方法

    *从图层树直接渲染。在坐标空间中呈现的层。

    */

    UIImage* img =UIGraphicsGetImageFromCurrentImageContext();//*图像从当前图像上下文获取图像

    UIGraphicsEndImageContext();//结束图像上下文returnimg;

    }

    好了,合并成Image之后再转成NSData就可以上传自己服务器了,不会上传的图片,可以看看前几篇写的图片上传服务器。希望对大家有所帮助吧!告辞!

    相关文章

      网友评论

          本文标题:iOS 将ImageView上的控件合成一张Image

          本文链接:https://www.haomeiwen.com/subject/tlgwsctx.html