如何在 node.js 中使用 gm 将图像转换为 webp
How to convert image into webp using gm in node.js
我正在使用 gm
来调整图像大小。现在我了解 webp
来加速我的网站。所以我想使用相同的库将图像转换为 webp
。但是下面的不行。
如何通过 gm
将图像转换为 webp
?
function resize(last) {
self.resize(width, height)
.quality(80)
.strip()
.gravity('Center')
.toBuffer(imageType, function(err, buffer) {
if (err) last(err);
else last(null, buffer);
});
},
编辑
gm('thumb_3.JPG')
.toBuffer('webp', (err, buffer) => {
fs.writeFile('buffer.webp', buffer, console.log)
})
我也用这个代码
您只需致电:
.toBuffer('webp', (err, buffer) => { /* ... */ })
或使用streams
.stream('webp');
但要使其正常工作,您必须使用 webp
显式安装 imagick
brew install imagemagick --with-webp
否则直接安装支持webp
的graphicsmagick
。
取决于你的OS:
Ubuntu/Debian
sudo apt-get install graphicsmagick
Mac OS
brew install graphicsmagick
对于windows或其他OS,检查:
工作示例:
const fs = require('fs');
const gm = require('gm');
gm('/tmp/img.jpg')
.stream('webp')
.pipe(fs.createWriteStream('/tmp/img.webp'));
gm('/tmp/img.jpg')
.toBuffer('webp', (err, buffer) => {
fs.writeFile('/tmp/img-buffer.webp', buffer, console.log)
})
对我来说,我使用的是 gm 版本 1.3.30
,它不会自动包含 webp
。相反,您需要手动安装它
检查,gm -version
Feature Support:
Native Thread Safe yes
Large Files (> 32 bit) yes
Large Memory (> 32 bit) yes
BZIP yes
...
WebP no
WMF no
X11 no
XML yes
ZLIB yes
使用 brew 安装,
brew install graphicsmagick --with-webp
如果你之前已经安装了它
brew reinstall graphicsmagick --with-webp
包括 webp
也会解决问题 Stream yields empty buffer
。
祝你好运!
我正在使用 gm
来调整图像大小。现在我了解 webp
来加速我的网站。所以我想使用相同的库将图像转换为 webp
。但是下面的不行。
如何通过 gm
将图像转换为 webp
?
function resize(last) {
self.resize(width, height)
.quality(80)
.strip()
.gravity('Center')
.toBuffer(imageType, function(err, buffer) {
if (err) last(err);
else last(null, buffer);
});
},
编辑
gm('thumb_3.JPG')
.toBuffer('webp', (err, buffer) => {
fs.writeFile('buffer.webp', buffer, console.log)
})
我也用这个代码
您只需致电:
.toBuffer('webp', (err, buffer) => { /* ... */ })
或使用streams
.stream('webp');
但要使其正常工作,您必须使用 webp
显式安装 imagickbrew install imagemagick --with-webp
否则直接安装支持webp
的graphicsmagick
。
取决于你的OS:
Ubuntu/Debian
sudo apt-get install graphicsmagick
Mac OS
brew install graphicsmagick
对于windows或其他OS,检查:
工作示例:
const fs = require('fs');
const gm = require('gm');
gm('/tmp/img.jpg')
.stream('webp')
.pipe(fs.createWriteStream('/tmp/img.webp'));
gm('/tmp/img.jpg')
.toBuffer('webp', (err, buffer) => {
fs.writeFile('/tmp/img-buffer.webp', buffer, console.log)
})
对我来说,我使用的是 gm 版本 1.3.30
,它不会自动包含 webp
。相反,您需要手动安装它
检查,gm -version
Feature Support:
Native Thread Safe yes
Large Files (> 32 bit) yes
Large Memory (> 32 bit) yes
BZIP yes
...
WebP no
WMF no
X11 no
XML yes
ZLIB yes
使用 brew 安装,
brew install graphicsmagick --with-webp
如果你之前已经安装了它
brew reinstall graphicsmagick --with-webp
包括 webp
也会解决问题 Stream yields empty buffer
。
祝你好运!