Bild skalieren

  • Hallo :)
    Gibt es einen Weg ein Bild mit AutoIt zu skalieren?
    Hatte schon eine UDF gefunden _ImageResize Aber die hat das Bild nur verkleinert. Also einen Teil abgeschnitten. Aber ich möchte das Bild skalieren also das Bild beibehalten. (hoffe ihr wisst was ich mein)

    Niemand braucht mehr als 640KB RAM in seinem PC
    (Bill Gates 1981) ^^

    2 Mal editiert, zuletzt von jc_sactown (2. März 2014 um 16:40)

  • Ich hab dieses Problem mit IfranView und AutoIt gemeistert. Vorteile: IfranView braucht keine Install und unterstüzt Commandozeilen sprich man muss das Programm nicht mal starten.
    Ich denke aber das die schlauen Köpfe hier dir bessere Lösungen zeigen werden (nur AutoIt).

    :thumbup:

  • sowas?

    geklaut!! credits to smashly

    Spoiler anzeigen
    [autoit]

    ; #FUNCTION# =========================================================================================
    ; Name...........: _ImageResize
    ; Description....: Resize an image and optionally convert it to the format you want.
    ; Syntax.........: _ImageResize($sInImage, $sOutImage, $iW, $iH)
    ; Parameters ....: $sInImage - Full path to the image to resize / convert.
    ; In types: *.bmp, *.gif, *.ico, *.jpg, *.jpeg, *.png, *.tif, *.tiff
    ; $sOutImage - Full path where to save the resized / converted image.
    ; Out types: *.bmp, *.gif, *.jpg, *.jpeg, *.png, *.tif, *.tiff
    ; $iW - Width to resize image to.
    ; $iH - Height to resize image to.
    ; Return values .: Success - Return 1 and @error 0
    ; Failure - Return 0 and @error 1~5
    ; @error 1 = In File does not exist
    ; @error 2 = In File format not supported
    ; @error 3 = Out File path does not exist
    ; @error 4 = Out file format not supported
    ; @error 5 = Resize Width or Height not an integer
    ; Author ........: smashly
    ; ====================================================================================================
    Func _ImageResize($sInImage, $sOutImage, $iW, $iH)
    Local $sOP, $sOF, $sInExt, $Ext, $hBitmap, $hImage1, $hImage2, $hGraphic, $CLSID, $i = 0
    Local $sType = "BMP|GIF|ICO|JPG|JPEG|PNG|TIF|TIFF"

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

    If Not FileExists($sInImage) Then Return SetError(1, 0, 0)
    $sInExt = StringUpper(StringTrimLeft($sInImage, StringInStr($sInImage, ".", 0, -1)))
    If Not StringRegExp($sInExt, "\A(" & $sType & ")\z", 0) Then Return SetError(2, 0, 0)

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

    ;OutFile path, to use later on.
    $sOP = StringLeft($sOutImage, StringInStr($sOutImage, "", 0, -1))
    If Not FileExists($sOP) Then Return SetError(3, 0, 0)

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

    ;OutFile name, to use later on.
    $sOF = StringTrimLeft($sOutImage, StringInStr($sOutImage, "", 0, -1))

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

    ;OutFile extension , to use for the encoder later on.
    $Ext = StringUpper(StringTrimLeft($sOutImage, StringInStr($sOutImage, ".", 0, -1)))
    If Not StringRegExp($Ext, "\A(" & $sType & ")\z", 0) Or $Ext = "ICO" Then Return SetError(4, 0, 0)

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

    If Not IsInt($iW) And Not IsInt($iH) Then Return SetError(5, 0, 0)

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

    ; WinAPI to create blank bitmap at the width and height to put your resized image on.
    $hBitmap = _WinAPI_CreateBitmap($iW, $iH, 1, 32)

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

    ;Start GDIPlus
    _GDIPlus_Startup()

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

    ;Get the handle of blank bitmap you created above as an image
    $hImage1 = _GDIPlus_BitmapCreateFromHBITMAP($hBitmap)

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

    ;Load the image you want to resize.
    $hImage2 = _GDIPlus_ImageLoadFromFile($sInImage)

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

    ;Get the graphic context of the blank bitmap
    $hGraphic = _GDIPlus_ImageGetGraphicsContext($hImage1)

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

    ;Draw the loaded image onto the blank bitmap at the size you want
    _GDIPlus_GraphicsDrawImageRect($hGraphic, $hImage2, 0, 0, $iW, $iH)

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

    ;Get the encoder of to save the resized image in the format you want.
    $CLSID = _GDIPlus_EncodersGetCLSID($Ext)

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

    ;Generate a number for out file that doesn't already exist, so you don't overwrite an existing image.
    Do
    $i += 1
    Until (Not FileExists($sOP & $i & "_" & $sOF))

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

    ;Prefix the number to the begining of the output filename
    ;$sOutImage = $sOP & $i & "_" & $sOF
    $sOutImage = $sOP & $sOF

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

    ;Save the new resized image.
    _GDIPlus_ImageSaveToFileEx($hImage1, $sOutImage, $CLSID)

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

    ;Clean up and shutdown GDIPlus.
    _GDIPlus_ImageDispose($hImage1)
    _GDIPlus_ImageDispose($hImage2)
    _GDIPlus_GraphicsDispose($hGraphic)
    _WinAPI_DeleteObject($hBitmap)
    _GDIPlus_Shutdown()
    Return SetError(0, 0, 1)
    EndFunc ;==>_ImageResize

    [/autoit]

    Edit Oscar: Bei längeren Quelltexten bitte zusätzlich den Spoiler-Tag benutzen. [eingefügt]

    Einmal editiert, zuletzt von Oscar (2. März 2014 um 17:25)

  • _GDIPlus_ImageScale wär wahrscheinlich das richtige hm.. hätte da jemand eine fertige funktion für mich bin noch nicht so weit in AutoIt :/
    ??komisch. bei mir gibts diese funktion gar nicht. _GDIPlus_ImageScale..
    hab ich nich.
    okay okay. :wacko: ^^ :rolleyes: sorry. ab AutoIt .. ja erst lesen dann schreiben. Okay Danke :)

    tut mir leid wenn ich diesen thread nochmal öffne. aber ich komm leider überhaupt nicht weiter.
    hab mir die aktuelle version runtergeladen 3.3.10... um diese GDIfunctions zu bekommen. Möchte aber die alte version 3.3.6.1 behalten. Das neue SciTe gefällt mir auch überhaupt nicht.
    hab den Include Ordner von der neuen version kopiert und bei der alten eingefügt. Bekomm ne ellenlange Fehlermeldung in der console. scheint irgendwas noch zu fehlen.
    will aber da auch nicht lang rumpfuschen. gibts keine möglichkeit ein Bild zu skalieren in 3.3.6.1? irgendeine udf?
    irfanview wär ne lösung aber wär schön wenn sich ne fremde exe in meinem programm vermeiden ließe.
    Wäre sehr dankbar!

    lg, JCS

    Edit Oscar: Bitte nicht 4 Posts hintereinander erstellen. Du kannst Deinen Beitrag bearbeiten, wenn Dir noch was einfällt.

    Niemand braucht mehr als 640KB RAM in seinem PC
    (Bill Gates 1981) ^^

    Einmal editiert, zuletzt von Oscar (2. März 2014 um 17:24)

  • Hast du die gepostete UDF probiert? weiss nicht ob die mit 3.3.6.x geht aber mit 3.3.8.x sollte es klappen

    übrigens scite ist seit Jahren praktisch unverändert vom aussehen und Bedienung. Ich nehme mal an du magst die andere farbliche Darstellung nicht? Die kannst du ändern so das alles wider die alten Farben hat.

  • Hallo,

    ich bin auch wieder vor dem Problem.. leider komm ich auch nicht weiter.
    Hab mir jetzt die neueste Version (v3.3.10.2) gezogen..

    Was ich will:
    ich hab einen Ordner ... in diesem befinden sich Bilder, (mit zum Teil unterschiedlichem Format)..
    wenn ich auf einen Button drücke soll eines der Bilder auf der Gui angezeigt werden. Wird dann auf
    das Bild gedrückt wird das Bild vergrößert dargestellt. Bisher hatte ich das so gelöst, das ich zwei
    weitere Ordner (Thumbnail und Thumbnail2) erstellt hatte in dem ich die Verkleinerten Versionen (einmal
    mit 80x 1xx und einmal mit 480x6xx) liegen hatte..

    reichlich unsmart !

    Die Idee wäre jetzt keine Thumbnails mehr erstellen zu müssen sondern gleich die "Orginalbilder" zu verwenden
    und diese dann skaliert auf der Gui anzuzeigen... also einmal mit 80x 1xx und beim Klick auf diese mit 480x6xx..

    was ich bisher habe:

    [autoit]

    While 1
    $msg = GUIGetMsg()
    Select
    case $msg = $cal
    ;~ Hier wird das Label zurückgesetzt
    GUICtrlCreatePng($filepath_pic&$IniFileLine7,30,80)
    GUICtrlCreatePng($filepath_pic&$IniFileLine7,320,80)
    GUICtrlCreatePng($filepath_pic&$IniFileLine7,610,80)
    ......
    EndSelect
    WEnd

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

    ;~ Bilder (klein) erstellen
    Func GUICtrlCreatePng($filepath_pic, $iPNG_Left = 0, $iPNG_Top = 0)
    _GDIPlus_Startup()

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

    Local $hImagePNG = _GDIPlus_ImageLoadFromFile($filepath_pic)
    Global $iPNG_Width = _GDIPlus_ImageGetWidth($hImagePNG)
    Global $iPNG_Height = _GDIPlus_ImageGetHeight($hImagePNG)
    Local $hBmp = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImagePNG)

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

    Local $cPNG_PIC = GUICtrlCreatePic("", $iPNG_Left, $iPNG_Top, $iPNG_Width, $iPNG_Height)
    ;~ MsgBox(0,"",$iPNG_Height & " " & $iPNG_Width)

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

    GUICtrlSendMsg($cPNG_PIC, 0x0172, 0, $hBmp)
    _WinAPI_DeleteObject($hBmp)
    _GDIPlus_ImageDispose($hImagePNG)
    _GDIPlus_Shutdown()

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

    Return $cPNG_PIC
    EndFunc ;==>GUICtrlCreatePng

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

    somit werden die Bilder aber nur dargestellt.. in Orginalgröße..

    wenn ich jetzt folgendes :

    [autoit]


    Local $hBmp = _GDIPlus_ImageResize(_GDIPlus_BitmapCreateHBITMAPFromBitmap($hImagePNG), 300,500)
    Local $iPNG_faktor= $iPNG_Width/300
    Local $iPNG_Height_res= $iPNG_Height/$iPNG_faktor
    Local $iPNG_Width_res = $iPNG_Width/$iPNG_faktor
    Local $cPNG_PIC = GUICtrlCreatePic("", $iPNG_Left, $iPNG_Top, $iPNG_Width_res, $iPNG_Height_res)

    [/autoit]

    in den Code (Funktion) integriere wird zwar die Darstellung auf zb. 300 Pixel Breite richtig erstellt, aber das Bild
    wird nicht skaliert, sondern abgeschnitten !!

    habt ihr einen Tipp ?

    Gruß Brick

  • Die Zeile

    [autoit]


    Local $hBmp = _GDIPlus_ImageResize(_GDIPlus_BitmapCreateHBITMAPFromBitmap($hImagePNG), 300,500)

    [/autoit]


    mach so keinen Sinn, denn du übergibst der Funktion GDIPlus_ImageResize() ein GDI Handle und kein GDI+ Handle!

    Also das Bild vorher skalieren, in ein GDI Bild umwandeln und zum Pic Control schicken.

    Gruß,
    UEZ

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

  • Die Zeile

    [autoit]


    Local $hBmp = _GDIPlus_ImageResize(_GDIPlus_BitmapCreateHBITMAPFromBitmap($hImagePNG), 300,500)

    [/autoit]


    mach so keinen Sinn, denn du übergibst der Funktion GDIPlus_ImageResize() ein GDI Handle und kein GDI+ Handle!

    Hi,

    ähmm.. Hä ??

    sorry.. bin jetzt mit den ganzen GDI Zeug wirklich kein Profi.. aber da steht doch GDIplus_Imageresize (und GDIPlus_Bitmap...)
    wieso erzeugt das GDIPlus_BitmapCreate.. kein GDI Plus Handle ??

    wieso heißt es dann so ??

    sorry.. für die Laienhafte Frage... aber wie schon gesagt, das ganze GDI Zeug kapier ich noch nicht so ganz !

    (gibts da eigentlich ein brauchbares Tutorial ?)

    Gruß Brick

  • Probiere es mal damit:

    [autoit]


    Local $hBmp = _GDIPlus_ImageResize($hImagePNG, 300,500) ;GDI+ Bitmap
    Local $hHBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBmp) ;GDI Bitmap!
    Local $iPNG_faktor= $iPNG_Width/300
    Local $iPNG_Height_res= $iPNG_Height/$iPNG_faktor
    Local $iPNG_Width_res = $iPNG_Width/$iPNG_faktor
    Local $cPNG_PIC = GUICtrlCreatePic("", $iPNG_Left, $iPNG_Top, $iPNG_Width_res, $iPNG_Height_res)
    GUICtrlSendMsg($cPNG_PIC, 0x0172, 0, $hHBitmap)
    _WinAPI_DeleteObject($hHBitmap)
    _GDIPlus_BitmapDispose($hBmp)
    _GDIPlus_ImageDispose($hImagePNG)

    [/autoit]

    Gruß,
    UEZ

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

  • wow..

    sieht an sich gut aus... (auch wenn ichs noch nicht ganz gerafft hab :) )

    werd mir jetzt mal GDIPlus_ImageScale anschauen, da das Bild so doch
    je nach Auflösung stark verzerrt wird !

    Danke für die Unterstützung !

    Gruß Brick

  • so,

    ich lass es doch mit "Resize".. das funktioniert genau so wie ich es haben will !!

    ABER: ich bekomm um das Bild so einen Rand.. Sieht aus wie $SS_SUNKEN ..
    nur bekomm ich den nicht weg..

    kannst du mir einen Tipp geben: A; woher der kommt und B; wie ich den weg bekomme !

    Gruß Brick

    EDIT: wo der Rahmen jetzt herkommt, hab ich gefunden.. nur wie ich ihn wegbekomm noch nicht:
    Der Rahmen kommt von meinem "leer.jpg" Bild.. immer wenn ein neues Bild erscheinen soll, blende ich
    ein "leeres" Bild erst drüber.. dadurch entsteht dieser Rahmen..

  • jetzt hab ichs mal so versucht:

    [autoit]

    local $test321 = _GDIPlus_GraphicsCreateFromHWND($Form1)
    local $test123 = _Gdiplus_GraphicsDrawImage ($test321,$hBmp,$iPNG_Left,$iPNG_Top)

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

    ;~ Local $cPNG_PIC = GUICtrlCreatePic("", $iPNG_Left, $iPNG_Top, $iPNG_Width_res, $iPNG_Height_res)
    ;~ GUICtrlSendMsg($cPNG_PIC, 0x0172, 0, $hHBitmap)

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

    (das auskommentierte war das, was ich vorher drin hatte)

    dann siehts so aus... (siehe Anhang)

    etwas besser.. leider ist immer noch ein kleiner weißer Rand..

    wenn ich die Grafik etwas größer mach, wird der Rand auch größer !

    kann man den nicht entfernen ??

    Gruß Brick

  • Brick,

    vielleicht solltest du den vollständigen Code posten, damit wir korrigieren können. Nur Fragmente bringen nicht viel!


    Gruß,
    UEZ

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

  • also den ganzen Code poste ich jetzt nicht, da auch viel unnützes Zeug (für euch) dabei ist..
    aber das für die Bilder kann ich gern posten:

    [autoit]


    ;Das ganze ist ein Geburtstagskalender, der mir an dem heutigen Tag die Info und ein Bild, von
    ;dem jenigen anzeigt, der Geburtstag hat. Über ein Datumsfeld kann man gezielt zu einem bestimmten
    ;Datum springen. Hier ein Teil des Codes...
    ;GUICtrlCreatePng springt in die Funktion GUICtrlCreatePng.. übergibt Filepath und "IniFileLine7", das ist ein Leeres Jpg
    ;um vorhergehende Bilder zu löschen .
    func start()

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

    While 1
    $msg = GUIGetMsg()
    Select
    case $msg = $cal
    ;~ Hier wird das Label zurückgesetzt
    GUICtrlCreatePng($filepath_pic&$IniFileLine7,30,80,98)
    GUICtrlCreatePng($filepath_pic&$IniFileLine7,320,80,98)
    GUICtrlCreatePng($filepath_pic&$IniFileLine7,610,80,98)
    GUICtrlCreatePng($filepath_pic&$IniFileLine7,30,200,98)
    GUICtrlCreatePng($filepath_pic&$IniFileLine7,320,200,98)
    GUICtrlCreatePng($filepath_pic&$IniFileLine7,610,200,98)
    GUICtrlCreatePng($filepath_pic&$IniFileLine7,30,320,98)
    GUICtrlCreatePng($filepath_pic&$IniFileLine7,320,320,98)
    GUICtrlCreatePng($filepath_pic&$IniFileLine7,610,320,98)
    GUICtrlSetData ($Label, "")
    GUICtrlSetData ($Label1, "")
    GUICtrlSetData ($Label2, "")
    GUICtrlSetData ($Label3, "")
    GUICtrlSetData ($Label4, "")
    GUICtrlSetData ($Label5, "")
    GUICtrlSetData ($Label6, "")
    GUICtrlSetData ($Label7, "")
    GUICtrlSetData ($Label8, "")
    GUICtrlSetData ($Label9, "")
    connect()
    case $msg = $GUI_EVENT_CLOSE
    Exit
    case $msg = $beenden
    Exit
    ;~ Bilderpfad für vergrößerte Bilder
    case $msg = $Pict1
    $bigpic_var= $Picture1
    GUICtrlCreatePng1($filepath_pic&$bigpic_var,30,80,$IniFileLine4)
    case $msg = $Pict2
    $bigpic_var= $Picture2
    GUICtrlCreatePng1($filepath_pic&$bigpic_var,30,80,$IniFileLine4)
    case $msg = $Pict3
    $bigpic_var= $Picture3
    GUICtrlCreatePng1($filepath_pic&$bigpic_var,30,80,$IniFileLine4)
    case $msg = $Pict4
    $bigpic_var= $Picture4
    GUICtrlCreatePng1($filepath_pic&$bigpic_var,30,80,$IniFileLine4)
    case $msg = $Pict5
    $bigpic_var= $Picture5
    GUICtrlCreatePng1($filepath_pic&$bigpic_var,30,80,$IniFileLine4)
    case $msg = $Pict6
    $bigpic_var= $Picture6
    GUICtrlCreatePng1($filepath_pic&$bigpic_var,30,80,$IniFileLine4)
    case $msg = $Pict7
    $bigpic_var= $Picture7
    GUICtrlCreatePng1($filepath_pic&$bigpic_var,30,80,$IniFileLine4)
    case $msg = $Pict8
    $bigpic_var= $Picture8
    GUICtrlCreatePng1($filepath_pic&$bigpic_var,30,80,$IniFileLine4)
    case $msg = $Pict9
    $bigpic_var= $Picture9
    GUICtrlCreatePng1($filepath_pic&$bigpic_var,30,80,$IniFileLine4)
    case $msg = $help
    $x = $x + 1
    Help()
    case $msg = $dropdown_name
    NameSelect()
    case $msg = $mzi
    SplashTextOn ("Kontakt", "M" & @LF & "Beter"&@LF& "urg.cat"&@LF&@LF&"Dieses Fenster schließt sich automatisch!", 250,100, @DesktopWidth/2-125, @DesktopHeight/2-100,5, "calibri", 10)
    sleep(3000)
    SplashOff()
    EndSelect
    WEnd
    EndFunc

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

    ;~ Bilder (klein) erstellen
    Func GUICtrlCreatePng($filepath_pic, $iPNG_Left = 0, $iPNG_Top = 0, $factor=0)
    _GDIPlus_Startup()

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

    Local $hImagePNG = _GDIPlus_ImageLoadFromFile($filepath_pic)
    Global $iPNG_Width = _GDIPlus_ImageGetWidth($hImagePNG)
    Global $iPNG_Height = _GDIPlus_ImageGetHeight($hImagePNG)
    Local $iPNG_faktor= $iPNG_Width/$factor
    Local $hBmp = _GDIPlus_ImageResize($hImagePNG, $iPNG_Width/$iPNG_faktor,$iPNG_Height/$iPNG_faktor) ;GDI+ Bitmap
    Local $hHBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBmp) ;GDI Bitmap!
    Local $iPNG_Height_res= $iPNG_Height/$iPNG_faktor
    Local $iPNG_Width_res = $iPNG_Width/$iPNG_faktor
    local $test321 = _GDIPlus_GraphicsCreateFromHWND($Form1)
    local $test123 = _Gdiplus_GraphicsDrawImage ($test321,$hBmp,$iPNG_Left,$iPNG_Top)

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

    ;~ Local $cPNG_PIC = GUICtrlCreatePic("", $iPNG_Left, $iPNG_Top, $iPNG_Width_res, $iPNG_Height_res)
    ;~ GUICtrlSendMsg($cPNG_PIC, 0x0172, 0, $hHBitmap)

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

    _WinAPI_DeleteObject($hHBitmap)
    _GDIPlus_BitmapDispose($hBmp)
    _GDIPlus_ImageDispose($hImagePNG)

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

    ;~ Return $cPNG_PIC
    EndFunc ;==>GUICtrlCreatePng

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

    Hoffe das ist einigermaßen Verständlich

    Gruß Brick

  • Probiere es mal damit (nicht getestet):

    Spoiler anzeigen
    [autoit]


    _GDIPlus_Startup()
    ;Das ganze ist ein Geburtstagskalender, der mir an dem heutigen Tag die Info und ein Bild, von
    ;dem jenigen anzeigt, der Geburtstag hat. Über ein Datumsfeld kann man gezielt zu einem bestimmten
    ;Datum springen. Hier ein Teil des Codes...
    ;GUICtrlCreatePng springt in die Funktion GUICtrlCreatePng.. übergibt Filepath und "IniFileLine7", das ist ein Leeres Jpg
    ;um vorhergehende Bilder zu löschen .
    func start()

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

    While 1
    $msg = GUIGetMsg()
    Select
    case $msg = $cal
    ;~ Hier wird das Label zurückgesetzt
    GUICtrlCreatePng(0,$filepath_pic&$IniFileLine7,30,80,98)
    GUICtrlCreatePng(0,$filepath_pic&$IniFileLine7,320,80,98)
    GUICtrlCreatePng(0,$filepath_pic&$IniFileLine7,610,80,98)
    GUICtrlCreatePng(0,$filepath_pic&$IniFileLine7,30,200,98)
    GUICtrlCreatePng(0,$filepath_pic&$IniFileLine7,320,200,98)
    GUICtrlCreatePng(0,$filepath_pic&$IniFileLine7,610,200,98)
    GUICtrlCreatePng(0,$filepath_pic&$IniFileLine7,30,320,98)
    GUICtrlCreatePng(0,$filepath_pic&$IniFileLine7,320,320,98)
    GUICtrlCreatePng(0,$filepath_pic&$IniFileLine7,610,320,98)
    GUICtrlSetData ($Label, "")
    GUICtrlSetData ($Label1, "")
    GUICtrlSetData ($Label2, "")
    GUICtrlSetData ($Label3, "")
    GUICtrlSetData ($Label4, "")
    GUICtrlSetData ($Label5, "")
    GUICtrlSetData ($Label6, "")
    GUICtrlSetData ($Label7, "")
    GUICtrlSetData ($Label8, "")
    GUICtrlSetData ($Label9, "")
    connect()
    case $msg = $GUI_EVENT_CLOSE
    Exit
    case $msg = $beenden
    Exit
    ;~ Bilderpfad für vergrößerte Bilder
    case $msg = $Pict1
    $bigpic_var= $Picture1
    GUICtrlCreatePng1($Pict1,$filepath_pic&$bigpic_var,30,80,$IniFileLine4)
    case $msg = $Pict2
    $bigpic_var= $Picture2
    GUICtrlCreatePng1($Pict2,$filepath_pic&$bigpic_var,30,80,$IniFileLine4)
    case $msg = $Pict3
    $bigpic_var= $Picture3
    GUICtrlCreatePng1($Pict3,$filepath_pic&$bigpic_var,30,80,$IniFileLine4)
    case $msg = $Pict4
    $bigpic_var= $Picture4
    GUICtrlCreatePng1($Pict4,$filepath_pic&$bigpic_var,30,80,$IniFileLine4)
    case $msg = $Pict5
    $bigpic_var= $Picture5
    GUICtrlCreatePng1($Pict5,$filepath_pic&$bigpic_var,30,80,$IniFileLine4)
    case $msg = $Pict6
    $bigpic_var= $Picture6
    GUICtrlCreatePng1($Pict6,$filepath_pic&$bigpic_var,30,80,$IniFileLine4)
    case $msg = $Pict7
    $bigpic_var= $Picture7
    GUICtrlCreatePng1($Pict7,$filepath_pic&$bigpic_var,30,80,$IniFileLine4)
    case $msg = $Pict8
    $bigpic_var= $Picture8
    GUICtrlCreatePng1($Pict8,$filepath_pic&$bigpic_var,30,80,$IniFileLine4)
    case $msg = $Pict9
    $bigpic_var= $Picture9
    GUICtrlCreatePng1($Pict9,$filepath_pic&$bigpic_var,30,80,$IniFileLine4)
    case $msg = $help
    $x = $x + 1
    Help()
    case $msg = $dropdown_name
    NameSelect()
    case $msg = $mzi
    SplashTextOn ("Kontakt", "M" & @LF & "Beter"&@LF& "urg.cat"&@LF&@LF&"Dieses Fenster schließt sich automatisch!", 250,100, @DesktopWidth/2-125, @DesktopHeight/2-100,5, "calibri", 10)
    sleep(3000)
    SplashOff()
    EndSelect
    WEnd
    EndFunc

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

    ;~ Bilder (klein) erstellen
    Func GUICtrlCreatePng($iCtrl, $filepath_pic, $iPNG_Left = 0, $iPNG_Top = 0, $factor=0)

    Local $hImagePNG = _GDIPlus_ImageLoadFromFile($filepath_pic)
    Global $iPNG_Width = _GDIPlus_ImageGetWidth($hImagePNG)
    Global $iPNG_Height = _GDIPlus_ImageGetHeight($hImagePNG)
    Local $iPNG_faktor= $iPNG_Width/$factor
    Local $hBmp = _GDIPlus_ImageResize($hImagePNG, $iPNG_Width/$iPNG_faktor,$iPNG_Height/$iPNG_faktor) ;GDI+ Bitmap
    Local $hHBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBmp) ;GDI Bitmap!
    If $iCtrl Then GUICtrlSendMsg($iCtrl, 0x0172, 0, $hHBitmap)

    _WinAPI_DeleteObject($hHBitmap)
    _GDIPlus_BitmapDispose($hBmp)
    _GDIPlus_ImageDispose($hImagePNG)

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

    EndFunc ;==>GUICtrlCreatePng

    [/autoit]

    Du kannst auch _GDIPlus_ImageScale() zum Skalieren benutzen, wenn du das Bild faktorisiert ändern möchtest.


    Gruß,
    UEZ

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

  • so werden mir irgendwie gar keine Bilder mehr angezeigt..

    ich hab das jetzt so gelöst, das einfach alle Bilder jetzt von EINEM "Leeren Bild" überschrieben werden..
    nicht mehr jedes einzeln... somit hab ich nur noch einen kleinen Rahmen um das gesamte Gui, der kaum
    auffällt... klar.. nicht die Lösung.. aber ein Workaround mit dem ich leben kann..

    trotzdem danke für deine Hilfe !!

    Gruß Brick