图像压缩与成像蛋白 - contrib(grunt)



我想在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(https://developers.google.com/speed/pagespeed/insights/),告诉您是否可以进一步无损地压缩image >如果您可以通过以不同的分辨率上传图像来优化图像。如果您需要/需要更多压缩,请考虑有损压缩,这可以节省大量KB,而质量只有一点损失。

优化级别选项:

即使它不会影响压缩大小,也有optimizationLevel选项可以将其设置为0到7之间的级别。它可以启用一组优化操作,并且默认情况下将其设置为3。设置级别越高,压缩操作的计算量就越大(无论如何都不重要)。因此,您可以将其设置为7,看看它是否影响压缩:

imagemin: {
            options: {
                optimizationLevel: 7
            }
            dynamic: {
                files: [{
                    expand: true,
                    cwd: 'photos/',
                    src: ['**/*.{png,jpg,gif}'],
                    dest: 'photos/optim/'
                }]
            }
        }

优化级别0实现了一组优化操作 需要最小的努力。图像属性不会更改 例如位深度或颜色类型,也没有现有IDAT的重新压缩 datastreams。优化级别1启用一个IDAT 压缩试验。选择的试验是选择的 可能是最有效的。优化级别2及更高 启用多个IDAT压缩试验;级别越高 更多试验。

参考:https://github.com/gruntjs/grunt-contrib-imagemin

最新更新