前端先压缩过一遍的图再上传,部分安卓机上显示成倒着的,同一张原图直接传上去又是正的,只在压缩过的图上出现。第一次遇到会往复杂处想,其实漏掉的多是个小前提。
exiftool -Orientation=1 -overwrite_original out.jpg identify -format '%[EXIF:Orientation]\n' out.jpg
前端绘制时按方向标记转了像素却没有把标记清掉,后端拿到文件再按标记转一次,等于在正确方向上又加了个九十度。这一点先确认清楚,后面就不用反复试。
「EXIF 重复旋转」相关的日志我一般连着看前后五分钟,单看一条报错经常判断不出是哪一步失败。把复现步骤压到三条以内,交给同事也能跑出来,才算真的定位清楚。
改动写完就同步给同事,下一个人踩同一个坑,成本还是你的。
具体做法是,前端输出图片的时候先把方向标记写回正常值;后端只处理那些确实带着非零方向标记的文件;旋转这件事只留在一端执行 不要两边都做一遍。
改完照着核一遍,同一张图在各机型上传后方向一致,不再出现整体倒置的情况。
