Javascript 使用imagemin contrib(Grunt)进行图像压缩
我想在Javascript 使用imagemin contrib(Grunt)进行图像压缩,javascript,node.js,gruntjs,grunt-contrib-imagemin,Javascript,Node.js,Gruntjs,Grunt Contrib Imagemin,我想在Grunt.js中测试imagemin contrib。我选择了三张jpg随机图像(大小分别为44kb、92kb、77kb),并设置了文件夹和插件 当我运行imagemingrunt任务时,我收到一条消息说照片已成功优化,但数字显示前两张照片的大小仅减少了5kb或10kb,第三张照片根本没有改变 我想知道这对于“优化图像”来说是否正常?我原以为尺码会大幅下降。可能是我选择的图像已经被优化了吗?或者可能是我写grunt命令的方式 下面是我用来执行grunt命令的代码: module.expo
Grunt.js
中测试imagemin contrib
。我选择了三张jpg
随机图像(大小分别为44kb、92kb、77kb),并设置了文件夹和插件
当我运行imagemin
grunt任务时,我收到一条消息说照片已成功优化,但数字显示前两张照片的大小仅减少了5kb或10kb,第三张照片根本没有改变
我想知道这对于“优化图像”来说是否正常?我原以为尺码会大幅下降。可能是我选择的图像已经被优化了吗?或者可能是我写grunt命令的方式
下面是我用来执行grunt命令的代码:
module.exports = function(grunt) {
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
//Image Min Plugin
imagemin: {
dynamic: {
files: [{
expand: true,
cwd: 'photos/',
src: ['**/*.{png,jpg,gif}'],
dest: 'photos/optim/'
}]
}
}
});
grunt.loadNpmTasks('grunt-contrib-imagemin');
grunt.registerTask('default', ['imagemin']);
};
一般信息 这完全取决于这些图像的原始状态。如果它们已经被压缩(例如,当使用photoshop导出时),它们几乎无法进一步压缩而不损失质量。所以很有可能你不会从优化中获得很多利润。如果这些是未压缩的图像,那么
grunt contrib imagemin
会有很大帮助
这个插件在它应该做的事情上做得很好,但是很明显,如果图像质量下降,它不会压缩图像。它也不知道图像是否可以调整大小(这通常是一种非常好的压缩)。如果您正在寻找最佳压缩,可以运行pagespeed insights(),它告诉您是否可以进一步无损压缩图像,如果可以通过以不同分辨率上载图像来优化图像,则告诉您。如果你需要/需要更多的压缩,考虑有损压缩,它可以节省大量的KBS,只有一点点质量损失。
优化级别选项:
尽管它不会对压缩大小产生太大影响,但是有一个optimizationLevel
选项可以设置为0到7之间的级别。它启用一组优化操作,默认设置为3。设置的级别越高,压缩操作的计算成本就越高(无论如何都不重要)。因此,您可以将其设置为7,然后查看它是否会影响压缩:
imagemin: {
options: {
optimizationLevel: 7
}
dynamic: {
files: [{
expand: true,
cwd: 'photos/',
src: ['**/*.{png,jpg,gif}'],
dest: 'photos/optim/'
}]
}
}
优化级别0启用一组优化操作,这些操作
需要最少的努力。图像属性不会有任何更改
如位深度或颜色类型,且不重新压缩现有IDAT
数据流。优化级别1启用单个IDAT
压缩试验。选择的试验是OptiPNG认为的
可能是最有效的。优化级别为2级及以上
启用多个IDAT压缩试验;级别越高,级别越高
更多的试验
参考资料:这是我在这里收到的最令人惊讶的完整答案。非常感谢您花时间详细解释。我将添加另一条信息,因为我实际上忘记了一些事情。我认为优化级别仅适用于.png,git说“optimizationLevel(png)”