Hi,
möchte nen Bild in sechs Helligkeitsstufen unterteilen und die jeweiligen Pixel der Helligkeitsstufen in Arrays speichern.
Kann mir vlt jemand nen Script posten wie das funktioniert?
MfG
Bladerunner85
Hi,
möchte nen Bild in sechs Helligkeitsstufen unterteilen und die jeweiligen Pixel der Helligkeitsstufen in Arrays speichern.
Kann mir vlt jemand nen Script posten wie das funktioniert?
MfG
Bladerunner85
Mit SetBitmap. Und dann mit $iOpacity von 0 - 255 die Helligkeit.
[autoit]$hImage = _GDIPlus_ImageLoadFromFile("Bild.png")
[/autoit][autoit][/autoit][autoit]SetBitmap($Gui, $hImage, 255)
[/autoit][autoit][/autoit][autoit]Func SetBitmap($hGUI, $hImage, $iOpacity)
Local $hScrDC, $hMemDC, $hBitmap, $hOld, $pSize, $tSize, $pSource, $tSource, $pBlend, $tBlend
$hScrDC = _WinAPI_GetDC(0)
$hMemDC = _WinAPI_CreateCompatibleDC($hScrDC)
$hBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage)
$hOld = _WinAPI_SelectObject($hMemDC, $hBitmap)
$tSize = DllStructCreate($tagSIZE)
$pSize = DllStructGetPtr($tSize)
DllStructSetData($tSize, "X", _GDIPlus_ImageGetWidth($hImage))
DllStructSetData($tSize, "Y", _GDIPlus_ImageGetHeight($hImage))
$tSource = DllStructCreate($tagPOINT)
$pSource = DllStructGetPtr($tSource)
$tBlend = DllStructCreate($tagBLENDFUNCTION)
$pBlend = DllStructGetPtr($tBlend)
DllStructSetData($tBlend, "Alpha", $iOpacity)
DllStructSetData($tBlend, "Format", $AC_SRC_ALPHA)
_WinAPI_UpdateLayeredWindow($hGUI, $hScrDC, 0, $pSize, $hMemDC, $pSource, 0, $pBlend, $ULW_ALPHA)
_WinAPI_ReleaseDC(0, $hScrDC)
_WinAPI_SelectObject($hMemDC, $hOld)
_WinAPI_DeleteObject($hBitmap)
_WinAPI_DeleteDC($hMemDC)
EndFunc ;==>SetBitmap
Hi,
danke für die Antwort;)
Bei mir kommt aber immer WARNING: $AC_SRC_ALPHA: possibly used before declaration und ERROR: $AC_SRC_ALPHA: undeclared global variable.
Was ist in der Funktion eig $hGUI?
MfG
Bladerunner85
Achso hat ich vergessen, schreib am Anfang des Scriptes nach den Includes
[autoit]Global Const $AC_SRC_ALPHA = 1
[/autoit]Und $hGui ist das handle von deiner Gui also von GuiCreate.
Hi,
danke aber was ist eigentlich der Rückgabewert der Funktion?
Hab sie mal in ner msgbox ausgegeben und erhalte immer null.
Gibt es vlt noch ne andere Möglichkeit?
Wollte eigentlich alles ohne GUI machen.
MfG
Bladerunner
Edit: Weis keiner ne Lösung?
Die Funktion hat keinen Rückgabewert, was willste auch da zurückhaben?