http://www.pmcaff.com/article?id=2000000000007505

做社交类产品明显绕不过微信这座大山,他的体验已经做到相当棒了,作为后来者不说要超过他,至少要达到他类似的体验。图片作为社交产品中非常重要的一个元素,非常具有表现力,图片既要让用户能看清楚,又能让发布图片的用户能快速的上传。

之前产品中图片直接原图上传,结果导致用户浏览图片时界面非常不流畅;后来修改为压缩后上传,又导致部分图片大图模糊;这两天决定研究下微信,看看他们是怎么做的,既能让朋友圈流畅,又能比较快速的发布朋友圈动态。

先上研究结果:

1.客户端发送图片时处理规则

1.1.除非用户主动选择发送原图外,所有的图片均需要经过本地先处理才能上传服务器端,处理规则如下

a,图片宽或者高均小于或等于1280时图片尺寸保持不变,但仍然经过图片压缩处理,得到小文件的同尺寸图片

b,宽或者高大于1280,但是图片宽度高度比小于或等于2,则将图片宽或者高取大的等比压缩至1280

c,宽或者高大于1280,但是图片宽高比大于2时,并且宽以及高均大于1280,则宽或者高取小的等比压缩至1280

d,宽或者高大于1280,但是图片宽高比大于2时,并且宽或者高其中一个小于1280,则压缩至同尺寸的小文件图片

研究方法如下

第一步:随意发一些不同类型的图片至朋友圈,有iphone6plus全景图,直接拍照的图片,从网站下载的小图片等,朋友圈发送成功后查看朋友圈大图并保存至本地,然后查看图片尺寸以及大小,结果如下。

a,原图 6000x4000  283kb》朋友圈下载图片 1280x852 17.49kb

b,原图 7900x4000  373kb》朋友圈下载图片 1280x648 13.43kb

c,原图 2448 × 3264  2.2m》朋友圈下载图片  960x1280 128kb

d,原图 7810 × 3074  6.8m》朋友圈下载图片  3252x1280 341kb

e,原图 800x24776    2.6m》 朋友圈下载图片  800x24776 1.31m

f, 原图 800 × 34776  5.6m》朋友圈下载图片  800x34776  1.35m

g,原图7810x3074   287kb》朋友圈下载图片 3252x1280 64.36kb

第一步测试得到初步结论:朋友圈发图片的规则与图片尺寸有关,与文件大小无关,关键字1280、图片宽高比

接着第二步,试着论证前一步结论,并细化具体规则

用ps制作一些纯色图片,这样得到的图片文件大小会比较小,基本上图片文件均小于500kb,按照之前的测试方式,仍然是发图片至朋友圈,然后下载对比原图

1.图片宽高均小于1280px,图片宽高比例分别如下

1.5  (800x1200 12kb》800x1200 15.26kb),

2.5(480x1200 8kb》480x1200 9.4kb),

3.5(343x1200 6kb》343x1200 7.06kb),

4.5(267x1200 5kb》267x1200 5.59kb)

2.图片均大于1280,图片宽高比例分别如下

1.5(1400x2100  36》852x1280 17.49kb),

2.5(1400x3500 42kb》1280x3200 63.11kb),

3.5(1400x4900  82kb》1280x4480 88.11kb),

4.5(1400x6300 105kb》1280x5760 113kb)

3.图片宽或者高一个小于1280,一个大于1280,图片宽高比例分别如下

1.5(1000x1500 19kb》852x1280 17.49kb),

2.5(1000x2500 30kb》1000x2500 39.25kb),

3.5(1000x3500 42kb》1000x3500 54.51kb),

4.5(1000x4500 54kb》1000x4500 70.01kb)

从第二步测试结果推断如下:

a,图片宽或者高均小于等于1280时图片尺寸保持不变,但仍然经过图片压缩处理,得到小文件的同尺寸图片

b,宽或者高大于1280,但是图片宽度高度比小于等于2,则将图片宽或者高取大的等比压缩至1280

c,宽或者高大于1280,但是图片宽高比大于2时,并且宽以及高均大于1280,则宽或者高取小的等比压缩至1280

d,宽或者高大于1280,但是图片宽高比大于2时,并且宽或者高其中一个小于1280,则压缩至同尺寸的小文件图片

但是暂时还不知道大文件图片是否仍然使用此规则,于是开始第三步测试。

第三步:

用ps制作一些步骤2中用于测试的同尺寸的图片,但是图片文件大小调整大些,是的每个图片的文件大小均大于1m。测试结果如下

1.图片宽高均小于1280 比例

1.5  (800x1200 3.5m>800x1200 484kb),

2.5(480x1200 2.1m>480x1200  291kb),

3.5(343x1200 1.5m>343x1200 209kb),

4.5(267x1200 1.2m>267x1200 185kb)

2.图片均大于1280  比例

1.5(1400x2100  10.6m>852x1280  453kb),

2.5(1400x3500 17.6m>1280x3200  1.79m),

3.5(1400x4900  24.7m>1280x4480  2.49m),

4.5(1400x6300 31.7m>1280x5760  3.19m)

3.图片宽或者高一个小于1280,一个大于1280,比例

1.5(1000x1500 5.4m>852x1280  363kb),

2.5(1000x2500 9m>1000x2500  1.24m),

3.5(1000x3500 12.6m>1000x3500 1.72m),

4.5(1000x4500 16.2m>1000x4500 2.21m)

第三步的测试结果与第二步结果一致,但是此时有一个新的疑问来了,“宽或者高大于1280,但是图片宽度高度比小于等于2,则将图片宽或者高取大的等比压缩至1280”这一条其实仍然无法判定是否成立,有可能是因为图片的高以及宽均小于1280x2导致的假象。所以开始第四轮测试

第四步:

设置测试条件:图片宽或者高大于1280x2时,但宽高比小于2

1.5(1708x2562 133kb》852x1280  17.49kb)

1.5 (3000x4500 400kb》852x1280 17.49kb)

测试结论:第三轮的疑虑不存在。至此微信朋友圈的图片处理策略基本清晰可见,这个策略可以用于几乎所有需要用到图片的移动app中,暂存。

微信的这种策略一方面作为图片上传者来说可以使得上传的图片文件较小,那么上传速度较快,为用户节省流量,节省时间;另外一方面作为图片阅读者来说可以快速的看到他人上传的图片,并且基本上不影响图片质量(肉眼可见的质量)

特殊说明:一般规则中宽高比设置会以整数作为分割线,非要较真为什么不测试1.9以及2.1的同学可以自行试试.

微信朋友圈图片处理策略相关推荐

  1. canva画图 图片居中裁剪_css实现不定宽高的图片img居中裁剪_类似微信朋友圈图片效果...

    需求如下: 前端需要显示矩形的缩略图,接口返回的图片尺寸大小不一,宽高不相等,需要前端来处理并显示成正方形,类似微信朋友圈图片的效果,等比例正方形显示在列表中,让图片根据宽高来自适应显示在页面上.那么 ...

  2. Android仿微信朋友圈图片上传选择器布局

    标题有点绕口,直接上一个效果图,如果符合你的需求的请在往下看,避免浪费你的时间 当当当当,标红的区域就是今天我们要干的活了 ,搞起来! 思路: 对android有点了解的人都知道在列表显示中我们可以使 ...

  3. Android仿微信朋友圈图片展示效果,图片查看器

    现在越来越多的APP都会有图片展示,这里是模仿微信朋友圈图片展示效果,图片查看器. 主要分为4部分: 1.透明Activity 2.计算gridView下iamgeView Item所在位置 3.一张 ...

  4. iOS转场动画之微信朋友圈图片查看器

    前言 什么是转场动画呢?顾名思义,就是切换界面所用的动画效果.本文主要介绍的是modal的效果.当我们使用modal的时候,只需要使用 presentViewController:animated:c ...

  5. Android调用系统分享和指定app分享-微信朋友圈图文分享和qq分享

    Android调用系统分享和指定app分享-微信朋友圈图文分享和qq分享 标签: Android系统分享QQ分享朋友圈图文分享 2016-09-27 22:54 279人阅读 评论(0) 收藏 举报 ...

  6. 安卓开发仿微信图片拖拽_Android仿微信朋友圈图片浏览器(支持图片手势缩放,拖动)...

    [实例简介] Android仿微信朋友圈图片浏览器(支持图片手势缩放,拖动) [实例截图] [核心代码] ImageDemo-2014-02-18 └── ImageDemo-2014-02-18 ├ ...

  7. 类微信朋友圈图片放大效果,点击图片放大动画

    要用到的 就是坐标转换方法 - (CGRect)convertRect:(CGRect)rect toView:(UIView *)view; 1:我这里演示的是 tableviewHeader上子v ...

  8. 微信朋友圈图片显示缩放

    最近公司非要做一个和微信朋友圈效果,还要求要惟妙惟肖.感觉最麻烦的就是在图片缩放的部分,结果发现微信在朋友圈图片点击放大的地方是渐入的,但是再次点击的时候是闪出的,没有渐变背景效果,所以修复了一下,现 ...

  9. android 图片质量,Android微信朋友圈图片不如 IOS的质量好

    由于众所周知的原因,安卓上的微信软件并没有采用Android规范的UI,而是采用了与iOS系统相同的设计语言,这也给用户一个错觉--这安卓和iOS上运行的微信无论是操作还是体验都别无二致.从操作上来看 ...

  10. Hook微信朋友圈图片下载(标题党)

    这个是本人工作的一些记录,不一定对你有什么帮助,本人也是小白一个,如果有问题我们可以一起讨论 你需要先找到你当前登录的微信生成的是哪个文件夹,这个时候你需要找到相应的文件包名下保存的微信的一些配置文件 ...

最新文章

  1. Linux man命令
  2. python3 pycharm 断点调试 报错 greenlet.error: cannot switch to a different thread
  3. 044_定义类或对象
  4. (38)编写 ShellCode
  5. android中暂停服务,Android 装逼技术之暗码启动应用
  6. [linux]服务器apache配置vhost
  7. php字符长度函数漏洞 ctf,CTF中常见php-MD5()函数漏洞
  8. IaaS、PaaS和SaaS的区别
  9. python和云计算_云计算和python区别
  10. 【BZOJ4561】[JLoi2016]圆的异或并
  11. php header 刷新,一个离奇的php header函数问题的解决
  12. Linux环境安装Postgresql报错。configure: error: zlib library not found
  13. Denoise Autoencoder
  14. 老Java程序员花两天做了个消消乐(天天爱消除)
  15. Python每日笔记打卡_day2
  16. Beautiful爬取海词网词汇意思和短语
  17. matlab稳定性实验分析,实验 控制系统稳定性分析的MATLAB实现
  18. 【预测模型】基于最小二乘法算法实现股票预测matlab代码
  19. 华农acm:scau9505 射穿多少
  20. 现代计算机领域出现了,时空道路网最近邻查询技术

热门文章

  1. Angular实现微博发布功能
  2. npm shrinkwrap
  3. 华为手机怎样修改HTML查看器,华为WS5200路由器用手机怎么设置?
  4. 求解一元三次方程的方法
  5. Kalman滤波器参数分析
  6. android 清理工具,安卓清理君深度清理软件/真心强
  7. 2017.12.5对内网,外网的理解
  8. 教你年入100万,互联网赚钱三板斧!
  9. Java 反射机制:(三)类的加载
  10. ping 127.0.0.1和ping本地ip、ping网关、ping远程网站分别测试什么