Есть QPixmap , на нем painter'ом нарисована буква(черным цветом). QPixmap преобразуется в QImage. После чего я её по-квадратно (30х30) проверяю на цвет.. если есть черный - то в массив записывается 1, если есть белый, иначе - 0.
Но почему-то приходят много разных цветов, хотя по логике должно быть всего 2. Соответственно вся матрица заполняется 0...В чем моё не допонимание цветовой системы QImage и Qt в целом?
int h=image.height();
int w=image.width();
int matrix[30][30]={0};
//получим пиксели..
for(int i=0;i<w;++i)
for(int j=0;j<h;++j)
matrix[i/8][j/8]+=(image.pixel(i,j)==Qt::black)? 1 : 0
Навскидку, рисуешь с со сглаживанием?
ну по дефолту пэинтер рисует с антиалиасингом...
Попробуй для паинтера установить:
setRenderHint(QPainter::Antialiasing, false)
Да уж все, решилось все константой 4278190080UL.
А вообще надо было вот так QColor(Qt::black).rgb()..
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)