这里主要以微信和QQ空间为作为研究对象,得到的结论如下。

QQ空间里的动态

iOS设备,以iPhone6为分界

iPhone6及以上分辨率的设备:

  • 当宽且高同时 > 512px时,判断 宽/高的比例值:大于 2时,以高度为基准,缩小到512px,宽度等比缩、小于等于 2时,以宽度为基准,缩小到512px,高度等比缩
  • 当宽、高其中一边小于512px,直接下原图;

iPhone6以下的设备(5s、SE、4s),判断条件同上,只是将512px改为200px

Android规则同上,只是以1280分辨率为分界

QQ空间是尽量平铺占满宽度,二张图片时平分宽度,三张时也平分宽度,均占一行,四张时像四个象限一样,上、下各占一行,五张是上三张下二张,六张时上、下各三张,七、八、九张就铺第三行了。

微信朋友圈

未对屏幕进行区分,但对只上传一张图片进行了特殊的处理,二张或二张以上的图片宽 x 高以150为阀值,二边都大小150时,以较小的一边为基准进行等比缩放。

当图片为三张时,3、5位置对调,排成一行:1、2、3,二张时排一行:1、2,格子大小提前就已经占好位置。

单张图片,如果0.5 < = 宽 / 高 <= 2 时,被限定在1 - 4格子的范围大小(包括间距)

单张图片,宽 / 高 > 2的图片(如全景图),最多占三栏,高最多占一栏(包括间距大小)

宽 / 高 < 0.5(如微博长图),高最多占二栏,宽度最小占二栏1/3(包括间距)

朋友圈与QQ空间的区别在于,大小一张图片的时候,微信是按事先定义好的格子大小放图片,而QQ空间则是按平分屏幕宽度来算的。从使用角度来讲,二者的主要区别在于QQ空间更加突出图片这个属性,我的iPhone6 Plus一屏如果某条动态有9张图片,那基本上我只能看全一条动态,而朋友圈,我一屏至少可以看到二条均带9张图片的动态,图片占幅不算特别大,而且可以看得清部分的文字,看上去感觉更加和谐一些。

上述的规则可能存在不准确的地方,是通过反复测试、抓包方式来推断出来的,微信因为使用的是ipv6,而且图片貌似是动态CDN,有权限的验证,请求图片时并没有直接返回图片,而是一个类似二进制的文件,这样做的目的估计是出于产品隐私性的考虑吧,毕竟微信是面向熟人的,如果图片的规则能被破解或者url能直接主动,势必会让使用微信的用户觉得我发的图片并不是真正的私密(不安全),不过动态CDN成本比静态CDN高出不少。

这里先贴出部分能抓到的微信请求的url

// 视频封面 320 x 240
http://vweixinthumb.tc.qq.com/150/20250/snsvideodownload?filekey=30270201010420301e02020096040253480410600248dca5d9c581e27fbd5111a9349b0202151b0400&bizid=1023&hy=SH&fileparam=302c020101042530230204816d4328020458059a8502024f1a02031e8d7e02030f424002042f5e320a0201000400

// 个人头像 132 x 132
http://wx.qlogo.cn/mmhead/ver_1/UGuDguTdib0mHzgxB0I5SegibWXM5w3wuIOEVWygIOrLPcL5E50SAtFuq0ia9ichPMWmadEOTfTmzr0LF8hIjE4zJw/132

// 视频封面 320 x 240 = 4 : 3
http://vweixinthumb.tc.qq.com/150/20250/snsvideodownload?filekey=30270201010420301e02020096040253480410f1f2401a6c62f09ececa00c6cf099f3902023b9b0400&bizid=1023&hy=SH&fileparam=302c0201010425302302046cfba775020458048d5402024f1a02031e8d7d02030f424002041260320a0201000400

// 9张图片中的一张 150 x 200 = 3 : 4
http://140.207.234.29/mmsns/kiaXicXJs2M4d4Cj5yoIFEcPBQlNiaos8DGA33icYyhcYPrf1S90BSnHj6JC7YnTrotyjibXOrmkgmOo/150?tp=wxpc&length=2208&width=1242

// 150 x 150
http://140.207.234.29/mmsns/czSFWUxMIFicELY0FicKp8mAKEPgR7TMGwSLE8Ue2TTB6N5nfhrNSAE0Hn0UcVicJYlSzN24Sy4C6I/150?tp=wxpc&length=2208&width=1242

// 某条消息 150 x 68
http://140.207.234.32/mmsns/kqodNCVWpEuNZC3Qicgqw0YBlwXlhO9agvRaiaTDoOUnSibRFtNf9KDS57dYp0to1Z2RM0tQicYZCZg/150?tp=wxpc&length=2208&width=1242

// 群头像 139 x 139
http://223.167.86.100/mmcrhead/Q3auHgzwzM4SzCRNKrGw4Qr3iarHic17WGvuJm6o8lQcicludw8LPmW3Jb783SgFZqNLTYfJFHjkJdy65ppUwNM1w/0

// 自己的朋友圈封面 640 x 640
http://140.207.234.31/mmsns/4376ae1e0cf0ccced233def9ad1560d0dec29d64941ab85a818b17f43e6dadabcba7fb71e9dd2494fdead4b0db253944831124813608c824/0?tp=wxpc&length=2208&width=1242

// 225 x 150
http://140.207.234.31/mmsns/LwcbhAmMnZCGOvDT3GV29UDibiaoSiauzPfTJ0C8LIwERqxsFUTgtxq8PN9zuXeuLwyWBdajS83l5I/150?tp=wxpc&length=2208&width=1242

//默认图像 70 x 70
http://mmsns.qpic.cn/mmsns/iaxNB5XaibCeLTYWIUGCYm7cS1kFxTx4ibUSEBZJ6VnOdXPDItJ9PaGRg/0

// 个人头像96 x 96
http://wx.qlogo.cn/mmhead/PiajxSqBRaEJACUXXpRJhrQaSa2ic9EY4C3H5jC8eGP050nUlNSa05sw/96

// 广告334 x 200
http://mmbiz.qpic.cn/mmbiz/m79YxykhR1vKicdfyicOTQlWl2zkZRftMjw0lQvclPfEo5t7wkDGLNh2Vgxjr50fxlp9tE3Nb6LwO98Sh2UfREHg/640?wxfrom=5&wx_lazy=1

// 6张图片 150 x 203
http://140.207.234.30/mmsns/y5RpFDuUObyB1wvAlG2ib2rGwXictXHPzFsFo1UYrzD9BYKmHoeEibxCPzicxQ9OibHdljqMmJSFrFXM/150?tp=wxpc&length=2208&width=1242

// 200 x 150
http://140.207.234.30/mmsns/y5RpFDuUObyB1wvAlG2ib2licuKrosSWmHVxbjfzdEk30iaKbSHft9U5W5ZHqQbHhq7wpz72NtCgQ8/150?tp=wxpc&length=2208&width=1242

社交应用动态九宫格图片的规则相关推荐

  1. Android---仿QQ空间动态九宫格图片预览(一)

    Android-仿QQ空间动态九宫格图片预览(一) 文章目录 Android---仿QQ空间动态九宫格图片预览(一) NineGridImageView(九宫格图片控件) 预览效果 特性 用法 dem ...

  2. python语言编写一个生成九宫格图片的代码_python实现图片九宫格分割

    大家都知道在微信朋友圈或者微博以及QQ动态中,有很多"强迫症患者"发图片都爱发9张,而有些图是一张图片分成的九宫图,对于这种操作,大家知道是怎么做到的吗? 本文就是用Python做 ...

  3. 九宫格图片怎么操作?这里有你想要的方法

    不知道平时小伙伴们在发朋友圈的时候有没有注意过很多人的朋友圈都会将很多图片拼起来,凑成九宫格图片来发送.这是因为朋友圈的限制,无法一次发完,每次最大上传只有9长照片.所以就有很多朋友一次拼齐9个图片在 ...

  4. android可拖拽九宫格,微信小程序实现九宫格图片拖拽

    (在真机上的效果就不演示了,是差不多的) 实现思路 布局 在这里运用到了微信小程序的moveable-area和moveable-view两个标签. moveable-area是可拖拽的区域,需要设置 ...

  5. python朋友圈教程_Python 生成你的朋友圈九宫格图片

    关于微信之前写过以下文章,有兴趣可以点击查看: 如何导出你的微信语音 c 盘空间又满了?微信清理神器帮你释放空间 微信撤回的消息也能看到! 如何备份可能被删的公众号文章和网页 如何在电脑上登陆多个微信 ...

  6. vue中动态引入图片为什么要是require, 你不知道的那些事

    相信用过vue的小伙伴,肯定被面试官问过这样一个问题:在vue中动态的引入图片为什么要使用require 有些小伙伴,可能会轻蔑一笑:呵,就这,因为动态添加src被当做静态资源处理了,没有进行编译,所 ...

  7. uniapp社区动态实战:根据图片数量动态改变图片大小

    动态列表是各种社交属性软件中最常见的场景,其中用户在发布动态时一般会添加1-9张图片,不同的数量图片显示大小也会不同,下面就聊一下如何根据不同的图片数量动态改变图片大小.以下案例中最多支持9张图显示, ...

  8. 不到100行代码 Python制作一个九宫格图片生成器,炫酷朋友圈!

    朋友圈下面的这种图片排列风格,相比大家一定会很熟悉,有关于职位招聘的 祝贺节日的, 筛自己美照的, 这种因为图片刚好为 3*3 的排列方式,所以被称为 9 宫格图片风格,图片的生成原理就是把一张图片按 ...

  9. 用python编写图片生成器_不到100行代码 Python制作一个九宫格图片生成器,炫酷朋友圈!...

    朋友圈下面的这种图片排列风格,相比大家一定会很熟悉,有关于职位招聘的 Snipaste_2020-08-02_19-48-58.png 祝贺节日的, Snipaste_2020-08-02_19-49 ...

最新文章

  1. 转:[大数据竞赛]夺冠感言:走进业务,提升对世界的认知能力
  2. SpringBoot启动标识修改
  3. 渗透新手福利---xss到获取cookie入门级
  4. java--jdbc
  5. HDU4607(求树中的最长链)
  6. 海量数据寻找最频繁的数据_寻找数据科学家的“原因”
  7. [导入]流氓软件案落定 “很棒小秘书”终审败诉
  8. mac下使用pyenv
  9. Android Studio导入project和module的方法
  10. C# 使用Epplus导出Excel [4]:合并指定行
  11. 对SIL9022/9024的配置
  12. Python+Appium+夜神模拟器安装与简单运行(2/2)
  13. VIO,visual-inertial odometry)即视觉惯性里程计
  14. 噪声报警c语言程序,环境噪声监测器(软件部分).doc
  15. 汉诺塔问题(非常简单明了的解析)
  16. 在c语言的switch 语句中,的case后面的表达式,switch语句中case后面的值必须是什么?...
  17. 对于图片倾斜做矫正处理
  18. python xmxl 无法启动_auto-pypi-一个Python命令行工具,用于自动设置包并将其上载到PyPi。-Sen LEI Use As A Command Line Tool...
  19. 出自上帝之手的精妙算法 - Algorithm from THE BOOK (1)
  20. Astah 建模软件安装

热门文章

  1. 单片机c语言 外部中断,单片机C语言代码:外部中断,按下中断按键LED不亮,LED1正常亮...
  2. java nio集群_java – Hazelcast:连接到远程集群
  3. linux 使用ssr客户端_【第一期】基于 @vue/cli3 与 koa 创建 ssr 工程
  4. clion 引用dll_用CLion实现本地方法并给java调用
  5. python播放音乐同步歌词_使用Python下载歌词并嵌入歌曲文件中的实现代码
  6. JAVA结课_一点心情,写java结课考试之前
  7. 图像控制点 形变_基于控制点的图象变形方法及其应用
  8. colab清理gpu缓存_安卓手机为什么会变卡?强制GPU渲染手机就能变流畅?你真的懂吗...
  9. Java 格式转换:利用格式转换实现随机数生成随机 char 字母及 string 字母串
  10. JdbcTemplate使用小结