GetPixel Problem

Bigity

Grünschnabel
Hallo,

ich habe folgendes Problem:
Ich will ein Bild aus einer Datei einlesen, und dann von jeden Pixel die Farbe in einer Tabelle ausgeben.
GetPixel verlangt jedoch von mir ein 3. Argument. Welche Information brauch ich da noch?

Bishereriger Code:
cpp Code:
  1. Bitmap img= (L"farbe.bmp");
  2. int x=img.GetWidth();
  3. int y=img.GetHeight();
  4. printf("Breite: %i Hoehe: %i\n",x,y);
  5. COLORREF myPixel = img.GetPixel(5,5);
  6. int r = GetRValue(myPixel);
  7. int g = GetGValue(myPixel);
  8. int b = GetBValue(myPixel);
 
Hallo,

ich kann deinen Code nicht so richtig einordnen. Mit welchen Compiler bzw. Bibliotheken (Win32, MFC, .NET, ...) und unter welchem Betriebssystem arbeitest du?
Schon die Zeile "Bitmap img= (L"farbe.bmp");" scheint mir recht seltsam und dürfte in der Form sicher nicht funktionieren.

Gruß
MCoder
 
Zuletzt bearbeitet:
hi,
also ich arbeite mit win32. Betriebssystem windows xp
Die Zeile Bitmap img= (L"farbe.bmp"); funktioniert, hab ich im Prinzip mit der Höhe/Breite Anfrage getestet.
Oder hast du dafür einen anderen/besseren Vorschlag
 
Hallo,

"Bitmap" kenne ich entweder nur als .NET-Klasse oder als Klasse des GDI+ - SDK. Die Anwendung ist aber in jedem Fall anders, als du es gemacht hast.
C++:
Bitmap *pBmp = Bitmap::FromFile(L"farbe.bmp");
int x = pBmp->GetWidth();
int y = pBmp->GetHeight();

// ...
die Methode "GetPixel()" liefert nur einen Status (erfolgreich oder nicht erfolgreich) zurück, aber nicht den Farbwert. Die entprechende Variable muss als dritter Parameter mit übergeben werden.
C++:
Color color;

if( pBmp->GetPixel(10, 10, &color) == Ok )
{
    int r = color.GetR();
    int g = color.GetG();
    int b = color.GetB();
}

Gruß
MCoder
 
Zurück