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

如何使用Gulp创建无损渐进JPG/JPEG图像,gulp,jpeg,gulp-imagemin,Gulp,Jpeg,Gulp Imagemin,我正在尝试使用gulp优化图像,并遇到了以下插件,可以在这方面帮助我 但是当我尝试优化jpeg并使其渐进时,输出图像的质量(颜色、清晰度)与原始图像不一样。 我在#2插件中尝试了最大、最小质量(100),但质量仍然下降。我不知道哪里出了问题 // This degrades the quality of Image var gulp = require('gulp'); var imagemin = require('gulp-imagemin'); var imag

我正在尝试使用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'));       
        });
    
    如果有人知道任何其他插件优化和创建渐进式图像而不降低质量?任何帮助都将不胜感激

    提前谢谢

    我建议使用,它使用更强大的图形库(GraphicsMagick或ImageMagick),并将保留颜色配置文件。下面的脚本将使用中指定的“Line”值创建渐进式图像


    请注意上提供的系统安装说明。我在Mac上安装了GraphicsMagick,因此请确保您首先安装了图形库

    如果您仅使用
    imagemin
    进行此操作会怎么样,例如:@KyleAnderson我也尝试过。它会降低图像质量。我希望JPEG的渐进性和优化程度达到与原始图像一样好的程度。
    gulp imagemin
    本质上是一个“无损”转换器,但我在测试时看到了颜色转换。原始颜色信息不会保留,您可以看到细微的颜色差异
    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'])