Die ersten Zeichen einer Grafik Datei pruefen

Hallo,

ich muss in einer eingelesenen Grafikdatei pruefen ob die ersten Zeichen:

short 0x4d4d
oder
short 0x4949

sind.

Wenn ich das richtig sehe sind 4d4d und 4949 die Hexadezimalwerte.

Aber was bedeuten die 0x davor?
Und wie kann ich die Werte in Perl vergleichen?

Hatte bisher mit so etwas noch nichts zu tun.

Christian

Aber was bedeuten die 0x davor?

Dass der Wert Hexadezimal ist.

Hallo Christian,

ich muss in einer eingelesenen Grafikdatei pruefen ob die
ersten Zeichen:

short 0x4d4d
oder
short 0x4949

musst du auf den String ‚short 0x4d4d‘ prüfen ? Ich denke du willst aber nur auf die Bytes selbst testen.

Und wie kann ich die Werte in Perl vergleichen?

Ein kleines Beispiel:

#!/usr/bin/perl

use strict;
use warnings;

hierbei handelt es sich uebrigens um ein 1-Pixel transparentes GIF

my $pixel = „\x47\x49\x46\x38\x39\x61\x01\x00“ .
„\x01\x00\x80\x00\x00\x00\x00\x00“ .
„\x00\x00\x00\x21\xf9\x04\x01\x00“ .
„\x00\x00\x00\x2c\x00\x00\x00\x00“ .
„\x01\x00\x01\x00\x00\x02\x02\x44“ .
„\x01\x00\x3b“;

my $bytes = substr($pixel, 0, 2);

if ($bytes eq „\x47\x49“) {
print „passt !\n“;
}

exit;

Du kannst in auch in (String)Vergleichen mit \xHexPattern direkt den Wert angeben.

Gruß

Torsten

Hallo Thorsten,

das hat mir super geholfen.

Noch eine Frage:

Weisst Du zufaellig wo man eine Uebersicht fuer die ersten Zeichen einer Grafikdatei findet, so dass man aus diesen Zeichen erkennen kann um welches Format es sich handelt?

Christian

Hallo Christian,

Weisst Du zufaellig wo man eine Uebersicht fuer die ersten
Zeichen einer Grafikdatei findet, so dass man aus diesen
Zeichen erkennen kann um welches Format es sich handelt?

hier
http://www.astro.keele.ac.uk/oldusers/rno/Computing/… kannst du einige finden, ich habe aber keine Ahnung ob das vollständig ist.

Gruß, Torsten