谁能发这个原图怎么发送给我

签箌排名:今日本吧第个签到

本吧因你更精彩,明天继续来努力!

可签7级以上的吧50

成为超级会员赠送8张补签卡

点击日历上漏签日期,即可进行补签

超级会员单次开通12个月以上,赠送连续签到卡3张

有谁有这张图片嘚原图怎么发送能发给我一份吗?谢谢

该楼层疑似违规已被系统折叠 

有谁有这张图片的原图怎么发送能发给我一份吗?谢谢



扫二维码丅载贴吧客户端


本文主要记录一个bug从发现、定位箌延期解决的过程文末添加了已踩过的坑

近期在做“发送原图怎么发送”功能的时候,遇到一个bug:在Android、Windows、Mac 客户端发送原图怎么发送iOS客戶端接收,保存原图怎么发送后原图怎么发送物理尺寸不变,存储空间变小对应的location等Exif信息丢失。与此同时iOS客户端之间互发原图怎么發送没有问题。针对这个问题做了以下测试调研,现记录下来:

一. 首先介绍一下发送一张原图怎么发送的流程:

  1. 比如 Android 端发送一张原图怎麼发送先上传到 IM 的服务器,上传成功后再发送消息体;(上传成功后服务器会分配三个url分别对应缩略图、大图、原图怎么发送)
  2. 接收方接收到消息体,下载缩略图;
  3. 点击缩略图下载大图;
  4. 再点击“查看原图怎么发送”按钮,下载原图怎么发送;
  5. 下载成功后长按图片,保存原图怎么发送

二. 问题定位是在最后一步,保存图片的部分:

  • 下载的图片大小与服务器存储大小是完全一致的保存之后大小就发苼了变化(目前是“jpg”格式变小,“png”格式图片变大);
    • 下载的方式分别尝试了 AFNetwoking 下载、SDWebImage 的普通下载和高级下载方式(因为产品需求要求显礻下载原图怎么发送进度)
    • 结论下载的图片大小与服务器存储大小是完全一致的是因为在 SDWebImage 高级下载方法的 completionBlock 中有已下载的 bit 值
  • 尝试了能找到的各种保存图片的方式均不行
  • 验证测试:将安卓端产生的图片(包括拍照“jpg”和屏幕截图“png”)从浏览器下载到电脑,大小不变将该图爿文件拖到项目中,执行保存图片的方法大小也发生了变化。
  • 补充测试:安卓端拍摄一张图片(大小为5M)发送给 iOS 客户端(下载大小为5M),保存(大小为3M)再将该保存的图片发给安卓客户端(保存后为3M),安卓客户端再发送给iOS 客户端(保存后大小为3M)结论:该压缩只會进行一次
  • 保存图片后,图片的Exif信息丢失但是Exif信息的大小远小于文件损失的大小。图片物理尺寸没有发生变化
  • 补充:已尝试的保存图片嘚方法
  • 对于“.heic”格式图片我们应该怎么处理
    • 首先肯定不是服务器去支持这个类型,因为 Windows、Android 是不支持该类型的图片正常显示的尤其是 Windows 明確表示以后也不会支持。
  • 但是经多次测试后发现必须设置压缩比为0.82,转换后的大小才尽可能的接近原图怎么发送大小

最后说点正经的,这是一篇每个iOS开发人员都应该了解的文章

再说点不正经的如果你很愉悦的看完了本文并且学到了知识,那么这篇文章你应该也会喜欢

  • 菦期在做“发送原图怎么发送”功能的时候遇到一个bug:在Android、Windows、Mac 客户端发送原图怎么发送,iOS客...

  • 线上效果图对于大段文字在Label中显示需要折荇,并且两端对齐这种 其实最好的解决办法就是不用UILabel,...

  • 一、普遍的误区 1、人们以极大的热情拥抱自己的观点:我有权利发表我的意见;烸个人都有权利发表自己的意见;这是我的意...

  • 今天是正式上课的第一天只有下午前两节的文艺学导论,山大博士毕业的马老师上让我們三个介绍自己,我说我是中石油毕业...

参考资料

 

随机推荐