我将基于 Gulp 插件(例如 imagemin 包)找到 jpg 优化过程的最佳解决方案。我的目标是在 Adobe Photoshop 中压缩 jpg 文件,例如 Save For Web - 渐进式:真实和质量:61。
我有一张图片,以多种方式保存:
- 01.jpg (Photoshop -> ctrl+s, best quality(12), format: basic (standard)) - 89.5 KB
- 02.jpg (Photoshop -> ctrl+s, high quality(8), format: basic (optimized)) - 51.1 KB
- 03.jpg(Photoshop -> ctrl+s,中等质量(6),格式:渐进式)- 47.5 KB
- 04.jpg(Photoshop -> Save For Web,高质量(61),格式:渐进式)- 29.6 KB
所以,我的目标是像 04.jpg 一样通过 Gulp 压缩 jpg。
原始图像为 01.jpg (89.5 KB)。
imagemin-jpegtran 和 imagemin-jpegoptim 的结果不够好,原因是优化级别与 Photoshop 的 Save For Web 相差甚远:
imagemin(内部的 jpegtran)-> 51.7 KB
imagemin-jpegoptim - 无法设置(任何帮助?)
module.exports = function (gulp, plugins, config) {
var jpegoptim = require('imagemin-jpegoptim');
return function(){
gulp.src(config.assets.images.temp + '**/*.jpg')
.pipe(jpegoptim({
progressive: true
})())
.pipe(gulp.dest(config.assets.images.src));
}
};
错误:写EOF
module.exports = function (gulp, plugins, config) {
var jpegoptim = require('imagemin-jpegoptim');
return function(){
gulp.src(config.assets.images.temp + '**/*.jpg')
.pipe(plugins.imagemin({
progressive: true,
use: [
jpegoptim({
max: 61
})()
]
}))
.pipe(gulp.dest(config.assets.images.src));
}
};
损坏的图像(100% 的缩小 - 损坏的文件)
我尝试使用imagemin-jpeg-recompress,但它会引发错误:
Error: Premature end of JPEG file
JPEG datastream contains no image
所以我的问题是...
如何通过 Gulp 获得与通过 Photoshop Save For Web 相同的结果?