Доброе утро, программисты по автоит.
Хочу задать вопрос технического характера.
У меня имеется код, размещения фотографии с определенными размерами в определенных координатах.
Код меняет размер высоты фотографии с сохранением пропорций.
Но когда я вывожу это на экран в определенные координаты - скрипт выводит не те размеры, которые есть у фотофайла Resized.jpg , а почему-то втрое меньшие.
Я подозреваю, что неправильно работает вот этот кусок кода:
Потому что, у файла Resized.jpg - размеры те которые нужны, а этот кусок кода - как-то неправильно эти размеры выводит на экран.
Подскажите - как заставить скрипт выводить в нужные координаты - фотографию с теми размерами, которые есть у файла Resized.jpg (а не втрое меньшими) ?
Хочу задать вопрос технического характера.
У меня имеется код, размещения фотографии с определенными размерами в определенных координатах.
Код меняет размер высоты фотографии с сохранением пропорций.
Код:
#Include <GDIPlus.au3>
#include <File.au3>
_GDIPlus_Startup()
$CurImage = _GDIPlus_ImageLoadFromFile('C:\1\test.jpg')
$sCLSID = _GDIPlus_EncodersGetCLSID("jpg")
$NewSizeW = Round((_GDIPlus_ImageGetWidth($CurImage) * 1060) / _GDIPlus_ImageGetHeight($CurImage))
$NewImage = _GDIPlus_BitmapCreateFromScan0($NewSizeW, 1060, _GDIPlus_ImageGetPixelFormat($CurImage)[0])
$hGraphics = _GDIPlus_ImageGetGraphicsContext($NewImage)
_GDIPlus_GraphicsSetInterpolationMode($hGraphics, 7)
_GDIPlus_GraphicsDrawImageRectRect($hGraphics, $CurImage, 0, 0, _GDIPlus_ImageGetWidth($CurImage), _GDIPlus_ImageGetHeight($CurImage), 0, 0, $NewSizeW, 1060)
_GDIPlus_GraphicsDispose($hGraphics)
If FileExists("Resized.jpg") Then FileRecycle("Resized.jpg")
$tParams = _GDIPlus_ParamInit(1)
$tData = DllStructCreate("int Quality")
DllStructSetData($tData, "Quality", 100)
$pData = DllStructGetPtr($tData)
_GDIPlus_ParamAdd($tParams, $GDIP_EPGQUALITY, 1, $GDIP_EPTLONG, $pData)
$pParams = DllStructGetPtr($tParams)
_GDIPlus_ImageSaveToFileEx($NewImage, "Resized.jpg", $sCLSID, DllStructGetPtr($tParams))
_GDIPlus_ImageDispose($CurImage)
_GDIPlus_ImageDispose($NewImage)
_GDIPlus_Shutdown()
$hImage = _GDIPlus_ImageLoadFromFile("Resized.jpg")
$H2 = _GDIPlus_ImageGetHeight($hImage)
$W2 = _GDIPlus_ImageGetWidth($hImage)
SplashImageOn('', @ScriptDir & '\Resized.jpg', $W2, $H2, 1800-$H2/2, 1090, 1)
Sleep(3000)
SplashOff()
Но когда я вывожу это на экран в определенные координаты - скрипт выводит не те размеры, которые есть у фотофайла Resized.jpg , а почему-то втрое меньшие.
Я подозреваю, что неправильно работает вот этот кусок кода:
Код:
$hImage = _GDIPlus_ImageLoadFromFile("Resized.jpg")
$H2 = _GDIPlus_ImageGetHeight($hImage)
$W2 = _GDIPlus_ImageGetWidth($hImage)
Подскажите - как заставить скрипт выводить в нужные координаты - фотографию с теми размерами, которые есть у файла Resized.jpg (а не втрое меньшими) ?