RGB auslesen unter Visual

The NightHawk

Grünschnabel
Ich würde gerne erfahren wie man in C++, von jedem einzelen Pixel einer Bitmap die RGB auslesen kann und ich weiß ihr werdet mir helfen können.

danke !
 
Moin Moin,
Da ich vor kurzem ähnliche Probleme hatte bin ich mir sicher das du hier fündig wirst. Such mal nach "transparent" da müssteste was finden.
Gruss Michael
 
Danke erstmal für deine schnelle Hilfe,

aber ich habe leider keinen Thread gefunden, der mich ein Stück weiter gebracht hat.

Könntest du mir vielleicht den Thread raussuchen und hier posten wäre echt nett

Danke schon im Voraus
 
Hallo Hawk,

Das gibt es verschiedene Möglichkeiten.
Wenn du direkt auf den Datenbereich der Bitmap zugreifen kannst, geht es am schnellsten, wenn du mit einem gecasteten Zeiger direkt darauf zugreifst.

in der windigi.h sind zwei Typen definiert

typedef struct tagRGBQUAD {
BYTE rgbBlue;
BYTE rgbGreen;
BYTE rgbRed;
BYTE rgbReserved;
} RGBQUAD;

und

typedef struct tagRGBTRIPLE {
BYTE rgbtBlue;
BYTE rgbtGreen;
BYTE rgbtRed;
} RGBTRIPLE;

Je nachdem, wie nun deine Bitmap aussieht (32 oder 24 Bit)
funktioniert das dann in etwa so.:

Code:
BYTE* pBitmapData;  // einfach dein Datenbereich
RGBTRIPLE*pRgb= (RGBTRIPLE*)pBitmapData;  //casten
int Red=0;

for (int i=0;i<NumberPixel;i++,pRgB++)  Red+=pRgb->rgbtRed;  //Zugriff

int AvgR= Red/NumberPixel;
Damit hast du z.B. den Rot-Mittelwert ausgerechnet.

Ich hoffe das hat geholfen

cu
Murpsel

p.s. Wenn du mit Visual C++ arbeitest würde ich mir mal die Klasse CImage ansehen. Die nimmt dir gerade bei Bildern und Bitmaps viel Arbeit ab!
 
Zuletzt bearbeitet:
Zurück