Try something like this here:
#include <GDIPlus.au3>
#include <GUIConstantsEx.au3>
_GDIPlus_Startup()
Global $hImage = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\Dimp.png")
Global $aDim = _GDIPlus_ImageGetDimension($hImage)
Global $hImage_Negative = _GDIPlus_BitmapCreateNegative($hImage)
Global $hGUI = GUICreate("Test", $aDim[0], $aDim[1])
GUISetState()
Global $hCanvas = _GDIPlus_GraphicsCreateFromHWND($hGUI)
_GDIPlus_GraphicsDrawImageRect($hCanvas, $hImage_Negative, 0, 0, $aDim[0], $aDim[1])
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
_GDIPlus_GraphicsDispose($hCanvas)
_GDIPlus_ImageDispose($hImage_Negative)
_GDIPlus_ImageDispose($hImage)
_GDIPlus_Shutdown()
Func _GDIPlus_BitmapCreateNegative($hBitmap)
Local $aDim = _GDIPlus_ImageGetDimension($hBitmap)
Local $hBitmap_Neg = _GDIPlus_BitmapCreateFromScan0($aDim[0], $aDim[1])
Local $hGfx = _GDIPlus_ImageGetGraphicsContext($hBitmap_Neg)
Local $hIA = _GDIPlus_ImageAttributesCreate()
Local $tNegMatrix = _GDIPlus_ColorMatrixCreateNegative()
Local $pNegMatrix = DllStructGetPtr($tNegMatrix)
_GDIPlus_ImageAttributesSetColorMatrix($hIA, 0, True, $pNegMatrix)
_GDIPlus_GraphicsDrawImageRectRect($hGfx, $hBitmap, 0, 0, $aDim[0], $aDim[1], 0, 0, $aDim[0], $aDim[1], $hIA)
_GDIPlus_ImageAttributesDispose($hIA)
_GDIPlus_GraphicsDispose($hGfx)
Return $hBitmap_Neg
EndFunc ;==>_GDIPlus_BitmapCreateNegative