Ich möchte einen Hardware-Pixel-Puffer, der im Format X8B8G8R8 ist, in unsigned int 24-Bit-Speicherpuffer konvertieren.Convert X8B8G8R8 zu R8G8B8 C++ Code
Dies ist mein Versuch:
// pixels is uin32_t;
src.pixels = new pixel_t[src.width*src.height];
readbuffer->lock(Ogre::HardwareBuffer::HBL_DISCARD);
const Ogre::PixelBox &pb = readbuffer->getCurrentLock();
/// Update the contents of pb here
/// Image data starts at pb.data and has format pb.format
uint32 *data = static_cast<uint32*>(pb.data);
size_t height = pb.getHeight();
size_t width = pb.getWidth();
size_t pitch = pb.rowPitch; // Skip between rows of image
for (size_t y = 0; y<height; ++y)
{
for (size_t x = 0; x<width; ++x)
{
src.pixels[pitch*y + x] = data[pitch*y + x];
}
}
So, welches Problem haben Sie zu konvertieren? – auburg
Und das Ergebnis/Problem ist? – Matt