无法使用imagemin-webp将图像转换为WebP

时间:2019-07-08 19:03:05

标签: node.js webp imagemin

我正在尝试使用imagemin-webp将多个PNG和JPG文件转换为WebP,而不是一次使用 cwebp 进行转换,但是由于某些原因它无法正常工作。< / p>

到目前为止我所做的一切:

1-我安装了 Node JS v10.16.0 ;

2-从我的项目内部,我使用以下命令创建了package.json文件: npm init -y;

3-在我的项目目录中,我仍然运行命令npm install imagemin imagemin-webp;

4-然后,我创建了一个webp.js来保存应该转换图像的代码,然后使用node webp.js命令将其执行。

以下是webp.js中的代码:

const imageminWebp = require('imagemin-webp');

imagemin(['_imgs/*.{jpg,png}'], '_imgs', {
   use: [
        imageminWebp({quality: 50})
    ]
}).then(() => {
    console.log('Images optimized');
});

我认为,一旦执行,_imgs文件夹中的所有文件都将转换为webp,但是当我查看该文件夹中时,那里只有PNG和JPG文件。

运行该代码时,我收到消息“优化的图像”,尽管如此,仍未生成WebP图像。

我还需要做其他事情才能使其正常工作吗?

3 个答案:

答案 0 :(得分:2)

这里有同样的问题

尝试一下:

const imagemin = require('imagemin');
const imageminWebp = require('imagemin-webp');

imagemin(['images/*.{jpg,png}'], {
  destination: __dirname + '/images/converted/',
  plugins: [
    imageminWebp({
      quality: 75,
      resize: {
        width: 1000,
        height: 0
      }
    })
  ]
}).then(() => {
  console.log('Images optimized');
});

您当然可以忽略调整大小部分;
如果调整大小参数的一部分为0,则使用原始比例(对于2:3的图像,如果输入1000,则为1000x1500);

我仍然不知道如何转换单个图像...
尽管每周在npm上的下载量超过30万,但这仍然是高度隐秘的,并且没有得到很好的记录;

答案 1 :(得分:1)

这里有一段短短的代码,就像一个超级按钮一样,我发现实现gulp-ext-replace有助于重命名转换后的文件。 从终端在项目目录中运行npm i -D gulp gulp-imagemin gulp-ext-replace imagemin-webp,然后在gulpfile.js

中使用以下代码段
const gulp = require("gulp");
const imagemin = require("gulp-imagemin");
const extReplace = require("gulp-ext-replace");
const webp = require("imagemin-webp");

// Simple task to convert png to webp
gulp.task("images:webp", function() {
  const stream = gulp
    .src("./public/images/**/*.png")
    .pipe(
      imagemin({
        verbose: true,
        plugins: webp({ quality: 70 })
      })
    )
    .pipe(extReplace(".webp"))
    .pipe(gulp.dest("./public/images"));
  return stream;
});

希望这对您有帮助=)

答案 2 :(得分:0)

我在图书馆遇到同样的问题。我试图为https://www.bestgift.in/order/cake/hyderabad转换10000张图片。

花了大约3天的时间,但最终没有运气,我使用了Google提供的cwebp库,它的工作原理很像魅力

for file in *; do cwebp -q 80 "$file" -o "$file.webp"; done

有关更多信息:https://developers.google.com/speed/webp