Показать сообщение отдельно
  #2 (permalink)  
Старый 17.08.2018, 15:54
Аспирант
Отправить личное сообщение для Tipylja Посмотреть профиль Найти все сообщения от Tipylja
 
Регистрация: 17.04.2017
Сообщений: 72

Вот мой код целиком
var fs = require('fs')
    ,path = require('path')
    ,jimp = require('jimp')


// Настройки
var dir = "sources/products",
    replaceDirPath= "",
    replaceDir = "./products/";


// Название папок и размеры картинок
var settings = {
    '400x400':'400, 400' //КАРТОЧКА ТОВАРА: Основная фотография
    ,'80x80':'80, 80' //КАРТОЧКА ТОВАРА: сопутсвующий товар
    ,'200x200':'200, 200' //КАРТОЧКА ТОВАРА: хит продаж
    ,'120x120':'120, 120' //КАТЕГОРИИ: может пригодиться
    ,'265x265':'265, 265' //КАТЕГОРИИ: Фото позици
    ,'190x190':'190, 190' //КАТЕГОРИИ: хит продаж
    ,'175x175':'175, 175' //ОБЩИЕ: просмотренные
};

// Обработка картинок-файлов
function renderImg(dest, target){
    jimp.read(dest, (err, img) => {
        if (err) throw err;
        img
            //.resize() // resize
            //.quality(60) // set JPEG quality
            //.greyscale()
            .write(target); // save
});
}


function walkSync (dir, filelist = []) {
    fs.readdirSync(dir).forEach(file => {
        const dirFile = path.join(dir, file);
        for(value in settings){
            if(!fs.existsSync("./products/" + value + "/")){
                fs.mkdirSync("./products/" + value + "/");
            }
            replaceDirPath = dir.replace("sources\\products\\", replaceDir + value + "/");
            if(!fs.existsSync(replaceDirPath)){
                fs.mkdirSync(replaceDirPath);
            }
        }


    try {
        filelist = walkSync(dirFile, filelist);

    }
    catch (err) {
        if (err.code === 'ENOTDIR' || err.code === 'EBUSY') filelist = [...filelist, dirFile];
    else throw err;
    }
});

    return filelist;
}

var list = walkSync(dir);

//Цикл обработки и размещения файлов
list.forEach(function (v) {
    var dest = v;
    for(value in settings){
        var target = v.replace("sources\\products\\", replaceDir  + value + "\\");
        renderImg(dest, target);
        // fs.copyFile(dest, target, 0,(err)=>{
        //     if(err) console.log(err);
        // });
    }


});

Последний раз редактировалось Tipylja, 17.08.2018 в 16:37.
Ответить с цитированием