【问题标题】:uploaded images from iPhone show up sideways because of exif data由于 exif 数据,从 iPhone 上传的图像横向显示
【发布时间】:2018-07-18 18:44:06
【问题描述】:

从 iPhone 等移动设备上传图片时,图片通常会出现横向显示,除非直接在 Chrome 中访问图片。

根据我在这里阅读的内容,这与 Chrome 等浏览器会忽略的图像 exif 方向数据有关。

解决此类问题的解决方案是什么?

有一些额外的代码让 multer 根据方向数据旋转它并重新保存吗?

const upload = multer({ storage: multer.diskStorage({
    destination: function (req, file, cb) {
        cb(null, avatar_path);
    },

    filename: function (req, file, cb) {
        var ext = require('path').extname(file.originalname);
        ext = ext.length>1 ? ext : "." + require('mime').extension(file.mimetype);
        require('crypto').pseudoRandomBytes(16, function (err, raw) {
            cb(null, (err ? undefined : raw.toString('hex') ) + ext);
        });
    }
})});

app.post('/upload', upload.single('avatar'), function(req,res)  {
    .....
});

【问题讨论】:

    标签: javascript express multer


    【解决方案1】:

    我认为情况正好相反——图像在 EXIF 数据中携带有关其方向的信息(在拍摄时由 iPhone 传感器存储),Chrome 会读取它并相应地调整它们。

    您需要找到并解释这些数据,并且您的算法也能够正确地旋转它们。有关更多信息,请参阅例如 iOS Image Orientation has Strange Behavior。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-05
      • 1970-01-01
      • 2012-04-29
      • 1970-01-01
      • 2020-08-12
      • 1970-01-01
      • 1970-01-01
      • 2014-02-07
      相关资源
      最近更新 更多