IMA Datei nach Hex code durchsuchen

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • IMA Datei nach Hex code durchsuchen

    Hey Leute,

    Ich stehe grade vor dem Problem, dass das ich nicht weiß wie ich eine IMA Datei nach dem Hexcode 0x7FE0,0x0010 durchsuchen soll. Ich habe die Datei per fopen geöffnet und möchte diese nun "auslesen". Das Ganze soll später ein Bildmanipulationsprogramm werden, welches überflüssige Details aus dem Bild herausfiltert.. Nach dem Hexcode muss ich noch 4 Char Zeichen überspringen.

    Ist es möglich die Bilddatei direkt nach den Chars zu durchsuchen und dann ans Ende dieser zu springen und dort direkt die Bits Bit für Bit vergleichen?

    Ich hab hier mal meinen schnellen Anfang.

    FILE *kopf,*kopf_segm;


    int c;

    int main ()

    {

    kopf = fopen("*******************\\Kopf.ima","rb");

    if(kopf == NULL) {

    printf ("Die Datei wurde nicht geöffnet");



    }


    }

    Für Hilfe und Antwort wäre ich sehr dankbar.

    lg und frohe Ostern

    Zermy
  • Weiss jetzt nicht wie deine *.ima aufgebaut ist.

    Mehrere einfache Bilddateiformate haben in den erste Bytes das Dateiformat im Klartext oder codiert stehen.

    Darauf aufbauend Details, z.B. zur Höhe, Breite u.s.w. entweder nach der Dateikennung oder am Ende des Programms, auslesen und für die eigentlichen Bildinfos zur Berechnung nutzen.

    Hab mal ein wenig gesucht, hat VS für das Datei-Format nicht fertigen Krempel an Bord :D

    MfG bcc-fan
  • Hey,

    mit VS kenne ich mich nicht grade gut aus.Das Bild soll ja sozusagen geschnitten werden. Ich will im Endeffekt unwichtige Sachen rausfiltern.

    Logisch weiß ich wie ichs machen soll, aber praktisch fehlt mir der Umgang mit dem C Code.

    Ich will die Datei öffnen, in einen Vektor/Array schreiben, dort nach der Zeichenfolge des Hexcodes suchen und dann 4 Zeichen weiter springen. Wenn ich mit meinem Zeiger an der Stelle bin, soll das Vergleichen anfangen.Alles was kleiner als -900HU und alles was größer als 250 HU soll auf 0 gesetzt werden. Dann will ich den Rest an Bits in eine neue Datei kompieren und fertig ist das gefilterte Bild.

    Aber ich habs grade mal hinbekommen die Datei zu öffnen,

    Die Datei in ein Array zu bekommen ist nun die andere Sache. Mit putchar bekomme ichs nicht hin...

    Schöne Ostern

    Zermy
  • Schau dir mal die Funktionen für Dateien mal an udn such dir die passenden raus:
    cplusplus.com/reference/clibrary/cstdio/

    Ermittelst halt mit fseek und ftell die Größe der Datei, reservierst so viel Platz im Arbeitspeicher und liesst die Datei mit fread komplett ein.
    Dann kannst du die Datei im Speicher so wie du es willst Bearbeiten und anschliessend wieder in eine Datei schreiben.

    Mfg Rushh0ur