LoadPicture

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

Handle := LoadPicture(DateiName , Optionen, &AusBildTyp)

Parameter

DateiName

Typ: Zeichenkette

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 diese eventuell aus dem Verzeichnis der aktuellen Ausführungsdatei (AutoHotkey.exe oder ein kompiliertes Skript) oder aus einem Systemverzeichnis geladen.

Optionen

Typ: Zeichenkette

Wenn leer oder weggelassen, werden standardmäßig keine Optionen verwendet. Andernfalls geben Sie eine Zeichenkette an, die aus einer oder mehreren der folgenden Optionen besteht, jeweils getrennt durch ein Leer- oder Tabulatorzeichen:

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

Iconn: Gibt an, welches Symbol aus einer Datei mit mehreren Symbolen (meist eine EXE- oder DLL-Datei) geladen werden soll. Zum Beispiel bewirkt "Icon2", dass das zweite Symbol aus der Datei geladen wird. Jedes unterstützte Bildformat kann durch Angabe von "Icon1" in ein Symbol umgewandelt werden. Allerdings wird das Symbol wieder in eine Bitmap umgewandelt, wenn der AusBildTyp-Parameter weggelassen wird.

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

&AusBildTyp

Typ: VarRef

Wenn weggelassen, wird der zugehörige Wert nicht gespeichert, und der Rückgabewert immer ein Bitmap-Handle sein (Symbole/Cursor werden ggf. umgewandelt), da für eine zuverlässige Verwendung oder Löschung eines Symbol/Cursor/Bitmap-Handles bekannt sein muss, um welchen Typ es sich handelt. Andernfalls geben Sie eine Referenz an, die auf eine Ausgabevariable verweist, in der eine Nummer gespeichert werden soll, die den Typ des zurückgegebenen Handles identifiziert: 0 (IMAGE_BITMAP), 1 (IMAGE_ICON) oder 2 (IMAGE_CURSOR).

Rückgabewert

Typ: Integer

Diese Funktion gibt ein Bitmap- oder Symbol-Handle zurück, je nachdem, ob ein Bild oder Symbol angegeben ist und ob der &AusBildTyp-Parameter vorhanden ist oder nicht.

Bemerkungen

LoadPicture unterstützt auch die Handle-Syntax, z.B. um ein skaliertes Bild auf Basis einer bereits in den Speicher geladenen Symbol- oder Bitmap-Ressource zu erstellen, oder um ein Symbol in eine Bitmap durch Weglassen von &AusBildTyp umzuwandeln.

Wenn das Bild aus dem Speicher freigegeben werden muss, rufen Sie je nach Typ des Handles eine passende Funktion auf.

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

Bild-Handles

Beispiele

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

Bilder := []
; Einige Bilder zum Anzeigen finden.
Loop Files, A_WinDir "\Web\Wallpaper\*.jpg", "R"
{
    ; Jedes Bild laden und zum Array hinzufügen.
    Bilder.Push(LoadPicture(A_LoopFileFullPath))
}
if !Bilder.Length
{
    ; Wenn das passiert, geben Sie oben bei Loop einen anderen Pfad an.
    MsgBox("Keine Bilder gefunden! Probieren Sie ein anderes Verzeichnis aus.")
    ExitApp
}
; Picture-Steuerelement hinzufügen, unter Beibehaltung des Seitenverhältnisses vom ersten Bild.
MeineGui := Gui()
Pic := MeineGui.Add("Pic", "w600 h-1 +Border", "HBITMAP:*" Bilder[1])
MeineGui.OnEvent("Escape", (*) => ExitApp())
MeineGui.OnEvent("Close", (*) => ExitApp())
MeineGui.Show
Loop 
{
    ; Zu einem anderen Bild wechseln!
    Pic.Value := "HBITMAP:*" Bilder[Mod(A_Index, Bilder.Length)+1]
    Sleep 3000
}