Größe und Dateinamen änderen

  • Hey leute,

    ich brauche eure Hilfe
    ich will mit einem kleinen Programm ein Bild änderen und zwar soll die größe und der datei name geändert werden.
    Dabei soll man die größe selber änderen können und der Dateiname sollte immer gleich bleiben "bild_monat".
    Das Bild soll dann unter dem namen "bild_monat.jpg" abgespeichert werden (wichtig das, dass .jpg klein ist.

    Hier mal die roh fassung des Programmes...

    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <ProgressConstants.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Bild des Monats | Umbenenner (All to .jpg)", 431, 205, 192, 124)
    GUISetBkColor(0xA0A0A4)
    $Input1 = GUICtrlCreateInput("Input1", 8, 24, 305, 21)
    $Button1 = GUICtrlCreateButton("Durchsuchen", 320, 22, 97, 25)
    $Label1 = GUICtrlCreateLabel("Bild wählen", 8, 8, 58, 17)
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Progress1 = GUICtrlCreateProgress(64, 120, 305, 9)
    $Label2 = GUICtrlCreateLabel("Status..:", 16, 120, 43, 17)
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Label4 = GUICtrlCreateLabel("Größe änderen", 16, 144, 75, 17)
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlCreateInput("1024", 104, 136, 33, 21)
    $Label5 = GUICtrlCreateLabel("X", 144, 137, 15, 24)
    GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Input3 = GUICtrlCreateInput("1024", 168, 136, 33, 21)
    $Label6 = GUICtrlCreateLabel("Pixel", 208, 137, 36, 24)
    GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Button2 = GUICtrlCreateButton("Größe und Umbenennen", 8, 168, 131, 25)
    $Button3 = GUICtrlCreateButton("Nur Umbennen", 144, 168, 91, 25)
    $Button4 = GUICtrlCreateButton("Nur Größe änderen", 240, 168, 107, 25)
    $Input2 = GUICtrlCreateInput("Input2", 8, 88, 313, 21)
    $Button5 = GUICtrlCreateButton("Durchsuchen", 328, 85, 75, 25)
    $Label7 = GUICtrlCreateLabel("Speicherort", 8, 64, 58, 17)
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    EndSwitch
    WEnd

    [/autoit]
    • Offizieller Beitrag

    Zum resizen benutze ich folgende Funktion:

    [autoit]

    Func _ImageResize($sInImage, $sOutImage, $iW, $iH)
    Local $hwnd, $hDC, $hBMP, $hImage1, $hImage2, $hGraphic, $CLSID, $i = 0
    $hwnd = _WinAPI_GetDesktopWindow()
    $hDC = _WinAPI_GetDC($hwnd)
    $hBMP = _WinAPI_CreateCompatibleBitmap($hDC, $iW, $iH)
    _WinAPI_ReleaseDC($hwnd, $hDC)
    _GDIPlus_Startup()
    $hImage1 = _GDIPlus_BitmapCreateFromHBITMAP($hBMP)
    $hImage2 = _GDIPlus_ImageLoadFromFile($sInImage)
    $hGraphic = _GDIPlus_ImageGetGraphicsContext($hImage1)
    _GDIPlus_GraphicsDrawImageRect($hGraphic, $hImage2, 0, 0, $iW, $iH)
    $CLSID = _GDIPlus_EncodersGetCLSID("JPG")
    _GDIPlus_ImageSaveToFileEx($hImage1, $sOutImage, $CLSID)
    _GDIPlus_ImageDispose($hImage1)
    _GDIPlus_ImageDispose($hImage2)
    _GDIPlus_GraphicsDispose($hGraphic)
    _WinAPI_DeleteObject($hBMP)
    _GDIPlus_Shutdown()
    EndFunc ;==>_ImageResize

    [/autoit]

    Hab ich irgendwoher aus dem Englischen Forum, Author unbekannt.

    • Offizieller Beitrag

    Wenn du willst das jemand dein Script programmiert, dann poste es in der Jobbörse.