【问题标题】:Node.js - convert webp to jpeg as a buffer (in memory)Node.js - 将 webp 转换为 jpeg 作为缓冲区(在内存中)
【发布时间】:2019-06-14 19:57:40
【问题描述】:

您知道有什么方法可以将image/webp 缓冲区转换为image/jpeg 缓冲区而无需使用文件系统吗?

首先我使用request-promise 获取缓冲区,然后我想将其转换并在另一个 HTTP 调用中发送出去。

我发现这个包适用于文件: https://github.com/scionoftech/webp-converter

然后试图找到一些有用的东西 https://github.com/imagemin/imagemin 但没有成功。

【问题讨论】:

  • 您找到解决方案了吗?我也卡住了

标签: node.js jpeg webp converters


【解决方案1】:

您可以使用 ImageMagick 中的 convert 功能来执行此操作,通过 GraphicsMagick NPM package 使用它。它接受 webp 压缩的 TIFF,您可以将其输出为 jpg。当您安装 GraphicsMagick 时,请确保还包含 ImageMagick 并使用 --with-webp 标志安装它,以便支持 webp。当需要 gm 库时,请确保您还指定了 imageMagick:

 const gm = require('gm').subClass({imageMagick: true});

在你的承诺体中,你可以像这样调用一个函数:

gm().command('convert').in('yourImage.jpg').in('yourImage.webp').toBuffer(function(err, buffer){
if(err)throw err
//...Do what you need with the buffer
});

【讨论】:

  • 如何使用普通的Buffer,而不需要使用yourImage.jpgyourImage.webp文件?
【解决方案2】:

我为此找到了一个非常快速的库:sharp

语法也非常清晰和简单。要将 webp 缓冲区转换为 jpg 缓冲区,您只需这样做

sharp(webpBuffer).jpeg().toBuffer();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-18
    • 2020-08-03
    • 2021-01-14
    • 2023-03-02
    • 1970-01-01
    • 2018-06-03
    • 2012-03-11
    相关资源
    最近更新 更多