C/C++ Auflösung aus BMP lesen?

kjh

Erfahrenes Mitglied
Hi Leutz!

könntet ihr mir da evtl. weiterhelfen: Will aus ner BMP die Auflösung rauslesen! Das mit der Speicheradresse usw. check ich ja! aber wie sag ichs C/C++?

greez und merci!

sebi
 
Benutzt du irgendwelche Bibliotheken, in denen du Klassen oder Funktionen für die Behandlung von Grafikdateien hast? Dann wirst du da wohl irgendetwas haben wie Image::get_height() oder ähnliches.
Wenn du das alles selbst machen willst, reicht es, die Datei zu öffnen, binär einzulesen und die entsprechenden Stellen auszuwerten. Details zum Bitmap-Dateiformat findest du bei Google zu Genüge.
 
Du kannst auch nen Typecast auf die den Anfang der Bitmap machen (nachdem du Sie in den Speicher gelesen hast, als BYTE*)

Der Header ist aufgebaut aus
BITMAPFILEHEADER
und
BITMAPINFO

Näheres findest du in der MSDN
 
jo leute danke für eure antworten,

jedoch ich bin newbie in der C welt! Wüsste gerne die befehle usw. dazu. wie kann ich auf eine speicheradresse zugreifen also diese speicheradressen habe ich schon für die bitmaps, geht das mit fgetc? nur keinen plan wie ich dann den pointer setzten soll usw. das er dann von dieser datei die ich auslesen will die infos liest, also wenn ihr mir da etwas weiter helfen könntet, wäre ich euch absolut zu dank verpflichtet!

sebi!
 
Ganz ehrlich - schnapp dir ein C Buch - schlag das Kapitel Dateien auf und suche dort nach Wahlfreier Zugriff bzw. Random Access.

Das ganze Thema inklusive Ausnahmen Behandlung ist relativ umfangreich und abhängig von der Bibliothek die du verwendest.
 
Code:
#include "stdafx.h"


FILE *fhMyFile;

void OpenFile(char *szFname);
char ReadFileW(char *width);
char szFname[] = "test.bmp";
char width[] = "0012h*";
char height[] = "0016h*";

int _tmain(int argc, _TCHAR* argv[])
{
	OpenFile(szFname);
	ReadFileW(width);
}


void OpenFile(char *szFname)
{
	printf("\n\nOeffne %s ...\n", szFname);
	if((fhMyFile = fopen(szFname, "rb")) == NULL)
	{
		printf("Konnte %s nicht oeffnen!\n", fhMyFile);
	 	exit(1);
	}
}
char ReadFileW(char *widht)
{	
	int qq=66;
	int dd=66;
	int yy;
	char cc; 
	fseek(fhMyFile,width,0);
	fgetwc(fhMyFile);
	fgetwc(fhMyFile);
	printf("%s",width);
	printf("%s",height);

	return 0;
}

so habe das jetzt mal zusammen geschrieben soweit ich mich auskenne ;-) was muss ich ändern?

Sollts von interesse sein ich benute .net2003

danke euch!

kjh
 
Zuletzt bearbeitet:
Zurück