【问题标题】:How do I get the best PNG compression with gulp-imagemin + plugins?如何使用 gulp-imagemin + 插件获得最佳的 PNG 压缩?
【发布时间】:2017-02-15 03:14:24
【问题描述】:

我正在尝试获得压缩 png 的最佳设置。

我发现这里有一些适用于 imagemin 的插件: https://www.npmjs.com/browse/keyword/imageminplugin

我已经尝试了所有的 PNG 选项,但压缩率似乎很差。

pngquant 似乎具有最高的压缩率,(显然是最差的质量)与 tinypng 相似的质量,但仍然可以更接近 tinypng 的图形。

基本上我有 3 个问题:

问题 1: 更改 advpng 和 optipng 的选项似乎不会改变文件大小,这是一个示例,我是否正确使用它? 我猜它可能根本没有使用我的设置并回退到默认设置?如果你注意到这两个的文件大小是相同的!:

.pipe(imagemin(
    imageminOptipng({
        optimizationLevel: 4
    })
))

问题 2: 我正确使用“pngout”吗?有没有我不知道的使用方法?他们页面上的示例似乎不起作用,这种方法也不起作用:

.pipe(imagemin([
    imageminPngout({
        strategy: 1
    })
]))

问题 3: 有没有更好的方法来处理我还没有找到的 png 压缩? 理想情况下,我想以某种方式获得一种具有 pngquant 速率的方法,但质量要好一些。

【问题讨论】:

    标签: gulp gulp-imagemin imagemin


    【解决方案1】:

    经过漫长的试验和错误过程,我设法让 imagemin-pngquant 插件生成与 TinyPNG.com 类似的小尺寸图像。还是有点大,但图片的某些部分看起来比 TinyPNG.com 的结果要好。

    输入图像大小:1.1MB
    TinyPNG.com:223kb
    imagemin-pngquant: 251kb

    我使用了下一个插件设置:

    {
        quality: '70-90', // When used more then 70 the image wasn't saved
        speed: 1, // The lowest speed of optimization with the highest quality
        floyd: 1 // Controls level of dithering (0 = none, 1 = full).
    }
    

    此外,从 .png 生成 .webp 图像并将其提供给支持此格式的浏览器并以 .png 作为备份可能是个好主意。更多关于 .webp 图片格式的信息:Google Developer Section

    从优化图像生成 .webp 后(质量损失最小),图像大小为 62kB。您可以使用带有 gulp-rename 的 imagemin-webp 插件将图像流式传输到具有相同基本名称但扩展名不同的 dist 文件夹。吞咽任务示例:

    const config = require('./src/gulp/config.json');
    
    const gulp = require('gulp');
    const plugins = require('gulp-load-plugins')();
    const imageminWebp = require('imagemin-webp');
    
    gulp.task('images', function () {
        return gulp.src(config.src.images)
            pipe(plugins.imagemin([imageminWebp({
                method: 6,
            })]))
            .pipe(plugins.rename({ extname: '.webp' }))
            .pipe(gulp.dest(config.dist.images));
    });
    

    【讨论】:

    • 不错!好发现!我已将此设置为最佳答案(因为您已经非常接近 TinyPNG ?)。我现在为了自己的设置放弃了 gulp,转而使用 webpack,但是,关于转换为 webp 的好建议。我可能会考虑自己设置!
    猜你喜欢
    • 1970-01-01
    • 2018-10-16
    • 2020-01-02
    • 1970-01-01
    • 2016-10-26
    • 2017-03-09
    • 1970-01-01
    • 2023-04-06
    • 2018-11-22
    相关资源
    最近更新 更多