照片上传后为什么变成横的?
手机里照片是正的,上传表单里却躺倒了?讲清 Exif 方向标签的作用、怎么分辨是像素真的转了还是只有一个标签在起作用,以及怎么彻底解决。
- exif orientation
- photo rotation
- product photography
- image upload
- jpeg
- webp
- marketplace listings
- file metadata

你用手机拍一件商品,把机身转过来,按下快门。屏幕上看着是正的。到了平台的上传表单里,它却躺倒了——同一个文件,偏偏差了九十度。
这不是你的手机坏了。这张照片在文件内部很可能本来就是横躺着的,从你按下快门那一刻起就是。你的手机不管怎样都会把它正过来给你看。上传表单没有。
你的文件只可能处在两种状态之一,而分辨它们只需要做一次检查。
相机是按传感器看到的样子存下这张照片的
图像传感器是固定在手机上的一块矩形,你转,它并不转。竖着拍一张商品照,它记录下来的仍然是一个横画幅的画面,你的主体在里面躺着。

很多相机不愿意重写几百万个像素,于是改为在元数据里写下一个小小的数字,意思是“显示之前把它转四分之一圈”。另一些则在保存时就把像素转好,并把文件标记为已经是正的——这就是为什么同一个场景,两部手机的表现会不一样。在 JPEG 里,这个数字就是 Exif 标签 274,也就是 Orientation,它除了旋转之外还能描述镜像的画面。
有的读取程序认这个标记,有的不认
现代浏览器确实会读它。CSS 的 image-orientation 属性初始值是 from-image;MDN 说得很直白:“图片中包含的 EXIF 信息会被用来对图片做相应的旋转。”自 2020 年 4 月起,各家浏览器都是这么做的。
凡是不属于浏览器的东西,都仍然可能无视这个标记。网页标准已经统一到尊重它,但大量服务端解码器、缩略图生成器和图像库是在这次统一之前写的,从来就不看这个标记——也没有什么规定强制它们看。
所以问题从来不是“我的照片是不是横的”,而是“显示它的那个东西读没读这个标记”。你的相册读了。平台的缩略图生成器可能没读。
在相册里旋转,也许只是改了那个标记
点一下旋转按钮,结果取决于这个应用。可能发生两件截然不同的事。

- 应用改掉方向值,像素数据原封不动。瞬间完成、无损,对任何忽略这个标记的程序都不可见:你的照片在文件里还是横的。
- 应用重新编码:把像素解码出来、转好,写成一个新文件,并把标记复位。旋转被固化了进去,到哪儿都不会变。对 PNG 或无损 WebP 来说这不花什么代价;对 JPEG 来说通常要付出一代重新编码的画质,值得付一次,不值得反复付。
某个应用走的是哪条路,你从按钮上看不出来,而且同一个应用在不同版本之间还改过。什么都别假设,去检查输出。
更糟的是那种把像素转了、却原样照抄旧元数据的工具:标记还写着“请旋转”,像素其实已经转过了,于是那些尊重标记的程序会把照片转两次。
怎么判断你的文件处在哪种状态
这件事光靠盯着看是定不下来的,只能去检查某个不是预览图的东西。

- 把形状和数字对一对。 如果一张看上去是竖构图的照片,在文件属性里报告的宽度大于高度,那么像素是横的,是一个标记在起作用。有些查看器连这些数字也一并纠正过了,所以对不上比对得上更能说明问题。
- 直接读这个标记。 浏览器、桌面看图软件和文件管理器的缩略图如今几乎都尊重这个标记,所以它们意见一致什么也证明不了。在副本上操作,绝不要动原图,用 Exif 查看器打开它,直接读
Orientation。只要不是1(常显示为“Normal”),就说明是标记在起作用,像素并不是正的。
在别的东西碰这个文件之前,先把方向定下来
remover.bg 接受 PNG、JPEG 和 WebP,单个文件最大 25 MB,处理后交还给你一个去掉背景的新文件。它是一个背景去除工具,不是照片编辑器:旋转这件事属于你手机的照片编辑器或设计工具,而且要放在上传之前。
这个先后顺序之所以重要,是因为你在生成一个新文件。PNG 和 WebP 容器都有地方安放 Exif——Google 的 WebP 规范允许把元数据放在“'EXIF' 或 'XMP ' 区块”里——但你用来旋转的那个编辑器会不会把 Exif 写进它的导出文件,是那个编辑器的决定,不是你的。把旋转固化进像素,就没有标记可丢了。关于这种格式,见支持 WebP:直接上传与导出,无需转换。
一个可行的顺序:
- 在编辑器里旋转并导出一份副本,而不是在相册里点旋转。
- 在这份导出的副本上检查
Orientation的值。 - 把它上传去除背景。
- 把抠图放到纯色或你自己的照片上,如果需要让它看起来是放在某个平面上,就加一层投影。
把大批量图片推过 HTTP API 的团队——见去背景 API:把自动抠图接入你的应用——应该先在流程里把方向统一好:一张躺倒的原图会变成一张躺倒的抠图,重复一千次也还是这样。在我们的 Amazon 商品主图要求:纯白背景规则详解里,方向并不属于背景规则的一部分,但不管别的地方你做得多对,一个躺倒的商品图看上去就是不用心。
值得养成的习惯
相信文件,不要相信预览。用导出的方式旋转,然后在副本上把 Orientation 读一次;这样一来,无论是在浏览器里、在缩略图生成器里,还是在印厂的队列里,这张照片都是正的。


