我已经用了一段时间了,但是几个月前我注意到谷歌页面的速度对我压缩的图片不满意。我尝试了所有的设置组合,但没有结果。也尝试了imagemin和直接jpegtran --尽管如此,在大型图像上,它提供了2-5%的压缩,而tinyfy提供了50%的压缩。当我使用一些云优化器(Tinify)时,它提供了正确的压缩。
我当前的任务如下:
gulp.task('imagemin', function() {
return gulp.src(input_files)
.pipe(newer(output_path))
.pipe(imagemin([
imagemin.gifsicle({interlaced: true}),
imagemin.jpegtran({progressive: true}),
imagemin.optipng({optimizationLevel: 7}),
imagemin.svgo({plugins: [{removeViewBox: true}]})
],{verbose:true}).on('error', gutil.log))
.pipe(gulp.dest(output_path));
});发布于 2017-05-23 14:57:41
我能得到的最好的(我想是无损的):
const imageminMozJpeg = require(config.nm + 'imagemin-mozjpeg');
const imageminPngQuant = require(config.nm + 'imagemin-pngquant');
gulp.task('imagemin', function() {
return gulp.src(input_files)
.pipe(newer(output_path))
.pipe(imagemin([
imagemin.gifsicle({interlaced: true}),
imageminMozJpeg(),
imageminPngQuant({quality:'85-100'}),
imagemin.svgo({plugins: [{removeViewBox: true}]})
]))
.pipe(gulp.dest(output_path));
});Google仍然对响应性图像不满意,当实际大小更大时,在某些google页面速度分辨率上显示的大小=/
发布于 2017-05-22 18:49:29
我用https://www.npmjs.com/package/imagemin-jpeg-recompress来解决这个问题,它也可以用在Gulp中。
在我的例子中,我使用的是ES2015和Gulp 4,任务回调驻留在它们自己的文件中,但是您应该通过查看我的代码来了解这个概念:
'use strict';
import config from '../config';
import gulp from 'gulp';
import imagemin from 'gulp-imagemin';
import imageminJpegRecompress from 'imagemin-jpeg-recompress';
export default function() {
return gulp.src([config.jekyll.imagedir + config.glob.deep.image])
.pipe(imagemin([
imagemin.gifsicle({interlaced: true}),
imageminJpegRecompress({progressive: true, method: 'smallfry', quality: 'veryhigh'}),
imagemin.optipng(),
imagemin.svgo({plugins: [{cleanupIDs: false}]})
], {verbose: true}))
.pipe(gulp.dest(config.jekyll.imagedir));
};但是要注意,这意味着使用有损算法压缩JPEG文件,而https://github.com/imagemin/imagemin-jpegtran (默认情况下用于gulp-imagemin )只进行无损转换。
https://stackoverflow.com/questions/43632747
复制相似问题