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

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

Модерирует : KLASS, IFkO

vu1tur (04-09-2010 17:46): http://forum.ru-board.com/topic.cgi?forum=62&topic=21297  Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

   

lorents



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

Код:
@echo off
TITLE ImageOptimizer 1.0.1.1 от 25.06.2010
echo Image Optimizer - сборник программ для оптимизации изображений (PNG, JPEG) без потери качества (под оптимизацией понимается попиксельная беспотерьность при уменьшении размера в рамках того же формата), состоящий из следующих программ:  
echo * Advpng (входит в состав AdvanceComp 1.15 от 01.11.2005);
echo * DeflOpt 2.07 от 05.09.2007;
echo * Jhead 2.90 от 05.02.2010;
echo * Jpegtran (входит в состав Libjpeg 8b от 16.05.2010);
echo * OptiPng 0.6.4 от 15.03.2010;
echo * PngCrush 1.7.11 от 10.05.2010;
echo * PngOut от 09.06.2010;
echo * PrePng от 17.05.10;
echo * Zlib 1.2.5 от 19.04.2010.
echo Автор не несет ответственность за работу данного приложения.
echo Вы используете данную программу под свой страх и риск.
echo Скопируйте необходимые изображения или папки с изображениями в папку "Images" и нажмите на Enter для продолжения.
 
pause>nul
 
:png
1>nul 2>nul dir /b /s /a-d Images\*.png || goto:jpeg
 
:loop1
echo Параметр оптимизации PNG:
echo [1] Noninterlaced
echo [2] Adam7 (Interlaced)
 
set /p png="Укажите параметр оптимизации PNG и нажмите на Enter: "
 
if not defined png goto:eof
if %png%==1 goto:Noninterlaced
if %png%==2 goto:Adam7
goto:loop1
 
:Noninterlaced
echo Noninterlaced
for /f "delims=" %%i in ('dir /b /s /a-d Images\*.png') do (
    "%~dp0Docs\prepng.exe" "%%~fi" "%%~dpni_1.png"
    call :pngopt "%%~dpni_1.png"
    "%~dp0Docs\advpng.exe" -z -4 "%%~dpni_1.png"
    "%~dp0Docs\deflopt.exe" "%%~dpni_1.png"
    "%~dp0Docs\prepng.exe" "%%~fi" "%%~dpni_2.png"
Rem    "%~dp0Docs\pngcrush.exe" -rem alla -brute -reduce "%%~dpni_2.png" "%%~dpni_3.png"
Rem    move /y "%%~dpni_3.png" "%%~dpni_2.png"
Rem    "%~dp0Docs\advpng.exe" -z -4 "%%~dpni_2.png"
Rem    "%~dp0Docs\deflopt.exe" "%%~dpni_2.png"
    "%~dp0Docs\optipng.exe" -i0 -zc1-9 -zm1-9 -zs0-3 -f0-5 "%%~dpni_2.png"
    "%~dp0Docs\advpng.exe" -z -4 "%%~dpni_2.png"
    "%~dp0Docs\deflopt.exe" "%%~dpni_2.png"
    "%~dp0Docs\pngout.exe" "%%~dpni_2.png"
    "%~dp0Docs\advpng.exe" -z -4 "%%~dpni_2.png"
    "%~dp0Docs\deflopt.exe" "%%~dpni_2.png"
    call :compare "%%~dpni_1.png" "%%~dpni_2.png" "%%~fi" "%%~nxi"
)
goto:jpeg
 
:pngopt
"%~dp0Docs\optipng.exe" -i0 -zw32k -zc1-9 -zm1-9 -zs0-3 -f0-5 -full -force %1 > %temp%\png.log
for /f "delims==,IDAT tokens=5" %%i in (%temp%\png.log) do (
    set f=%%i
)
set f=%f:~1,1%
del %temp%\png.log
"%~dp0Docs\pngout.exe" /k0 /n2 /f%f% %1
goto:eof
 
:Adam7
echo Adam7
for /f "delims=" %%i in ('dir /b /s /a-d Images\*.png') do (
    "%~dp0Docs\prepng.exe" "%%~fi"
    "%~dp0Docs\optipng.exe" -i1 "%%~fi"
    "%~dp0Docs\pngcrush.exe" -rem alla -brute -reduce "%%~fi" "%%~dpni.tmp"
    move /y "%%~dpni.tmp" "%%~fi"
    "%~dp0Docs\advpng.exe" -z -4 "%%~fi"
    "%~dp0Docs\deflopt.exe" "%%~fi"
    "%~dp0Docs\optipng.exe" -zw32k -zc1-9 -zm1-9 -zs0-3 -f0-5 "%%~fi"
    "%~dp0Docs\advpng.exe" -z -4 "%%~fi"
    "%~dp0Docs\deflopt.exe" "%%~fi"
)
 
:jpeg
1>nul 2>nul dir /b /s /a-d Images\*.jpg Images\*.jpeg && goto:loop2
if defined png goto:eof
echo Изображения формата *.png и *.jpg (*.jpeg) в папке "Images" не обнаружены.
echo Нажмите на Enter для выхода из приложения.
pause>nul
goto:eof)
 
:loop2
echo Параметр оптимизации JPEG:
echo [1] Optimize
echo [2] Progressive
echo [3] Progressive vs. Optimize (сравниваются по размеру файлы, полученные обоими методами сжатия, и выбирается файл с наименьшим размером)
 
set /p jpeg="Укажите параметр оптимизации JPEG и нажмите на Enter: "
 
if not defined jpeg goto:eof
if %jpeg%==1 goto:Optimize
if %jpeg%==2 goto:Progressive
if %jpeg%==3 goto:Progressive_Optimize
goto:loop2
 
:Optimize
echo JPEG - Optimize
for /f "delims=" %%i in ('dir /b /s /a-d Images\*.jpg Images\*.jpeg') do (
    "%~dp0Docs\jpegtran.exe" -copy all -optimize "%%~fi" "%%~fi"
    "%~dp0Docs\jhead.exe" -dc -de -di -dx -du "%%~fi"
)
goto:eof
 
:Progressive
echo JPEG - Progressive
for /f "delims=" %%i in ('dir /b /s /a-d Images\*.jpg Images\*.jpeg') do (
    "%~dp0Docs\jpegtran.exe" -copy all -progressive "%%~fi" "%%~fi"
    "%~dp0Docs\jhead.exe" -dc -de -di -dx -du "%%~fi"
)
goto:eof
 
:Progressive_Optimize
echo JPEG - Progressive vs. Optimize
for /f "delims=" %%i in ('dir /b /s /a-d Images\*.jpg Images\*.jpeg') do (
    "%~dp0Docs\jpegtran.exe" -copy all -progressive "%%~fi" "%%~dpni_pro.tmp"
    "%~dp0Docs\jpegtran.exe" -copy all -optimize "%%~fi" "%%~dpni_opt.tmp"
    call :compare "%%~dpni_pro.tmp" "%%~dpni_opt.tmp" "%%~fi" "%%~nxi"
    "%~dp0Docs\jhead.exe" -dc -de -di -dx -du "%%~fi"
)
goto:eof
 
:compare
if %~z1 LSS %~z2 (
    DEL /F /Q %2
    DEL /F /Q %3
    REN %1 %4
) else (
    DEL /F /Q %1
    DEL /F /Q %3
    REN %2 %4
)
goto:eof

Всего записей: 3297 | Зарегистр. 30-12-2007 | Отправлено: 23:41 18-06-2010 | Исправлено: lorents, 23:42 18-06-2010
   

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

Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 8
vu1tur (04-09-2010 17:46): http://forum.ru-board.com/topic.cgi?forum=62&topic=21297


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru