黄舟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'));
});