LoadPicture() [v1.1.23+]

Lädt ein Bild aus einer Datei und gibt ein Bitmap- oder Symbol-Handle zurück.

Handle := LoadPicture(DateiName , Optionen, ByRef BildTyp)

Parameter

DateiName

Der Dateiname des Bildes. Wenn kein absoluter Pfad angegeben ist, wird das Bild im A_WorkingDir-Verzeichnis vermutet. Wenn der Name einer DLL- oder EXE-Datei ohne Pfad angegeben ist, wird sie eventuell aus dem Verzeichnis der aktuellen Programmdatei (AutoHotkey.exe oder ein kompiliertes Skript) oder aus einem Systemverzeichnis geladen.

Optionen

Eine Zeichenkette von null oder mehreren der folgenden Optionen, die jeweils durch ein Leer- oder Tabulatorzeichen voneinander getrennt sind:

Wn und Hn: Die Breite und Höhe, mit der das Bild geladen werden soll - n muss ein Integer sein. Wenn eine Abmessung weggelassen wird oder -1 ist, wird sie unter Beibehaltung des Seitenverhältnisses automatisch auf Basis der anderen Abmessung berechnet. Wenn beide Abmessungen weggelassen werden, wird die Originalgröße des Bildes verwendet. Wenn eine der Abmessungen 0 ist, wird für diese Abmessung die Originalgröße verwendet. Zum Beispiel: "w80 h50", "w48 h-1" oder "w48" (behält Seitenverhältnis bei), "h0 w100" (verwendet Originalhöhe, aber überschreibt Breite).

Iconn: Kennzeichnet, welches Symbol aus einer Datei mit mehreren Symbolen geladen werden soll (in der Regel eine EXE- oder DLL-Datei). Zum Beispiel würde "Icon2" das zweite Symbol aus der Datei laden. [v1.1.27+]: Jedes unterstützte Bildformat kann in ein Symbol umgewandelt werden, wenn man "Icon1" angibt. Allerdings wird das Symbol wieder in eine Bitmap umgewandelt, wenn der BildTyp-Parameter weggelassen wird.

GDI+: Verwenden Sie GDI+ zum Laden eines Bildes, falls verfügbar. Zum Beispiel "GDI+ w100".

BildTyp

Wenn eine Variable angegeben ist, bekommt sie eine Nummer zugewiesen, die den Typ des zurückgegebenen Handles kennzeichnet: 0 (IMAGE_BITMAP), 1 (IMAGE_ICON) oder 2 (IMAGE_CURSOR).

Wenn dieser Parameter weggelassen wird oder keine Variable ist, wird der Rückgabewert immer ein Bitmap-Handle sein (Symbole/Cursor werden umgewandelt, falls nötig). Ein Symbol/Cursor/Bitmap-Handle kann man nur zuverlässig nutzen oder löschen, wenn man weiß, um welchen Typ es sich handelt.

Bemerkungen

LoadPicture unterstützt auch die Handle-Syntax, z. B. zum Erstellen eines skalierten Bildes auf Basis einer Symbol- oder Bitmap-Ressource, die bereits in den Speicher geladen worden ist, oder zum Konvertieren eines Symbols in eine Bitmap durch Weglassen von BildTyp.

Wenn das Bild aus dem Speicher freigegeben werden muss, kann je nach Typ des Handles eine passende Funktion aufgerufen werden.

if (not BildTyp)  ; IMAGE_BITMAP (0) oder es wurde der BildTyp-Parameter weggelassen.
    DllCall("DeleteObject", "ptr", Handle)
else if (BildTyp = 1)  ; IMAGE_ICON
    DllCall("DestroyIcon", "ptr", Handle)
else if (BildTyp = 2)  ; IMAGE_CURSOR
    DllCall("DestroyCursor", "ptr", Handle)

Bild-Handles

Beispiele

Lädt einige Bilder im Voraus und verwendet sie wieder.

Bilder := []
; Findet einige Bilder zum Anzeigen.
Loop, Files, %A_WinDir%\Web\Wallpaper\*.jpg, R
{
    ; Lädt jedes Bild und fügt es in den Array ein.
    Bilder.Push(LoadPicture(A_LoopFileFullPath))
}
if !Bilder.Length()
{
    ; Wenn das passiert, müssen Sie den Pfad auf der Loop-Zeile darüber ändern.
    MsgBox, Keine Bilder gefunden!  Probieren Sie ein anderes Verzeichnis aus.
    ExitApp
}
; Fügt das Picture-Steuerelement hinzu, unter Beibehaltung des Seitenverhältnisses vom ersten Bild.
Gui, Add, Pic, w600 h-1 vBild +Border, % "HBITMAP:*" Bilder.1
Gui, Show
Loop 
{
    ; Wechselt auf ein anderes Bild!
    GuiControl, , Bild, % "HBITMAP:*" Bilder[Mod(A_Index, Bilder.Length())+1]
    Sleep 3000
}
return
GuiClose:
GuiEscape:
ExitApp