#include <GDIP.au3>
#include <GUIConstantsEx.au3>
#include <ScreenCapture.au3>

_Example()

Func _Example()
	Local $hGUI, $hGraphics, $hBmp, $hBitmap, $hIA, $iWidth, $iHeight, $aSize

	; Инициализирует библиотеку GDI+
	_GDIPlus_Startup()

	; Создаёт GUI (нажмите ESC для выхода)
	$hGUI = GUICreate("", @DesktopWidth, @DesktopHeight)

	; Создаёт графический объект из дескриптора окна
	$hGraphics = _GDIPlus_GraphicsCreateFromHWND($hGUI)

	; Устанавливает режим интерполяции высокого качества, бикубической интерполяции. Обеспечивает высокого качество для рисования уменьшенного изображения
	_GDIPlus_GraphicsSetInterpolationMode($hGraphics, 7)

	; Делает снимок левой верхней части экрана
	$hBmp = _ScreenCapture_Capture("", 0, 0, @DesktopWidth / 2, @DesktopHeight / 2, False)
	; Создаёт объект GDI+ Bitmap из объекта GDI Bitmap
	$hBitmap = _GDIPlus_BitmapCreateFromHBITMAP($hBmp)
	; Получает размеры изображения
	$aSize = _GDIPlus_ImageGetDimension($hBitmap)
	$iWidth = $aSize[0]
	$iHeight = $aSize[1]

	; Создаёт объект ImageAttribute для применения установок
	$hIA = _GDIPlus_ImageAttributesCreate()

	GUISetState()
	; Рисует оригинальное изображение и далее с использованием порогового значения
	_GDIPlus_GraphicsDrawImageRectRect($hGraphics, $hBitmap, 0, 0, $iWidth, $iHeight, 0, 0, @DesktopWidth / 2, @DesktopHeight / 2)

	_GDIPlus_ImageAttributesSetThreshold($hIA, 1, True, 0.3) ; Устанавливает пороговое значение 0.3
	_GDIPlus_GraphicsDrawImageRectRectIA($hGraphics, $hBitmap, 0, 0, $iWidth, $iHeight, 0, @DesktopHeight / 2, @DesktopWidth / 2, @DesktopHeight / 2, $hIA)
	_GDIPlus_ImageAttributesSetThreshold($hIA, 1, True, 0.6) ; Устанавливает пороговое значение 0.6
	_GDIPlus_GraphicsDrawImageRectRectIA($hGraphics, $hBitmap, 0, 0, $iWidth, $iHeight, @DesktopWidth / 2, 0, @DesktopWidth / 2, @DesktopHeight / 2, $hIA)
	_GDIPlus_ImageAttributesSetThreshold($hIA, 1, True, 0.9) ; Устанавливает пороговое значение 0.9
	_GDIPlus_GraphicsDrawImageRectRectIA($hGraphics, $hBitmap, 0, 0, $iWidth, $iHeight, @DesktopWidth / 2, @DesktopHeight / 2, @DesktopWidth / 2, @DesktopHeight / 2, $hIA)

	
	Do
	Until GUIGetMsg() = $GUI_EVENT_CLOSE

	; Освобождает ресурсы
	_GDIPlus_ImageAttributesDispose($hIA)
	_GDIPlus_ImageDispose($hBitmap)
	_WinAPI_DeleteObject($hBmp)
	_GDIPlus_GraphicsDispose($hGraphics)

	; Закрывает библиотеку GDI+
	_GDIPlus_Shutdown()
EndFunc   ;==>_Example