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



## kjh (13. Juli 2004)

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


----------



## squeaker (13. Juli 2004)

Hier findest du links zu Beschreibungen des BMP-Formats. Dann nur noch die Datei öffnen und die entsprechenden Bytes aus dem Header auslesen.

http://www.wotsit.org/search.asp?s=graphics


----------



## Dario Linsky (13. Juli 2004)

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.


----------



## BadMourning (13. Juli 2004)

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


----------



## kjh (13. Juli 2004)

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!


----------



## squeaker (14. Juli 2004)

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.


----------



## kjh (14. Juli 2004)

```
#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


----------



## squeaker (14. Juli 2004)

was funktioniert denn nicht?


----------



## kjh (15. Juli 2004)

passt schon, ich habs so geschafft!

danke für eure hilfe!

kjh


----------

