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

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

作者: 其实你懂De | 来源:发表于2018-07-06 12:11 被阅读43次

    为什么写这篇文章,前几天产品提了这样的需求,扫一扫当前页面并且将扫一扫的图片截图到下一页,并附上当前时间。有人说这很好做啊,扫描成功同时拍照,然后图片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, [[UIScreen mainScreen] scale]);//图形以选项开始图像上下文
        [view.layer renderInContext:UIGraphicsGetCurrentContext()];/**渲染属性和方法。* * /
    /*将接收器及其子处理器呈现为“ctx”。这个方法
    *从图层树直接渲染。在坐标空间中呈现的层。
    */
        UIImage * img = UIGraphicsGetImageFromCurrentImageContext();//*图像从当前图像上下文获取图像
        UIGraphicsEndImageContext();//结束图像上下文
        return img;
    }
    
    好了,合并成Image之后再转成NSData就可以上传自己服务器了,不会上传的图片,可以看看前几篇写的图片上传服务器。希望对大家有所帮助吧!告辞! 233.png

    相关文章

      网友评论

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

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