Я пытаюсь скопировать значения из QImage в свою структуру изображения (из-за школьной работы), и я не могу понять, как хранятся пиксели
API говорит, что при использовании Format_Mono изображение сохраняется с использованием 1 бит на пиксель.
Я создал следующий код:
QImage image(10,10,QImage::Format_Mono); // create 10x10 image
image.fill(1); // whiten the image
QPainter p;
p.begin(&image);
p.setPen(QPen(QColor(Qt::black)));
p.drawPoint(10,1); // make ONE point black
p.end();
uchar* pixels = image.constBits();
int count = image.byteCount(); // returns 40 !!
Первое: я не понимаю, почему используется 40 байт (я ожидал, что 20 будет более чем достаточно - как это было бы BufferedImage
в java)
Второе: при итерации по пикселям каждый четвертый (начиная с третьего - индексы 2,6,10 ...) байт устанавливается в 173, а каждый четвертый (начиная с четвертого - индексы 3,7,11 ...) байт равен установлен на 186. Остальные байты правильно (??) установлены на 255 (белые).
Я ожидал 20 байт, поэтому 19 будет установлено 255, а один (с цветным пикселем [10,1], установленным на другое значение)
Что я пропускаю? Спасибо