Что нового

Изменение размеров картинки с помощью GDI+

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Функция изменяет размер картинки $hImage до указанных значений $iWidth и $iHeight. При успешном завершении, _GDIPlus_GetImageThumbnail() возвращает хэндл новой (уменьшенной/увеличенной) картинки. В случае возникновения ошибки функция возвращает 0 и устанавливает @error в 1. Представленный ниже пример делает снимок экрана, уменьшает его в 4 раза и сохраняет полученный результат в файл screenshort.jpg.


Код:
#Include <GDIPlus.au3>
#Include <ScreenCapture.au3>

$hBitmap = _ScreenCapture_Capture()
_GDIPlus_Startup()
$hImage = _GDIPlus_BitmapCreateFromHBITMAP($hBitmap)
_WinAPI_DeleteObject($hBitmap)
$hThumb = _GDIPlus_GetImageThumbnail($hImage, _GDIPlus_ImageGetWidth($hImage) / 4, _GDIPlus_ImageGetHeight($hImage) / 4)
_GDIPlus_ImageDispose($hImage)
_GDIPlus_ImageSaveToFile($hThumb, @ScriptDir & '\screenshort.jpg')
_GDIPlus_ImageDispose($hThumb)
_GDIPlus_Shutdown()

Func _GDIPlus_GetImageThumbnail($hImage, $iWidth, $iHeight)

	Local $Ret = DllCall($ghGDIPDll, 'int', 'GdipGetImageThumbnail', 'ptr', $hImage, 'int', $iWidth, 'int', $iHeight, 'ptr*', 0, 'ptr', 0, 'ptr', 0)

	If (@error) Or ($Ret[0]) Then
		Return SetError(1, 0, 0)
	EndIf
	Return $Ret[4]
EndFunc   ;==>_GDIPlus_GetImageThumbnail
 
Верх