我需要从网络传输 jpg 格式的图像(在此处使用虚拟图像),然后将它们转换为 WebP。这是一次一次的对话(不是批量)
我有以下代码可以提取图像并将其成功保存为 .jpg。
const axios = require("axios")
const fs = require("fs")
const imagemin = require("imagemin")
const imageminWebp = require("imagemin-webp")
async function axios_get_contents (uri, callback) {
await axios({
"method": "get",
"url": uri,
"responseType": "stream"
}).
then((response) => {
console.log("then1")
response.data.pipe(fs.createWriteStream("pic1.jpg"))
})
}
const URL = "https://images.pexels.com/photos/1449767/pexels-photo-1449767.jpeg?auto=compress&cs=tinysrgb&h=750&w=1260"
axios_get_contents(URL).then((ret) => console.log(ret))
下面是我卡住的地方。我正在尝试转换为 webp。本质上,imagemin 代码在创建 jpg 之前运行。
async function axios_get_contents (uri, callback) {
await axios({
"method": "get",
"url": uri,
"responseType": "stream"
}).
then((response) => {
console.log("then1")
response.data.pipe(fs.createWriteStream("pic1.jpg"))
}).
then((response) => {
console.log("then2")
imagemin(["pic1.jpg"], {
"destination": "compressed-images",
"plugins": [imageminWebp({"quality": 50})]
})
})
}
问题:
如何成功链接 webp 转换?
我是否需要编写一个 jpg 文件,然后将同一个文件读回 imagemin?我可以将缓冲区/var 传递给 imagemin 吗?会节省阅读和写作。
谢谢大佬!!