朋友圈的图片压缩
在朋友圈上发表图片时,微信会对图片进行压缩,这种压缩是强制的:如果是给朋友发图片,会有发送“原图”的选项,而在朋友圈发图则没有这个选项。不幸的是,微信的压缩会对图片质量造成非常大的损害,尤其是对于含有大量文字的图片,比如截图和长文,而且Android版微信的压缩质量比iOS版更差。
以下是原图和上传到朋友圈以后的图片局部放大后的效果。原图的分辨率为3264×2448,相当于800万像素的照片。
可以看到,上传到朋友圈后,文字的边缘出现了明显的“水波纹”,注意这些水波纹跟小图放大之后看到的“光晕”是不同的:
在一些被转发了好多次的表情图片上,这些水波纹更加明显,比如这张:
水波纹的产生跟JPEG格式压缩图片时舍弃了傅里叶变换后的高频部分有关,具体可以查阅JPEG压缩原理的相关资料。
发表高清图片的方法
朋友圈图片虽然质量很差,不过如果不放大的话效果尚可接受,只是有文字的图片字小的话不容易看清。但如果你像我一样不能忍受自己的图片被微信这样蹂躏的话,一定希望有一种在朋友圈发表100%高清无损的图片的办法。不幸的是,这样的办法并没有被找到,不过有一个退而求其次的方法,可以使你发表的图片清晰度大大提高:
调整图片的长宽比,使其大于2:1,上传到朋友圈后可以获得最清晰的效果
将图片的长宽比调整为2:1有两种途径,一种是把图片放进一个长宽比为2:1的画布里面,另一种是把裁剪掉多余的部分,使剩下的部分长宽比为2:1。
这种办法也适用于纵向的图片,只要保证长边:短边不小于2:1就行了。
由于大部分图片裁剪为2:1不是很好看,还有些图片的内容不适合裁剪(比如截图),所以推荐使用第一种途径,把图片放进2:1的画布里。由于朋友圈查看图片时背景是黑色,所以推荐使用黑色的画布,与背景融为一体。当然你也可以两种途径混合使用。
下面是实际测试效果,可以看出跟直接上传到朋友圈相比,清晰度提升了许多,不再能看到水波纹了。分辨率和图片体积的提升更加明显。
如果选择第一种途径,可以在电脑上用Windows自带的画图轻松完成,Android上推荐使用Photoshop Touch,iOS上暂时还没有发现合适的App。如果选择第二种途径,手机上随便找个软件把图片裁剪一下就好了。
到这里,关于“如何在朋友圈发表高清图片”的讨论就结束了。这个方法在
Android和iOS上都可以使用,缺点是操作略繁琐。如果你对这个主题感兴趣的话,接下来是一些比较细节的问题。
输出尺寸与输入尺寸的关系
提高图片质量的关键是提高分辨率。我用不同尺寸的同一图片进行了测试,得到以下结果:
- 当图片长宽比小于2:1时,输出图片的短边尺寸最大为640px(Android)和960px(iOS),小于这个尺寸的图片以实际尺寸上传,大于的话就调整为这个尺寸然后上传。
- 当图片长宽比大于等于2:1时,输出图片的长边尺寸最大为4524px(Android),小于这个尺寸的图片以实际尺寸上传,大于的话就调整为这个尺寸然后上传;iOS版未测试。
这解释了使长宽比大于等于2:1为什么能够提高图片质量,然而微信为何要这样设计却是个谜。一个猜测是很长的图片一般都是的长文,图片质量差的话很难阅读,于是为保证阅读体验,微信在压缩时对长图松了松手。
测试条件
版本:微信 6.3.7 on Android 4.3
原始图片(3264×2448,3.73MB):
上传图片格式均为png
除第5张外,图片素材均来自Unsplash