Helligkeitsstufen bei Bildern

  • 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 :)

    Einmal editiert, zuletzt von Bladerunner85 (16. Juli 2010 um 11:52)

  • 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

    [/autoit][autoit][/autoit][autoit]

    $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

    [/autoit]
  • 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?

    2 Mal editiert, zuletzt von Bladerunner85 (24. März 2010 um 19:02)