Gibt den Typ (Bitmap oder Metadatei) eines Bildes zurück
#include <GDIPlus.au3>
_GDIPlus_ImageGetType ( $hImage )
$hImage | Handle zu einem Bild-Objekt |
Erfolg: | Integer des Bildtyps $GDIP_IMAGETYPE_UNKNOWN - Keine Bitmap Datei oder durch GDI+ nicht als Bitmap Datei identifiziert $GDIP_IMAGETYPE_BITMAP - Bitmap Typen: BMP, PNG, GIF, JPEG, TIFF, ICO, EXIF $GDIP_IMAGETYPE_METAFILE - Metadateitypen: EMF, WMF |
Fehler: | -1 und setzt das @error Flag auf ungleich null, @extended kann den GPSTATUS Fehlercode ($GPID_ERR* siehe GDIPlusConstants.au3) enthalten. |
@error: | 10 - ungültiger Bildtyp 11 - ungültiges Bildhandle |
Suche nach GdipGetImageType in der MSDN Bibliothek.
#include <GDIPlus.au3>
#include <GUIConstantsEx.au3>
#include <ScreenCapture.au3>
#include <WinAPIHObj.au3>
#include <WindowsConstants.au3>
Global $g_idMemo
Example()
Func Example()
Local $hBitmap, $hImage, $iImageType, $sImageType
; Erstellt eine GUI
GUICreate("GDI+", 600, 400)
$g_idMemo = GUICtrlCreateEdit("", 2, 2, 596, 396, $WS_VSCROLL)
GUICtrlSetFont($g_idMemo, 9, 400, 0, "Courier New")
GUISetState(@SW_SHOW)
; Initialisiert (startet) Microsoft Windows GDI+
_GDIPlus_Startup()
; Erstellt vom kompletten Bildschirm einen Screenshot und erzeugt daraus eine 32 bit Bitmap
$hBitmap = _ScreenCapture_Capture("")
$hImage = _GDIPlus_BitmapCreateFromHBITMAP($hBitmap)
$iImageType = _GDIPlus_ImageGetType($hImage)
Switch $iImageType
Case $GDIP_IMAGETYPE_UNKNOWN
$sImageType = "Unbekanntes Bitmap Format oder keine Bilddatei"
Case $GDIP_IMAGETYPE_BITMAP ; BMP, PNG, GIF, JPEG, TIFF, ICO, EXIF
$sImageType = "Bitmap"
Case $GDIP_IMAGETYPE_METAFILE ; EMF, WMF
$sImageType = "Metafile"
EndSwitch
; Zeigt den Bildtyp: Unbekannt = 0, Bitmap = 1, Metafile = 2)
MemoWrite("Bildtyp: " & $sImageType);
; Ressourcen freigeben
_GDIPlus_ImageDispose($hImage)
_WinAPI_DeleteObject($hBitmap)
; Gibt die durch Microsoft Windows GDI+ verwendeten Ressourcen wieder frei
_GDIPlus_Shutdown()
; Die Schleife wiederholt sich, bis der Benutzer die Beenden-Aktion der GUI auslöst.
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
EndFunc ;==>Example
; Gibt eine Zeile im Memo-Fenster aus
Func MemoWrite($sMessage = '')
GUICtrlSetData($g_idMemo, $sMessage & @CRLF, 1)
EndFunc ;==>MemoWrite