Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Image Uploader by ZendeN

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

Alex_Qwerty

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору


Код:
local getIndex = function(tbl, index){return (index in tbl) && tbl[index];}
 
function PreUpload(task,reserved)
{
    local cfg = {
        findInPath = true
        , OptiPNG = @"optipng.exe"
        , GraphicsMagick = @"gm.exe"
        //, ImageMagick = @"d:\path\convert.exe"    // better write full path! windows have its own convert.exe
        , jpgQuality    = 91    // IM/GM
        , pngQuality    = 95     // IM/GM, compression and filter
        , pngJpgRatio    = 2        // pngsize / jpgsize
    } // priorities: OptiPNG, GraphicsMagick, ImageMagick
 
    if ( task.type() == "TypeFile") {
        local filename = task.getFileName();
        if (GetFileExtension(filename).tolower()!="png") return true;    // only png
        if (!filename.find(@"\tmd_iu_temp\iu_temp_")) return true; // only IU screenshots
        task.setStatusText("Optimizing...");
 
        local convert = getIndex(cfg, "GraphicsMagick") || getIndex(cfg, "ImageMagick");
        local convertExec = function(args) {
            args = clone args;
            local process = Process(convert, cfg.findInPath);
            if ("GraphicsMagick" in cfg) args.insert(0,"convert");
            process.setArguments(args);
            process.setHidden(true);
            process.start();
            local exitCode = process.waitForExit(); // exit code
            return exitCode
        }
 
        local jpgName = filename+".jpg";
        local ec = 0;
 
        if (!(FileExists(jpgName)&&GetFileSize(jpgName)>99)) {
            if ("OptiPNG" in cfg) {
                local process = Process(cfg.OptiPNG, cfg.findInPath);
                process.setArguments([filename]);
                process.setHidden(true);
                process.start();
                local exitCode = process.waitForExit();
            } else if (convert) {
                convertExec(["-quality", cfg.pngQuality, filename, filename]);
            }
 
            if (convert) {
                ec = convertExec(["-sampling-factor", "4:4:4", "-quality", cfg.jpgQuality, filename, jpgName]);
            }
        }
 
        if (convert && ec==0 && (GetFileSize(filename) / GetFileSize(jpgName) >= cfg.pngJpgRatio)) {
            if (GetFileSize(jpgName)>99) {
                task.setDisplayName( ExtractFileName(jpgName) );
                task.setFileName(jpgName);
            }
        }
    }
 
    return true;
}
 
function PostUpload(task,reserved) {
    return true;
}
 
 

Всего записей: 2286 | Зарегистр. 09-09-2006 | Отправлено: 17:26 27-04-2015 | Исправлено: Alex_Qwerty, 14:59 06-02-2016
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Программы » Image Uploader by ZendeN


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru