首页 文章

如何使用Gulp创建无损的渐进式JPG / JPEG图像

提问于
浏览
0

我正在尝试使用gulp优化图像,并遇到了以下插件,可以帮助我 .

但是当我尝试优化jpeg并使它们逐渐通过它时,输出图像的质量(颜色,清晰度)与原始图像不同 . 我已经尝试了#2插件中的最大,最小质量(100),但质量仍然下降 . 我不知道哪里出错了 .

// This degrades the quality of Image
    var gulp = require('gulp');
    var imagemin = require('gulp-imagemin');
    var imageminJpegRecompress = require('imagemin-jpeg-recompress');

    gulp.task('optimize', function () {
      return gulp.src('src/images/*')
        .pipe(imagemin({
          use:[imageminJpegRecompress({
            progressive: true,
            min: 100,
            max: 100,
            quality:'veryhigh' 
          })]
        }))
    });

// This degrades the quality of Image
    var imagemin = require('gulp-imagemin');
    gulp.task('image1', function () {
        return gulp.src('Content/img/**/*.jpg')
            .pipe(imagemin({
                progressive: true
            }))
            .pipe(gulp.dest('dist'));       
    });

如果有人知道任何其他插件来优化和创建渐进式图像而不降低质量?任何帮助将不胜感激 .

提前致谢!!

1 回答

  • 0

    我建议使用gulp-gm,它使用更强大的图形库(GraphicsMagick或ImageMagick)并保留颜色配置文件 . 下面的脚本将使用the interlace() documentation中指定的"Line"值创建渐进式图像

    const gulp = require('gulp');
    const gm = require('gulp-gm');
    
    gulp.task('images', function() {
      return gulp.src('src/images/**/*')
        .pipe(gm(function (gmfile) {
          return gmfile.interlace('Line')
        }))
        .pipe(gulp.dest('dist/images'))
    })
    
    gulp.task('default', ['images'])
    

    请注意https://www.npmjs.com/package/gulp-gm上提供的系统安装说明 . 我在Mac上安装了GraphicsMagick,因此请确保先安装图形库

相关问题