Heim > Fragen und Antworten > Hauptteil
黄舟2017-04-17 13:15:15
用默认组件和默认参数当然压不下去,imagemin得自己搭配组件和参数啊。。。
贴段自己写的:
gulp.task('imgmin', function() {
var jpgmin = imageminJpegRecompress({
accurate: true,//高精度模式
quality: "high",//图像质量:low, medium, high and veryhigh;
method: "smallfry",//网格优化:mpe, ssim, ms-ssim and smallfry;
min: 70,//最低质量
loops: 0,//循环尝试次数, 默认为6;
progressive: false,//基线优化
subsample: "default"//子采样:default, disable;
}),
pngmin = imageminOptipng({
optimizationLevel: 4
});
gulp.src(srcImage)
.pipe(imagemin({
use: [jpgmin, pngmin]
}))
.pipe(gulp.dest(dstImage));
});
压缩jpeg和png效果还行,其它格式一直摸不到门所以就用默认处理了。
工具类的软件, 目前我用的是Antelope, 文件往里一拖直接点优化就行了.
PHP中文网2017-04-17 13:15:15
我用了这个插件 https://www.npmjs.com/package/gulp-tinypng-compress
优点是压缩效果很好,图片质量也有保证,因为用的是https://tinypng.com他的api.
缺点是时间特别长,每月有数量限制
高洛峰2017-04-17 13:15:15
npm中不是有imagemin模块,我个人喜欢用gulp;
可以参考官方提供的demo, 官方demo使用const
请修改成var
,const
是es6语法。
const gulp = require('gulp');
const imagemin = require('gulp-imagemin');
const pngquant = require('imagemin-pngquant');
gulp.task('default', () => {
return gulp.src('src/images/*')
.pipe(imagemin({
progressive: true,
svgoPlugins: [{removeViewBox: false}],
use: [pngquant()]
}))
.pipe(gulp.dest('dist/images'));
});