PNG drehen.. was mache ich falsch

  • Ich versuche ein PNG zu drehen. JPG klappt wunderbar mit GDI+ aber das PNG wird nur erstellt jedoch nicht gedreht.
    Was mach ich da falsch ?


    Spoiler anzeigen


    func drehen()

    Local $hImage
    Local $sCLSID
    Local $tData
    Local $tParams

    ; GDI starten
    _GDIPlus_Startup ()
    ; Bild laden
    $hImage = _GDIPlus_ImageLoadFromFile ($path_table & $table_name & ".png")
    ; Für JPG Bilder muss folgende Zeile aktiv sein
    $sCLSID = _GDIPlus_EncodersGetCLSID ("PNG")
    ; Ab hier werden die Parameter gesetzt
    $tData = DllStructCreate("int Data")
    DllStructSetData($tData, "Data", $GDIP_EVTTRANSFORMROTATE90)
    $tParams = _GDIPlus_ParamInit (1)
    _GDIPlus_ParamAdd ($tParams, $GDIP_EPGTRANSFORMATION, 1, $GDIP_EPTLONG, DllStructGetPtr($tData, "Data"))
    ; Bild speichern
    _GDIPlus_ImageSaveToFileEx ($hImage, $path_table & $table_name & "90.png", $sCLSID, DllStructGetPtr($tParams))
    ; GDI beenden
    _GDIPlus_ImageDispose($hImage)
    _GDIPlus_ShutDown ()

    EndFunc

    Irgendwie mag IRON den autoit Tag nicht.

    Einmal editiert, zuletzt von flynt_castwood (6. Februar 2012 um 16:08)

  • Das klappt leider auch nicht .. vorausgesetzt dass der code richtig ist

    Spoiler anzeigen

    Local $hBitmap, $hImage, $tData, $tParams

    ; Initialisiert (startet) Microsoft Windows GDI+
    _GDIPlus_Startup()

    ; Lädt ein Bild
    $hImage = _GDIPlus_ImageLoadFromFile("C:\pix\backglass\Sci-Fi Classic.png")

    Global $hMatrix = _GDIPlus_MatrixCreate()

    _GDIPlus_MatrixRotate($hMatrix, 180, "False")
    _GDIPlus_GraphicsSetTransform($hImage, $hMatrix)

    ; Speichert das gedrehte Bild
    _GDIPlus_ImageSaveToFile($hImage, "C:\pix\backglass\Sci-Fi Classic180.png")

    ; Gibt die durch Microsoft Windows GDI+ verwendeten Ressourcen wieder frei
    _GDIPlus_Shutdown()

  • ok, so klappt es ... mit der gdip.au3

    Spoiler anzeigen


    $hImage = _GDIPlus_ImageLoadFromFile("C:\pix\backglass\test.png")
    _GDIplus_ImageRotateFlip($hImage, 2)

    _GDIPlus_ImageSaveToFile($hImage,"C:\pix\backglass\test180.png")

    _GDIPlus_ImageDispose($hImage)
    _GDIPlus_Shutdown()