先说说我遇到的具体情况。前阵子同事在工作群里发了几张表情包,其中有一张是那种连续动作的gif,大概两三秒循环一次。我保存下来想转发到另一个朋友群里,结果发出去之后,对方收到的是一张静止的图片,完全不会动。我一开始以为是手机问题,重启了好几次,后来才发现是微信对gif的发送有一套隐藏的规则,不符合条件的gif发出去就会被自动转成静态图,也就是大家说的被和谐了。
为了搞清楚这个规则,我拿自己手机里存的几十张gif做了实验,记录下哪些能正常动,哪些发出去就变静图。折腾了大概一周,总算摸出一些门道。如果你也遇到类似情况,可以照着下面的方法试一下,不用换手机也不用装额外的东西。
先检查尺寸和比例,这是最常见的坑
微信对gif的尺寸限制比很多人想象中严格。我测试下来,超过1080像素宽度的gif,被和谐的概率非常高。比如我有一张从电脑上下载的宽屏gif,宽度是1920像素,发出去立刻变静图。后来我用系统自带的图片编辑功能把宽度裁到720像素,再发送就正常了。这里有个细节,微信判断的是图片的实际像素尺寸,不是文件体积大小。有些gif文件才几百KB,但尺寸很大,照样会被和谐。
另外,长宽比例太夸张的gif也容易出问题。我试过一张高度特别长的竖图gif,几乎是横幅的四五倍那么长,发出去直接变成文件,连静态图都不显示,对方只能点开看。后来我把这张图裁剪成接近手机屏幕的比例,宽度控制在600像素左右,就能正常播放了。所以如果你发出去的gif没反应,先看看尺寸是不是超了,用手机相册自带的裁剪功能改一下就行。
帧数和时长也是关键,太多帧容易出事
除了尺寸,帧数和播放时长也会影响微信的判断。我自己做了个对比:同一张gif,原版有40帧,播放时长2秒,发出去正常;但用软件把帧数增加到80帧,播放时长变成4秒,再发就变静图了。微信似乎对总帧数有一个隐藏的阈值,超过一定数量就会自动降级处理。这个阈值具体是多少我没法精确测出来,但根据我的经验,控制在30帧以内比较安全,播放时长不要超过3秒。
如果手头的gif帧数太多,最简单的办法是用微信自带的编辑功能。在聊天窗口里点开图片,选择编辑,然后随便做一个操作,比如加个表情或者画一笔,再发送,微信就会重新编码这张图,帧数会被压缩。我用这个方法处理过好几张原本发不出去的gif,成功率大概有一半。不过要注意,这样做会损失一些画质,但至少能动了。
色彩格式和文件大小,容易被忽略的细节
还有一个不太容易想到的因素是色彩格式。微信对gif的调色板有要求,如果图片用的是某些特殊色彩模式,比如包含透明通道或者颜色数量特别多,发送时就有可能被误判。我手头有一张从设计网站下载的gif,颜色特别鲜艳,看起来像真彩图,发出去就变静图。后来我用电脑上的画图软件把这张图重新保存了一遍,色彩模式改成标准的256色,再发就正常了。如果你身边有电脑,这个方法可以试试。
文件大小方面,微信的限制其实比较宽松,我测试过2MB左右的gif也能正常发。但要注意,如果文件太大,微信会先压缩再发送,压缩过程中可能会把动图转成静图。所以如果文件超过5MB,建议先用压缩工具减小体积,再发送。不过压缩工具的选择有点讲究,有些工具压完反而更容易被和谐,这个我后面再细说。
发送方式也有讲究,直接发文件比发图片靠谱
如果你试了上面几种方法还是不行,可以考虑换个发送方式。微信里发gif有两种途径:一种是直接在聊天框里选图片发送,另一种是选择文件发送。我测试下来,通过文件方式发送的gif基本不会被和谐,对方收到后点击预览就能看到动画效果。虽然比直接显示在聊天界面里麻烦一点,但至少图能动。
还有一种情况是,gif在群聊里正常,私聊就变静图。我遇到过几次,后来发现是群聊和私聊的压缩策略不一样。群聊里微信会保留原图质量,私聊则会压缩得更狠。所以如果私聊发不出去,可以试着先发到文件传输助手,再转发给朋友,有时候能绕过压缩。但这个方法不是每次都灵,取决于网络情况。
补充方案:一个在线工具,但限制也很明显
上面说的都是不借助外部工具的办法。如果你手头的gif特别顽固,试了各种方法都无效,那可能需要用工具重新编码一下。这里提一个我用过的在线网站,名字就不多说了,功能就是能在线对gif进行重编码,改尺寸、降帧率、调色彩模式都能做。我用它处理过一张怎么都发不出去的gif,把帧率从50降到25,宽度从800改成600,重新导出后微信就认了。
但这个工具的限制也不少。首先是画质损失严重,尤其是颜色复杂的图片,处理完会明显变糊,有些地方还会出现色块。其次是处理速度慢,一张2MB的图要等差不多一分钟,高峰期可能更久。最麻烦的是,偶尔导出的文件会有问题,比如播放到一半卡住,或者循环不顺畅。所以它只能作为最后的备选方案,不适合批量处理。
另外提醒一句,这个工具对浏览器有要求,我用电脑版的Chrome能正常用,但手机浏览器打开就经常报错。如果你平时主要用手机操作,那可能不太方便。总的来说,能用系统自带功能解决的就别用工具,实在不行再考虑这个方案。
最后总结一下我的经验:先看尺寸,超1080像素就裁剪;再看帧数和时长,太长就用微信编辑功能压一下;还不行就换色彩模式或者用文件方式发送。这几招能解决大部分问题。如果你还有别的奇怪情况,欢迎在评论区交流,我看到了会回复。