- Сообщения
- 1,590
- Репутация
- 341
AutoIt: 3.3.0.0
Версия: 1.0.0.3
Категория: Автоматизация, Файловая система
Описание: Программа для быстрого конвертирования большого количества изображений в другой формат с минимальной потерей качества. Обычно это могут делать "просмотровщики" типа ACDSee, PhotoScape и др., но они слишком громоздкие.
Код/Пример:
Файл: EXE + AU3
Снимок:
1.0.0.2
1.0.0.3
Источник: autoit-script.ru
Автор(ы): Medic84 , CreatoR
Версия: 1.0.0.3
Категория: Автоматизация, Файловая система
Описание: Программа для быстрого конвертирования большого количества изображений в другой формат с минимальной потерей качества. Обычно это могут делать "просмотровщики" типа ACDSee, PhotoScape и др., но они слишком громоздкие.
Код/Пример:
Код:
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_icon=Icon_239.ico
#AutoIt3Wrapper_outfile=ConvertIt.exe
#AutoIt3Wrapper_Compression=4
#AutoIt3Wrapper_UseUpx=n
#AutoIt3Wrapper_Res_Comment=Программа для быстрого конвертирования изображений
#AutoIt3Wrapper_Res_Description=Программа для быстрого конвертирования изображений
#AutoIt3Wrapper_Res_Fileversion=1.0.0.3
#AutoIt3Wrapper_Res_LegalCopyright=Copyright © 2009 Medic84
#AutoIt3Wrapper_Res_Language=1049
#AutoIt3Wrapper_Res_requestedExecutionLevel=requireAdministrator
#AutoIt3Wrapper_Res_Field=Разработчик|Medic84 & CreatoR
#AutoIt3Wrapper_Res_Field=E-mail|[email protected]
#AutoIt3Wrapper_Res_Field=Версия AutoIt|%AutoItVer%
#AutoIt3Wrapper_Res_Field=Дата компиляции|%date% %time%
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <GUIConstantsEx.au3>
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <GDIPlus.au3>
#include <File.au3>
Global $sPath_Read, $sIn, $sOut
Global $iAbort = 0
$Font = "Comic Sans MS"
Global $sCopyright_URL = "http://autoit-script.ru"
$Form1_1 = GUICreate("ConvertIT", 250, 280)
GUICtrlCreateTab(5, 5, 240, 270)
GUICtrlCreateTabItem("Главная")
GUISetIcon(@ScriptDir & "\Icon.ico")
GUICtrlCreateLabel("Выберите папку:", 15, 30, -1, 13)
$Input1 = GUICtrlCreateInput(@MyDocumentsDir & "\Мои рисунки", 15, 50, 180, 20)
$Path_Butn = GUICtrlCreateButton("...", 200, 50, 30, 20)
GUICtrlCreateLabel("Конвертировать...", 15, 75, -1, 13)
GUICtrlCreateLabel("Из:", 15, 100, -1, 13)
$Combo1_Out = GUICtrlCreateCombo("", 150, 100, 75, 25, BitOR($CBS_DROPDOWNLIST, $CBS_AUTOHSCROLL))
GUICtrlSetData(-1, "BMP|JPG|JPEG|GIF|PNG|TIF|TIFF")
GUICtrlCreateLabel("В:", 125, 100, -1, 13)
$Combo2_In = GUICtrlCreateCombo("", 40, 100, 75, 25, BitOR($CBS_DROPDOWNLIST, $CBS_AUTOHSCROLL))
GUICtrlSetData(-1, "BMP|JPG|JPEG|GIF|PNG|TIF|TIFF")
$Delete_Img = GUICtrlCreateCheckbox("Удалять исходники", 15, 140)
$Label_Scet = GUICtrlCreateLabel("", 15, 180, 220, 13, $SS_CENTER)
GUICtrlSetFont(-1, 9, 600, 4, $Font)
GUICtrlSetColor(-1, 16711680)
$Start = GUICtrlCreateButton("Начать", 45, 235, 160, 30)
$Progress = GUICtrlCreateProgress(15, 200, 220, 30)
GUICtrlCreateTabItem("О программе")
;GUICtrlCreatePic("au3.jpg", 90, 40, 70, 84)
GUICtrlCreateLabel("Программа предназначена для быстрой конвертации большого количества изображений без потери качества", 15, 140, 220, 100, $SS_CENTER)
GUICtrlCreateLabel("Copyright © 2010 Medic84", 60, 250, 210, 20)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Path_Butn
$sInitDir = GUICtrlRead($Input1)
While 1
$Folder1 = FileSelectFolder("Выберите папку:", "", 1, $sInitDir, $Form1_1)
If @error Then ContinueLoop 2
If FileExists($Folder1) Then ExitLoop
$sInitDir = $Folder1
MsgBox(48, "Внимание", "Выбранный вами каталог не существует.", 0, $Form1_1)
WEnd
GUICtrlSetData($Input1, $Folder1)
Case $Start
_Convert_Proc()
EndSwitch
WEnd
Func _Convert_Proc()
$sPath_Read = GUICtrlRead($Input1)
$sIn = GUICtrlRead($Combo2_In)
$sOut = GUICtrlRead($Combo1_Out)
$iDeleteImgs = (GUICtrlRead($Delete_Img) = $GUI_CHECKED)
If StringStripWS($sPath_Read, 8) = "" or StringStripWS($sIn, 8) = "" or StringStripWS($sOut, 8) = "" Then Return MsgBox(16, "Ошибка", "Задано пустое поле!", 0, $Form1_1)
If $sIn = $sOut Or (StringRegExp($sIn, "(?i)JPE?G") And StringRegExp($sOut, "(?i)JPE?G")) Or (StringRegExp($sIn, "(?i)TIFF?") And StringRegExp($sOut, "(?i)TIFF?")) Then Return MsgBox(16, "Ошибка", "Выбраны одинаковые форматы", 0, $Form1_1)
$aFileList = _FileListToArray($sPath_Read, "*." & $sIn)
Switch @error
Case 1
Return MsgBox(16, "Ошибка", "Папка не найдена. Либо доступ к папке закрыт", 0, $Form1_1)
Case 2
Return MsgBox(16, "Ошибка", "Неверный фильтр", 0, $Form1_1)
Case 3
Return MsgBox(16, "Ошибка", "Неверный флаг", 0, $Form1_1)
Case 4
Return MsgBox(16, "Ошибка", "Файлы не найдены", 0, $Form1_1)
EndSwitch
Opt("GUIOnEventMode", 1)
GUICtrlSetState($Path_Butn, $GUI_DISABLE)
GUICtrlSetData($Start, "Прервать")
GUICtrlSetOnEvent($Start, "_Abort_Convert_Proc")
_GDIPlus_Startup()
$i1_Percent = Round(100 / $aFileList[0], 9)
$iPercents = 0
For $i = 1 To $aFileList[0]
$iPercents += $i1_Percent
If $iAbort Then ExitLoop
$sOldI = $sPath_Read & "\" & $aFileList[$i]
$sNewI = StringRegExpReplace($sOldI, "\.[^\.]*$", ".") & $sOut
$hImage = _GDIPlus_ImageLoadFromFile($sOldI)
$CLSID = _GDIPlus_EncodersGetCLSID($sOut)
If $iAbort Then ExitLoop
_GDIPlus_ImageSaveToFileEx($hImage, $sNewI, $CLSID)
Sleep(50)
If $iAbort Then ExitLoop
_GDIPlus_ImageDispose($hImage)
If $iAbort Then ExitLoop
GUICtrlSetData($Label_Scet, StringFormat("Обработан Файл [%i] из [%i]", $i, $aFileList[0]))
GUICtrlSetData($Progress, $iPercents)
If $iDeleteImgs Then FileDelete($sOldI)
Next
_GDIPlus_Shutdown()
$iAbort = 0
GUICtrlSetData($Progress, 0)
Opt("GUIOnEventMode", 0)
GUICtrlSetState($Path_Butn, $GUI_ENABLE)
GUICtrlSetData($Start, "Начать")
GUICtrlSetData($Label_Scet, "")
EndFunc
Func _Abort_Convert_Proc()
If MsgBox(52, "Внимание!", "Отменить конвертирование?", 0, $Form1_1) = 6 Then $iAbort = 1
EndFunc
Снимок:
1.0.0.2
1.0.0.3
Источник: autoit-script.ru
Автор(ы): Medic84 , CreatoR