День добрый всем! Скрипт отрабатывает, но не всегда изображения переворачивает. В чем ошибка, не пойму. Примеры в справке видел., похожие темы на форуме проштудировал. Прошу помочь, подсказать или показать пример, приветствуется любая помощь.
P.S. Скрипт, изменяет масштаб картинки согласно настройкам в файле Setting.txt и сохраняет копию в Screen. Если высота splash-картинки меньше ширины, то нужно повернуть ее на 90 градусов (наклонить влево)
P.S. Скрипт, изменяет масштаб картинки согласно настройкам в файле Setting.txt и сохраняет копию в Screen. Если высота splash-картинки меньше ширины, то нужно повернуть ее на 90 градусов (наклонить влево)
Код:
#Include <GDIPlus.au3>
#Include <WinAPI.au3>
Global $Height, $Width
Local $hPathImage = FileOpenDialog('Выберите файл', @ScriptDir & '\', 'Файл изображения (*.png)')
Local $hPathSettingsFile = FileOpenDialog('Выберите файл', @ScriptDir & '\', 'Файл настроек (*.txt)')
Local $hPathSettings = FileOpen($hPathSettingsFile, 0)
;If Not @error then MsgBox(0,'',$hPathSettingsFile)
While 1
$sStringImageName = FileReadLine($hPathSettings) ;возращаем очередную строку
$str = StringRegExp($sStringImageName, '([0-9.,]+)x([0-9.,]+)',3) ;находим в строке значения высоты и ширины
if IsArray ($str) then
$Height = $str[0]
$Width = $str[1]
EndIf
If $Height > $Width Then
_GreatImageRotate()
Else
_GreatImage()
EndIf
WEnd
FileClose($hPathSettingsFile)
Func _GreatImage()
_GDIPlus_Startup() ;Перед созданием любого объекта GDI+ необходимо вызвать _GDIPlus_Startup
$hNewImage = _GDIPlus_ImageLoadFromFile($hPathImage) ;Создаёт объект изображения на основе файла
$hFinalImage = _GDIPlus_ImageResize($hNewImage, $Height, $Width) ; уменьшение с искажением пропорций
_GDIPlus_ImageSaveToFile($hFinalImage, @ScriptDir & '\Screen\' & $sStringImageName) ;Сохраняет изображение в файл
_GDIPlus_ImageDispose($hNewImage) ;Освобождает объект изображения
_GDIPlus_Shutdown() ;Очищает ресурсы используемые Microsoft Windows GDI+. Нужно избавиться от всех созданных объектов GDI+, прежде чем вызвать _GDIPlus_Shutdown
EndFunc
Func _GreatImageRotate()
_GDIPlus_Startup()
$hNewImage = _GDIPlus_ImageLoadFromFile($hPathImage) ;Создаёт объект изображения на основе файла
_GDIPlus_ImageRotateFlip($hNewImage, 1) ;поворот изображения на 90 градусов без переворачивания
$hFinalImage = _GDIPlus_ImageResize($hNewImage, $Height, $Width) ; уменьшение с искажением пропорций
_GDIPlus_ImageSaveToFile($hFinalImage, @ScriptDir & '\Screen\' & $sStringImageName) ;Сохраняет изображение в файл
_GDIPlus_ImageDispose($hNewImage) ;Освобождает объект изображения
_GDIPlus_Shutdown() ;Очищает ресурсы используемые Microsoft Windows GDI+. Нужно избавиться от всех созданных объектов GDI+, прежде чем вызвать _GDIPlus_Shutdown
EndFunc ;==>Example
Вложения
Последнее редактирование: