使用单个图像读取/流进行多次调整大小

时间:2012-10-05 06:36:30

标签: node.js imagemagick graphicsmagick

我正在编写一个脚本来拍摄图像并创建不同大小的多个变体(如imgur,基本上)。现在,我使用node.js中的https://github.com/aheckmann/gm为每个变体执行以下操作:

function(file, size, newfile, callback) {
  gm(file)
    .noProfile()
    .quality(80)
    .resize(size, size)
    .write(newfile, callback)
}
  1. 我假设每次调整图像大小时,graphicsmagick都会从磁盘中读取图像并将其加载到内存中。它是否正确?如果是这样,我怎样才能从磁盘读取一次?
  2. 我可以从流中读取文件,然后在单个流上运行多个调整大小吗?我对流不了解,当我最后尝试这样做时,我感到沮丧,放弃了,删除了那部分代码。

1 个答案:

答案 0 :(得分:2)

以下是两个命令行示例,了解如何使用ImageMagick执行此操作。

他们使用ImageMagick支持的mpr:语法,它告诉ImageMagick将输入图像暂时保存到命名的内存程序寄存器中,稍后(处理时)可以从中读取数据比硬盘快得多。

您应该很容易将这些命令行翻译成用语。