Можно ещё так (с возможностью указать фиксированную ширину):
Код:
#include <GDIPlus.au3>
_Image_Scale('Src.jpg', 'Dst.jpg', 400)
Func _Image_Scale($sSrc_File, $sDest_File, $iWidth, $iHeight = -1)
_GDIPlus_Startup()
Local $hImage = _GDIPlus_ImageLoadFromFile($sSrc_File)
Local $iImg_W = _GDIPlus_ImageGetWidth($hImage)
Local $iImg_H = _GDIPlus_ImageGetHeight($hImage)
Local $iScale, $hResized
If $iHeight = -1 Then
$iScale = (100 / $iImg_W * $iWidth) / 100
$hResized = _GDIPlus_ImageScale($hImage, $iScale, $iScale)
Else
$hResized = _GDIPlus_ImageResize($hImage, $iWidth, $iHeight)
EndIf
_GDIPlus_ImageSaveToFile($hResized, $sDest_File)
_GDIPlus_imageDispose($hImage)
_GDIPlus_ImageDispose($hResized)
_GDIPlus_Shutdown()
EndFunc