【问题标题】:Convert tiff to jpeg in node.js and GraphicsMagick在 node.js 和 GraphicsMagick 中将 tiff 转换为 jpeg
【发布时间】:2022-01-15 18:48:24
【问题描述】:

如何在 node.js 和 GraphicsMagick gm (https://aheckmann.github.io/gm/) 中将 tiff 转换为 jpg

我想在 AWS lambda 上执行此操作,因此无法将 write() 这样输出到磁盘。

【问题讨论】:

    标签: node.js gm


    【解决方案1】:

    只需为.write() 方法指定您想要的文件扩展名,gm 会自动将其转换为该格式。

    const gm = require('gm');
    
    gm('sample.tiff')
      .write('out.jpeg', function (err) {
        if (err) console.log(err);
    }); 
    

    如果需要输出为buffer而不是写入磁盘,可以使用.toBuffer()方法:

    gm('sample.tiff')
      .toBuffer('jpeg', function (err, buffer) {
        if (err) console.log(err);
    });
    

    【讨论】:

    • 谢谢,这可以用缓冲区完成吗? (我在 AWS lambda 上运行它,无法写入磁盘)
    • 是的,您也可以将图像作为缓冲区返回。
    【解决方案2】:

    我不知道出了什么问题,但是对于这个库,它对我不起作用。如果我使用:

    https://www.npmjs.com/package/jimp

    它对我有用。也许这对某人有帮助。

    const Jimp = require('jimp');
    
    try {
      const readFile = await Jimp.read(filePath)
      await readFile.writeAsync(pathToConvertedFile)
      const buffPng = await fs.readFile(pathToConvertedFile);
    } catch (err) {
      console.log(err);
    }
    

    【讨论】:

      最近更新 更多