我想测试一下imagemin-contrib在Grunt.js上的表现。我选择了三个jpg随机图像(大小分别为44 up,92 up,77 up),并设置了文件夹和插件。
当我运行imagemin咕噜任务时,我收到一条消息说照片被成功地优化了,但是数字显示前两张照片的大小只减少了5kb或10 5kb,第三张照片根本没有改变。
我想知道这对于“优化图像”是否正常?我还以为会有更大幅度的缩小呢。难道我所选择的图像已经被简单地优化了吗?或者是我写的咕噜命令?
下面是我用来执行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']);
};发布于 2017-12-01 19:21:44
通用信息
这完全取决于这些图像的原始状态。如果他们已经被压缩(例如,当出口与photoshop),他们几乎无法进一步压缩,而没有质量损失。因此,很有可能通过优化不会带来很大的收益。但是,如果这些是未压缩的图像,grunt-contrib-imagemin可以提供很大帮助。
插件做了一个伟大的工作,它应该做什么,但很明显,它不压缩图像,如果有质量下降。此外,它也不知道图像是否可以调整大小(这通常是一种非常好的压缩)。如果您正在寻找最佳压缩,您可以运行分页洞察力(https://developers.google.com/speed/pagespeed/insights/),它告诉您是否可以进一步无损压缩图像和,如果您可以通过上传不同分辨率的图像来优化图像。如果您想要/需要更多的压缩,可以考虑有损压缩,这样可以节省大量的kbs,而且质量损失很小。
The optimizationLevel选项:
尽管压缩大小不会受到很大影响,但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压缩试验;级别越高,试验越多。
https://stackoverflow.com/questions/47599933
复制相似问题