*.ppm file zeilenweise einlesen...aber wie??



  • hallo!

    Also ich bin gerade dabei ein C-Programm zu schreiben welches ein *.ppm file in ein *.bmp file konvertiert.
    Bis jetzt hab ich die Datei geöffnet und einige Fehlermeldungen überprüft. Jetzt wollt ich die Datei zeilenweise einlesen um zu überprüfen ob es sich überhaupt um eine binäre Portable Pixmap handelt und ob sie gültig ist...aber wie mach ich das??

    Ich hoff mir kann jemand helfen!!

    Danke

    thimmy



  • Schau dir mal das Format unter http://de.wikipedia.org/wiki/Portable_Pixmap an.

    Du liest einfach solange Zeichen mittels fgetc(file) ein, bis du ein Zeilenendezeichen '\n' oder '\r' findest.

    Das Format kannst du dann mit dem Identifier an erster Stelle mit "P6" (50 36) testen.

    Die eigentlichen Daten kannst du dann einfach mit fscanf(file, "%d", &x) einlesen:(Breite, Höhe, MaxFarbwert). Die Farbwerte (RGB) sind dann entweder ein oder 2-Byte pro Farbwert.



  • so in etwa?? abaer wie mach ich jetzt weiter??

    char* getPicture()
    {
    	char* fileid;
    	unsigned int heigth = 0; //Bildhöhe
    	unsigned int width = 0; //Bildbreite
    	unsigned int maxvalue = 0; //Maximalwerte der Farbkomponenten
    	char c = 0; //Character read from the file.
    
    	while ((c = fgetc()) != EOF) //Read one character at a time, checking for the End of File. EOF is defined in <stdio.h>  as -1 	
    	{
    		if(fileid != 'P6')
    		{
    			printError(ERROR_WRONG_INPUT_FILE_FORMAT);
    			return ERROR_WRONG_INPUT_FILE_FORMAT;
    		}
    
    	}
    }
    

Anmelden zum Antworten