使用node-gm调整图像大小并保存其exif方向

3
我正在使用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方向数据吗?

谢谢。


1
我刚刚安装了GraphicsMagick并尝试了一下,EXIF文件在调整大小后的图像中得以保留。也许这是ImageMagick的一个bug? - Shanoor
你可以使用https://www.npmjs.com/package/piexifjs来读取exif数据并写入调整大小后的图像吗? - YarGnawh
@ShanShan - 看起来你是对的,我在我的工作电脑上使用GraphicsMagicK进行了测试,它确实保存exif格式。今天晚些时候回家后,我会检查一下有什么区别。 - ufk
1个回答

3
更具体地说,在下面的代码中,只有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文档:here

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接