代码之家  ›  专栏  ›  技术社区  ›  Davide

gulp图像不压缩JPGs

  •  0
  • Davide  · 技术社区  · 7 年前

    gulp image压缩png文件时没有任何缺陷,但对于jpg格式,它会保持原样。如果有任何帮助,下面是我的配置:

    var gulp = require('gulp');
    var image = require("gulp-image");
    var imagemin = require('gulp-imagemin');
    var jpegRecompress = require("imagemin-jpeg-recompress");
    var mozjpeg = require("imagemin-mozjpeg");
    var jpegoptim = require('jpegoptim-bin');
    
    
    // Optimization tasks
    // -------------------
    
    gulp.task("images:minify", function () {
        return gulp.src("images_src/**/*")
            .pipe(imagemin([imageminMozJpeg()], {
                verbose: true
            }))
            .pipe(gulp.dest("images_src/compressed"));
    });
    
    gulp.task("images:compress", function () {
        gulp.src("images_src/**/*.*")
        .pipe(image({
            jpegRecompress: true,
            jpegoptim: false,
            mozjpeg: true,
            concurrent: 10
        }))
        .pipe(gulp.dest("tmp"));
    })
    
    And here's what the terminal outputs when I run `gulp-image`:
    [14:57:29] Using gulpfile ~/code/udacity-responsive-images/p1-my-solution/gulpfile.js
    [14:57:29] Starting 'images:compress'...
    [14:57:29] Finished 'images:compress' after 23 ms
    [14:57:32] ✔ fixed/smiley_face.png -> before=3.8 KB after=478 B reduced=3.34 KB(87.7%)
    [14:57:33] - horses.jpg -> Cannot improve upon 149.26 KB
    [14:57:34] - still_life.jpg -> Cannot improve upon 81.13 KB
    [14:57:35] - grasshopper.jpg -> Cannot improve upon 234.97 KB
    [14:57:38] - rosella.jpg -> Cannot improve upon 676.67 KB
    [14:57:39] - postcard.jpg -> Cannot improve upon 486.93 KB
    [14:57:39] - cockatoos.jpg -> Cannot improve upon 485.34 KB
    [14:57:39] - volt.jpg -> Cannot improve upon 522.92 KB
    [14:57:39] - sfo.jpg -> Cannot improve upon 492.9 KB
    [14:57:42] ✔ fixed/flourish.png -> before=43.43 KB after=15.42 KB reduced=28 KB(64.5%)
    

    你能帮帮我吗?

    1 回复  |  直到 7 年前
        1
  •  0
  •   Mika Sundland    7 年前

    我认为没有什么问题。各种jpeg压缩算法都有各种设置,您可以在其中调整压缩量。jpeg重新压缩的默认设置为:

    ['--strip', '--quality', 'medium', '--min', 40, '--max', 80]
    

    其中参数描述为:

    --quality               Set a quality preset: low, medium, high, veryhigh
    --min                   Minimum JPEG quality
    --max                   Maximum JPEG quality
    --strip                 Strip metadata
    

    如果指定不同的质量、最小值和最大值,将得到不同的结果。如果gulp image在给定设置下未检测到任何压缩(即输入大小等于输出大小),它将为您提供 无法改进 消息默认设置为:

    C:\a>gulp images:compress
    [16:52:38] Using gulpfile ~\a\gulpfile.js
    [16:52:38] Starting 'images:compress'...
    [16:52:38] Finished 'images:compress' after 6.49 ms
    [16:52:39] - cockatoos.jpg -> Cannot improve upon 485.34 KB
    

    而这些设置:

    gulp.task("images:compress", function () {
      gulp.src("images/**/*.*")
        .pipe(image({
          jpegRecompress: ['--strip', '--quality', 'medium', '--min', 1, '--max', 2],
          jpegoptim: false,
          mozjpeg: true,
          concurrent: 10,
        }))
        .pipe(gulp.dest("tmp"));
    });
    

    给出以下结果:

    C:\a>gulp images:compress
    [16:52:46] Using gulpfile ~\a\gulpfile.js
    [16:52:46] Starting 'images:compress'...
    [16:52:46] Finished 'images:compress' after 6.4 ms
    [16:52:48] ✔ cockatoos.jpg -> before=485.34 KB after=84.93 KB reduced=400.42 KB(82.5%)
    

    虽然现在凤头鹦鹉看起来很可怕,但我想你可以四处玩耍,找到合适的环境。从我所看到的情况来看,这张大口大口的图像工作正常。

    Cockatoos