相关文章推荐
冷冷的春卷  ·  如何将VOC ...·  1 年前    · 
潇洒的钥匙  ·  python - 从控制台 ...·  1 年前    · 

本文字数为3392字,阅读约需12分钟,因为求证过程免不了枯燥,当然你也可以直接查看下面的结论。

1/ 微信会将我们的原图进行压缩,所以如果想要发高清图片,那么图片的像素比例必须大于等于2:1,并且原图的短边像素要小于2262像素时,微信才不会压缩照片的分辨率。

2/ iOS端的微信因为色彩管理的不同,所以iOS端的照片要比安卓端的色彩要好一点,不过只有放大很多倍才能看出差别

3/ 我们可以通过主动降低照片分辨率or主动裁切照片大小来获得更佳的图片效果,并且竖副照片通过裁切成横幅能极大提升画面质量

4/ 收藏再分享并不会提升照片发朋友圈质量,并且通过发 微博 再保持发朋友圈也不会对照片质量有提升

当然四三写这篇文章的原因还是:我们都会换手机,但是我们的社交账号是唯一的,作为存储我们日常生活的照片,通常都保存在我们的朋友圈里面,所以我不想我们几年后翻看自己的朋友圈,因压缩算法而只能看到一堆马赛克。

话不多说,让我们进入正题!和之前的思路一样,要解决这个问题,首先我们先得找到朋友圈发照片变糊的原因!PS:测试版本为最新的7.0.12版本,iOS端测试版本为7.0.12。

1.微信对我的照片做了什么?

分辨率是否发生了变化?

因为我们手机拍摄的图片都是位图,既然图像变马赛克,那肯定是微信将我们图像的分辨率进行了压缩,那么怎么验证呢?

其实验证方法也非常简单,我们先找摄影师PY了一张分辨率为6720X4480的原图到手机,然后将该原图发送朋友圈后再下载回本地,发现从朋友圈下载回来的图片的分辨率变为了1620X1080分辨率。

从结果来看,结果微信压缩的照片还是会将短边像素压缩至1080,看来微信发图最短像素就是1080像素了?而这1080像素不正是手机目前的分辨率吗?所以在这里四三猜想会不会与手机分辨率有关呢?

为了验证这个猜想四三经过一番友好交(da)涉(jia),从同事那里借来了他宝贝的2K分辨率安卓手机,同样将一样的测试图片发布朋友圈后,再导回到电脑里进行查看。

而上面我们也发现在短边像素2000至2500的区间会有危险最低压缩值,而且比例可能会大于或等于2:1,接下来就是一系列的摸(shi)索(cuo),我们最终得到只有原图比例大于等于2:1,并且原图的短边像素不大于2262像素时,微信不会裁剪分辨率的结论,具体的裁切效果可以直接跳到第四部分查看。

因为我们日常使用的图片是位图,其像素信息是固定的,不会增加或者减少,所以在压缩像素时,从高分辨率压缩到低分辨率,就会发生“降采样”(或“下采样”)。

对于一副图像I尺寸为M*N,对起进行s倍下采样,即得到(M/s)*(N/s)尺寸的分辨率图像,当然,s应该是M和N的公约数才可以,如果考虑是矩阵形式的图像,就是把原始图像s*s窗口内的图像编程一个像素,这个像素点的值就是窗口内所有像素的均值或者最大值,也就是Pooling池化操作等

而降采样的有关公式:Pk= Σ Ii/ s2

目前我们使用的图形大多为矩阵形式,就是把原始图像s∗s窗口内的图像变成一个像素,这个像素点就是窗口内所有像素的均值,近两年,出现了很多避免降采样时减少画质损坏的技术,所以目前微信的压缩算法效果比过去还是能肉眼看出提升的。

而原图经过微信裁切后,输出的图片一般都会被抹去exif信息,但是照片的格式会不会影响微信的压缩质量呢?

而这三张图放大后查看,细节上也没有很大的区别,所以目前对于朋友圈的照片无论是.png还是.HEIC等格式,都会统一被压缩成.JPG格式照片,更不会影响微信压缩质量。

2.Android与iOS有没有区别?

在微博上也有人说iOS端的微信朋友圈图片要比安卓端的清晰,作为谣言终结者的四三当然也要继续求证了。

这一次我选用的是一台安卓手机与iPhone6 Plus作为测试机型,依旧是老样子在朋友圈上传同一张照片,然后下载回本地查看~

安卓(左边)、iPhone(右边)

如果一定要来找茬,那也只能说到天空颜色压缩的差别,天空部分蓝色要比安卓的灰了一点,而安卓微信导回来的照片整体会更加明亮一点而已~

但是我还发现了一个问题,那就是如果用安卓手机下载苹果手机发送朋友圈的照片,会将Adoble RGB颜色文件压缩为sRGB,这或许能说明为什么两者颜色为什么会不同吧。

总的来说,iPhone和安卓虽然会有点差距,但没有出现肉眼可见的差别,只有你放大到几倍才能发现差距。

那么我们究竟如何发送高清的朋友圈图片呢?

3.如何钻空子,发高清照片?

1.主动降低短边分辨率

既然我们已经知道微信朋友圈压缩原理,那么我们可以通过主动降低、迎合标准来绕过压缩!

这里我推荐手机用户可以使用PicsArt进行降分辨率,点击下放菜单“工具”,选择调整图片大小,然后建议将这张照片的短边设定为1080。

我们将一张原尺寸为6720x4480像素的图按画幅裁成了横幅图片,然后分别上传朋友圈。结果是,原尺寸的照片长边被等比例压缩至2160像素,而主动裁剪后的照片长边压缩后达到了2234像素。

这就意味着,主动裁剪的上传照片相比前者整体像素量要优秀,只要你能够接受画面画幅变小。这也应证了主动裁剪上传比上传原图要更清晰。

4.谣言终结时间

1.先收藏然后分享至朋友圈能提高照片质量?

之前有公众号说通过发送原图给自己,然后将图片收藏,再去收藏中找到这张图片,长按选择分享至朋友圈。

依旧是上面测试用的6720x4480分辨的原图发送给自己,收藏后再从收藏夹中先保存一次至本地,然后选择分享至朋友圈。

结果发现,将原图收藏后,图片依然是原始分辨率6720x4480,但从收藏分享至朋友圈后,图片的分辨率依然被压缩至了2160x1080。

这个图的分辨率大小与将原图直接发朋友圈无异类,所以通过收藏再分享并不可行。

2.原图上传微博,然后再保存到相册

有人传言说把原图上传到微博,然后再保存到相册(不用点原图下载),再发朋友圈可以获得比直接原图发朋友圈更清晰的效果,为了验证四三又开始了实验。

如果你问我分享的照片更加清晰有意义吗?

那我只能回答你有意义。因为我们分享的图片记录了日常的生活,如果几十年后我们重温这些照片,不会因为算法压缩而看到一堆马赛克,这或许是四三今天写这篇文章的主要动力了。

好了,感谢看到结尾的各位,当然如果能点个赞或者留下评论也是极好(疯狂暗示).希望疫情赶紧过去,大家带上手机去好好的记录生活吧。