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 Name der Bilddatei, von der man annimmt, dass sie sich im A_WorkingDir-Verzeichnis befindet, solange kein absoluter Pfad angegeben ist. 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 wegfällt oder -1 ist, wird sie unter Beibehaltung des Seitenverhältnisses automatisch auf Basis der anderen Abmessung berechnet. Wenn beide Abmessungen fehlen, gilt die Originalgröße des Bildes. 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).

Fehlt dieser Parameter oder ist er keine Variable, 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 Handle eine passende Funktion aufgerufen werden.

if (not Bildtyp)  ; IMAGE_BITMAP (0) oder Bildtyp-Parameter fehlt.
    DllCall("DeleteObject", "ptr", Handle)
else if (Bildtyp = 1)  ; IMAGE_ICON
    DllCall("DestroyIcon", "ptr", Handle)
else if (Bildtyp = 2)  ; IMAGE_CURSOR
    DllCall("DestroyCursor", "ptr", Handle)

Siehe auch

Bild-Handles

Beispiel

; Vorab-Laden und Wiederverwenden einiger Bilder.

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