bmp in unsigned char (Zählrichtung?)

Hallo,

Ich habe ein bmp in ein unsigned char hereingeladen.
Die Variable m_charBild ist eine Membervariable meines Dlgs MesssystemDlg und vom Typ unsigned char.

Code:
	int Hoehe = 180;
	int Breite = 320;

	//Bitmapinfo erstellen und definieren
	BITMAPINFO bmi;
	bmi.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
	bmi.bmiHeader.biWidth = Breite;
	bmi.bmiHeader.biHeight = Hoehe;
	bmi.bmiHeader.biPlanes = 1;
	bmi.bmiHeader.biBitCount = 24;
	bmi.bmiHeader.biCompression = BI_RGB;
	bmi.bmiHeader.biSizeImage = 0;
	bmi.bmiHeader.biXPelsPerMeter = 1000;
	bmi.bmiHeader.biYPelsPerMeter = 1000;
	bmi.bmiHeader.biClrUsed = 0;
	bmi.bmiHeader.biClrImportant = 0;

	//Dialogfenster "Öffnen" definieren und anzeigen
	static char BASED_CODE sBitmapFilter[] = "Bitmap-Dateien(*.bmp)|*.bmp||";
	CFileDialog	fBitmap(TRUE, ".bmp", m_sBitmap, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, sBitmapFilter);
	if (fBitmap.DoModal() == IDOK)
	//Was passiert, sobald der OK-Button gedrückt wird
	{
		m_sBitmap = fBitmap.GetPathName();		//beinhaltet den Dateinamen + Pfad der zu öffnenden Datei
		//Bild in Bitmap-Handle einladen
		HBITMAP hBitmap = (HBITMAP)::LoadImage(AfxGetInstanceHandle(), m_sBitmap, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE | LR_CREATEDIBSECTION);

		//device-context auf aktuelles (MesssystemDlg) Fenster zeigen
		CClientDC dc(this);

		//Größe des m_charBild neu definieren
		m_charBild = (unsigned char *)realloc(m_charBild,Breite * Hoehe * 3);
	
		//Bitmap-Handle in DIB-Bild umwandeln
		GetDIBits(dc, hBitmap, 0, Hoehe, m_charBild, &bmi, DIB_PAL_COLORS);
             }

Wenn ich nun die Farbwerte der Positionen 0,0 und 319,179 abfragen will, ist der Punkt 0,0 ganz unten links und der Punkt 319,179 ganz oben rechts...

Ist das nicht sonst anders? Zählt der nicht normalerweise von oben links zeilenweise nach unten rechts?

Oder ist das ne Einstellungssache, die ich übersehen habe?

Gruß,
Alex
 
BMPs sind aus irgendeinem Grund vertikal geflippt gespeichert. Das kann man an der bmHeight-Variable feststellen. Wenn diese positiv ist, ist die Grafik verkehrt rum gespeichert, ist sie negativ, dann ist sie richtig rum.

Üblicherweise werden die BMPs aber verkehrt rum gespeichert.
 
Zurück