res2001
Silver Member | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Код: @echo off TITLE ImageOptimizer 1.0.2.0 от 01.07.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 setlocal ENABLEDELAYEDEXPANSION set logfile=file.log :png 1>nul 2>nul dir /b /s /a-d Images\*.png || goto:jpeg :loop1 set png= echo Параметр оптимизации PNG: echo [1] Noninterlaced; echo [2] Adam7 (Interlaced). set /p png="Укажите параметр оптимизации PNG и нажмите на Enter: " if defined png if "%png%" neq "1" if "%png%" neq "2" goto:loop1 :jpeg 1>nul 2>nul dir /b /s /a-d Images\*.jpg Images\*.jpeg && goto:loop2 if defined png goto :pngwork echo Изображения формата *.png и *.jpg (*.jpeg) в папке "Images" не обнаружены. echo Нажмите на Enter для выхода из приложения. pause>nul goto:eof :loop2 set jpeg= echo Параметр оптимизации JPEG: echo [1] Optimize; echo [2] Progressive; echo [3] Progressive vs. Optimize (сравниваются по размеру файлы, полученные обоими методами сжатия, и выбирается файл с наименьшим размером). echo Внимание: при Progressive'ом методе сжатие оригинальное и полученное изображения попиксельно будут отличаться, но на глаз определить не возможно. set /p jpeg="Укажите параметр оптимизации JPEG и нажмите на Enter: " if defined jpeg if "%jpeg%" neq "1" if "%jpeg%" neq "2" if "%jpeg%" neq "3" goto:loop2 :pngwork if not defined png goto :jpegwork if %png%==1 goto:Noninterlaced if %png%==2 goto:Adam7 goto:jpegwork :Noninterlaced echo Noninterlaced for /f "delims=" %%i in ('dir /b /s /a-d Images\*.png') do ( set origsize=%%~zi "%~dp0Docs\prepng.exe" "%%~fi" call :pngopt "%%~fi" "%~dp0Docs\advpng.exe" -z -4 "%%~fi" "%~dp0Docs\deflopt.exe" "%%~fi" call :savelog "%%i" !origsize! ) goto :jpegwork :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 exit /b :Adam7 echo Adam7 for /f "delims=" %%i in ('dir /b /s /a-d Images\*.png') do ( set origsize=%%~zi "%~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" call :savelog "%%i" !origsize! ) :jpegwork if not defined jpeg goto:eof if %jpeg%==1 goto:Optimize if %jpeg%==2 goto:Progressive if %jpeg%==3 goto:Progressive_Optimize goto:eof :Optimize echo JPEG - Optimize for /f "delims=" %%i in ('dir /b /s /a-d Images\*.jpg Images\*.jpeg') do ( set origsize=%%~zi "%~dp0Docs\jpegtran.exe" -copy all -optimize "%%~fi" "%%~fi" "%~dp0Docs\jhead.exe" -dc -de -di -dx -du "%%~fi" call :savelog "%%i" !origsize! ) goto:eof :Progressive echo JPEG - Progressive for /f "delims=" %%i in ('dir /b /s /a-d Images\*.jpg Images\*.jpeg') do ( set origsize=%%~zi "%~dp0Docs\jpegtran.exe" -copy all -progressive "%%~fi" "%%~fi" "%~dp0Docs\jhead.exe" -dc -de -di -dx -du "%%~fi" call :savelog "%%i" !origsize! ) goto:eof :Progressive_Optimize echo JPEG - Progressive vs. Optimize for /f "delims=" %%i in ('dir /b /s /a-d Images\*.jpg Images\*.jpeg') do ( set origsize=%%~zi "%~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" call :savelog "%%i" !origsize! ) 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 ) exit /b :savelog set /a "perc=%~z1*1000/%2" echo %~nx1;%2;%~z1;%perc:~,-1%.%perc:~-1% >>%logfile% exit /b |
| Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 21:42 25-06-2010 | Исправлено: res2001, 16:02 26-06-2010 |
|