Как QImage с Format_Mono хранит информацию?

я пытаюсь скопировать значения из 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 в яве делаю)

Второе: при итерации по пикселям каждый четвертый (начиная с третьего — индексы 2,6,10 …) байт устанавливается на 173, а каждый четвертый (начиная с четвертого — индексы 3,7,11 …) байт установить на 186.
Другие байты правильно (??) установлены на 255 (белый).

Я ожидал 20 байтов, поэтому для 19 будет установлено 255, а для одного (с цветным пикселем [10,1] установлено другое значение)

Что я, миссис? Спасибо

2

Решение

API: данные строки сканирования выровнены по 32-битной границе.

Это было причиной … документация Qt метода bits () забыла упомянуть об этом …

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]