标签归档:exif

[Node.js]sharp模块处理图片方向错误

这篇博文是对于该模块https://www.npmjs.com/package/sharp的笔记,这是一个nodejs上用于处理图片的模块。

遇到的问题是该模块处理手机拍摄的照片时(带有EXIF方向信息的图片),不会自动按照该图的EXIF信息先旋转图片到正确的方向再进行处理,导致处理完的图片会转向错误的方向。

然后我翻了一下API文档里的rotate部分,光看第一行就可以知道这并不是一个bug:

rotate the output image by either an explicit angle or auto-orient based on the EXIF `Orientation`  tag.

如果调用rotate时不带参数的话会根据EXIF信息的方向进行旋转,也就是说它是特意默认不自动旋转的,要解决这个问题只要在调用所有处理函数之前先调用一个没有参数的`rotate()` 即可。

比如

sharp(图片路径)
.rotate()
.resize(200, 200)
.jpeg({quality:90}).toBuffer();