美文网首页
相册选择图片并给图片添加水印后上传到服务器

相册选择图片并给图片添加水印后上传到服务器

作者: DestinyFighter_ | 来源:发表于2015-12-03 14:47 被阅读930次

    �记录一下最近在做的项目中的一个功能,功能需求如下:

    功能需求

    产品要求是用户可以从手机相册里选择一张照片,然后得到这张照片的拍摄时间和拍摄地点,然后以文字水印的方式添加到照片上,然后上传到服务器.界面的问题就不做说明了,主要说下业务逻辑.

    1.打开手机相册,并选取图片.首先要遵守协议:UIImagePickerControllerDelegate 和 UINavigationControllerDelegate.

    打开相册,选取照片

    2.然后实现完成选择图片的代理方法,在此方法里获取图片的信息,地址这里获取到的是经纬度,需要进行反地理编码.

    完成选择图片

    取消选择图片的代理方法:

    取消选择图片

    3.因为图片的地址是异步获取的,因此我在这里添加了一个观察者来监视 address 的变化,如果获取不到地址则只打印日期.当然要记得在 dealloc 的时候把观察者移除.

    添加观察者

    4.由于手机拍摄的照片都比较大,一般2~3M,我们在这里做一个压缩图片的处理,方便后面快速上传图片到服务器.�以下代码的作用是等比例压缩.

    等比例压缩

    而我们产品的要求是上传图片的大小要保持在200K以内,因此我想到了一个动态压缩的方案,即根据图片的大小来动态改变压缩系数,将上面的代码换成如下代码:

    固定尺寸和大小压缩

    5.然后就是把获取到的图片信息以文字水印的形式显示在图片上,可以任意调整水印的位置,字体,颜色等.

    添加水印

    6.保存加过水印的图片到本地沙盒中,路径相同的文件会覆盖保存,后面上传的时候会通过路径找到相应文件.

    保存图片

    7.由于我这里还有一个删除选择过的图片的功能,因此还要有删除沙盒中文件的方法.

    8.以字典的形式将图片路径和文件名上传.

    上传图片

    工具类内网络请求封装方法如下:

    这样就上传成功了.

    最后上一张昨天拍的公司园区内一个土豪的座驾.

    相关文章

      网友评论

          本文标题:相册选择图片并给图片添加水印后上传到服务器

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