ähm, ja ....
((sizeof( RGB32 ) == sizeof( UINT32 )) && (sizeof( RGB32 ) == 4)) == true
Du musst dann eben nur die 'bit-shift', oder 'or' operationen selbst machen ... .
Hier ein Beispiel, dass das Bild kopiert und alles Blau aus dem Bild herausnimmt :
void DoTransformGB32(void* pSourceBuffer, void*pDestBuffer, long lSourceSize )
{
UINT* pSrc = (UINT*) pSourceBuffer;
UINT* pDest = (UINT*) pDestBuffer;
for( int i = 0; i < lSourceSize / 4; ++i )
{
pDest[i] = (pSrc[i] & 0xFFFF00FF);
/* wäre sonst :
pDest[i].r = pSrc[i].r;
pDest[i].g = pSrc[i].g;
pDest[i].b = = 0;
*/
}
}
PS: Dieser Code ist ungetestet, da er aus dem Gedächtnis geschrieben wurde und nur zur Verdeutlichung gedacht ist (die Beispiele oben haben nen bug ...)