B
Also ich habe es jetzt folgendermaßen versucht:
// Bitmap wird geladen
void Cbitmap_einlesenView::OnBnClickedButtonLoad()
{
BITMAP BitmapParam;
COLORREF m_Value;
HDC hDC, hMemDC;
if(m_hBitmap != NULL)
::DeleteObject(m_hBitmap);
m_hBitmap = (HBITMAP)::LoadImage( 0,
"D:\\Unbenannt.bmp",
IMAGE_BITMAP,
0,
0,
LR_LOADFROMFILE);
if(m_hBitmap == NULL)
{
AfxMessageBox("Konnte Bitmap nicht öffnen\n");
return;
}
hDC = (HDC)GetDC();
hMemDC = CreateCompatibleDC(hDC);
GetObject(m_hBitmap, sizeof(BITMAP), (LPSTR)&BitmapParam);
SelectObject(hMemDC, m_hBitmap);
n_picHeight = BitmapParam.bmHeight;
n_picWidth = BitmapParam.bmWidth;
for(int j=0;j<BitmapParam.bmHeight;j++)
{
for(int i=0;i<BitmapParam.bmWidth;i++)
{
m_Value = GetPixel(hMemDC,i,j);
TRACE("%d\n",m_Value);
}
}
}
m_hBitmap ist hierbei ein Bitmap-Handle HBITMAP. In der zweifachen For-Schleife möchte ich jetzt die Pixel in ein Array kopieren, aber der Zugriff mit GetPixel scheitern, der return-Wert ist in jedem Falle -1, was ja lt. Beschreibung auf einen Fehler schließen lässt. Dieser wird wohl mit hMemDC zusammenhängen...wenn mir jemand meinen Fehler aufzeigen könnte, wäre ich dankbar. Eine Erklärung wäre auch klasse, um nicht den selben Fehler noch einmal zu machen. Vielen Dank schonmal