【问题标题】:resizing image while saving it's exif orientation with node-gm调整图像大小,同时使用 node-gm 保存它的 exif 方向
【发布时间】:2016-01-03 19:27:18
【问题描述】:

我正在使用 gm (http://aheckmann.github.io/gm/) 编写一个 nodeJS 5.3.0 应用程序

我知道它使用 GraphicsMagicK 库。

我遇到的问题是,在调整图像大小后,它会丢失 exif 格式。代码示例实际上表明 exif 格式丢失了。

例如:

var fs = require('fs')
  , gm = require('gm').subClass({imageMagick: true});

// resize and remove EXIF profile data
gm('/path/to/my/img.jpg')
.resize(240, 240)

在此示例中,他们说 exif 配置文件数据已被删除。

我知道我可以在调整大小之前获取图像的方向:

gm('path/tp/my/img.jpg').orientation(function(err,value){
                var orientation = value;
});

问题是.. 调整大小时可以保留 exif 数据吗?如果没有..我可以在调整大小后设置exif方向数据吗?

谢谢

【问题讨论】:

  • 我刚刚尝试安装了 GraphicsMagick,EXIF 配置文件保留在调整大小的图像中。也许这是 ImageMagick 的错误?
  • 你可以使用npmjs.com/package/piexifjs来读取exif数据并写入调整大小的图像吗?
  • @ShanShan - 看来你是对的,我用 GraphicsMagicK 在我的工作计算机上测试了它,它确实保存了 exif 格式。当我今天晚些时候回家时,我会检查有什么不同

标签: node.js image-resizing exif node-gm


【解决方案1】:

更具体地说,在下面的代码中,只有 noProfile() 函数删除了 EXIF,所以如果你删除它,你可以保留 EXIF 数据

 // resize and remove EXIF profile data
gm('/path/to/my/img.jpg')
   .resize(240, 240)
   .noProfile()
   .write('/path/to/resize.png', function (err) {
   if (!err) console.log('done');
});

否则你可以查看gm doc here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-20
    • 2012-11-15
    • 2010-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多