在“parsing云代码”中旋转包含EXIF方向的上传图片
从某些移动设备获取的通过HTML表单上传的人像照片在embedded网页时会导致错误的方向。
这是由于EXIF方向元数据,例如可能具有值6 = Rotate 90 CW
告诉图像以特定方向显示。 然而,图像本身 – 没有元数据 – 横向存储为水平图像。 根据图像渲染器,您将正确地看到图像(如下面的左侧缩略图)或者没有应用旋转元数据(作为右侧缩略图)。 对于网站中embedded的图像,是后者。
在parsing云代码托pipe的Web应用程序中,是否有任何方法使用Javascript或Node.js手动轮转上传的图片? (parsing云代码只支持一些依赖关系 – 但您仍可以自己上传小脚本)。
您应该能够在云代码中使用npm模块 :在云代码中使用npm模块
一旦你有了这个工作, jpegorientation NPM模块应该符合你的要求:
var jpeg = require('jpegorientation'); jpeg.autoRotate('image.jpg', function (err) { // error handler });
如果您无法使npm模块正常工作,您可以随时手动添加库。 如果遇到该库和node-gyp的问题,还有其他模块需要考虑:
- exif旋转 (与exif或exif分量组合以确定方向)
- 修复方向 (看起来基于浏览器)
我最终编写了一个客户端类,用于旋转和调整上传的图像的大小。 我正在使用Canvas元素和HTML5 FileReader。
有关源代码和一些示例,请参阅https://github.com/ajgarn/CanvasImageUploader 。
这个类给你的图像数据(一个Blob),可以发送到Parse的REST API ,就像你通过FileReader上传文件一样。