Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用imagemin contrib(Grunt)进行图像压缩_Javascript_Node.js_Gruntjs_Grunt Contrib Imagemin - Fatal编程技术网

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)”