Einzelnen Beitrag anzeigen

Benutzerbild von Hador
Hador

Registriert seit: 11. Dez 2004
Ort: Recke
682 Beiträge
 
Turbo Delphi für Win32
 
#1

Prüfen, ob Datei ein Bitmap ist

  Alt 5. Aug 2006, 13:47
Häufig wird lediglich aufgrund der Dateiendung entschieden, ob ein Windows Bitmap (BMP) wirklich ein BMP ist.
Wesentlich zuverlässiger ist dabei folgende Methode:

Delphi-Quellcode:
uses
  SysUtils;

function IsBMP(const AFileName: String): Boolean;
var
  FileHandle: Integer;
  Buffer: Word;
begin
  FileHandle := FileOpen(AFileName, fmOpenRead);
  FileSeek(FileHandle, 0, 0);
  FileRead(FileHandle, Buffer, 2);
  FileClose(FileHandle);
  Result := Buffer = $4D42;
end;
Jede BMP-Datei beginnt mit der ASCII-Zeichenkette "BM" ( 42 4D ).
Daher braucht man lediglich diese 2 Byte auslesen um ein BMP zu identifizieren.

Zwar könnte man auch eine andere Datei erstellen, welche so beginnt, diese Methode ist jedoch zumindest zuverlässiger als lediglich die Dateiendung zu prüfen.

[edit=Chakotay1308]Titel angepasst. Mfg, Chakotay1308[/edit]
Lars Kiesow
http://www.larskiesow.de

Computer gehorchen deinen Befehlen, nicht deinen Absichten.
  Mit Zitat antworten Zitat