Я хочу извлечь RGB из каждого пикселя в QImage. В идеале я хочу использовать функцию img.bits().
QImage img;
if( img.load("Red.jpg") )
{
uchar *bits = img.bits();
for (int i = 0; i < 12; i++)
{
std::cout << (int) bits[i] << std::endl;
}
}
Как манипулировать возвращаемыми битами? Я ожидал, что все будет красным, потому что изображение чисто красного цвета, созданное в Paint. Однако я получаю 36, 27, 237, 255, 36 и т. д.
bits()
сильно зависит от формата изображения. Попробуйте преобразовать формат во что-то более подходящее для вашего сценария, например.img = img.convert(QImage::Format_ARGB32)
. Тогда байты должны выйти как0, 255, 0, 0, [loop]
, если я не ошибаюсь. - person Stefan Majewsky   schedule 12.09.2012