首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在保持文件夹结构的情况下优化所有子文件夹中的图像?

如何在保持文件夹结构的情况下优化所有子文件夹中的图像?
EN

Stack Overflow用户
提问于 2016-09-26 14:37:51
回答 1查看 1.6K关注 0票数 1

我在每个文件夹中都有一组文件夹和图像。如下所示:

代码语言:javascript
复制
+ Folder 1
     Image1.jpg
+ Folder 2
     Image1.jpg
+ Folder 3
     Image3.jpg
....

我正在尝试优化文件夹中的所有图像,使用"imagemin“node.js包,其中包含以下代码:

代码语言:javascript
复制
    const imagemin = require('imagemin');
const imageminMozjpeg = require('imagemin-mozjpeg');
const imageminPngquant = require('imagemin-pngquant');

imagemin(['images/**/*.{jpg,png,jpeg,JPG,JPEG,PNG}'], 'images/dist', {
    plugins: [
        imageminMozjpeg(),
        imageminPngquant({quality: '20-35'})
    ]
}).then(files => {
    console.log(files);
    //=> [{data: <Buffer 89 50 4e …>, path: 'build/images/foo.jpg'}, …]
});

我可以使用单个文件夹作为目的地。有没有办法覆盖图片或保持文件夹结构不变?

EN

Stack Overflow用户

发布于 2016-09-26 19:59:14

事实上,imagemin没有提供param来保持文件夹结构。通过一个接一个地压缩图像是一种解决方案,请看我的示例代码:

代码语言:javascript
复制
const imagemin = require('imagemin');
const imageminPngquant = require('imagemin-pngquant');
const globby = require('globby');
const path = require('path');

// here we got each pic path
globby('png/**/*.png', { nodir: true }).then(filePaths => {
    filePaths.forEach(filePath => {
        let fileDir = path.dirname(filePath);
        doCompress(filePath, 'out/' + fileDir);
    })
});

function doCompress(srcFile, outDir) {
    imagemin([srcFile], outDir, {
        use: [
            imageminPngquant({
                quality: '80',
                speed: 4
            })]
    }).then((ret) => {
        // todo something
    });
}
票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39696139

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档