我将基于Gulp插件(例如imagemin包)找到jpg优化过程的最佳解决方案。我的目标是压缩jpg文件,如Adobe Photoshop中的Save For Web - 渐进式:真实和质量:61。
我有一张图片,以多种方式保存:
所以,我的目标是通过Gulp压缩jpg,如04.jpg。
原始图片为01.jpg(89.5 KB)。
imagemin-jpegtran和imagemin-jpegoptim的结果还不够好,因为优化级别远不是Photoshop的Save For Web:
imagemin(jpegtran inside) - > 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?
答案 0 :(得分:2)
首先,没有"质量"在JPEG中。质量是许多JPEG编码器用于选择量化表的机制。除非两个编码器为相同的质量值选择完全相同的量化表,否则使用相同的"质量"会得到不同的结果。在不同的编码器上。
您需要找到正确的压缩设置组合,以获得您在GULP中实现的功能。
您想要的设置是: 渐进式或顺序式。渐进式JPEG通常比顺序压缩更好。 如果使用渐进式,则可以调整扫描次数。
调整采样可以改善压缩效果。
量化表选择也可以改善压缩。
您的编码器可能允许您在动态(更好但更慢)和静态(更差但更快)创建的霍夫曼表之间进行选择。
您必须使用所有这些设置才能获得所需的结果。
答案 1 :(得分:-1)
问题在于插件 imagemin jpeg重新压缩 - 它在Windows中存在问题,最近它已修复。所以,我的问题不再是实际的了。