Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Система рисования. Печать _ QImage::pixel(x,y) возврашает разные цвета в черно-белом изображении

Автор: Andrewshkovskii 8.12.2009, 20:26

Есть 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


Автор: fsMark 8.12.2009, 20:33

Навскидку, рисуешь с со сглаживанием?

Автор: Andrewshkovskii 8.12.2009, 20:37

ну по дефолту пэинтер рисует с антиалиасингом...

Автор: fsMark 9.12.2009, 13:29

Попробуй для паинтера установить:
setRenderHint(QPainter::Antialiasing, false)


Автор: Andrewshkovskii 9.12.2009, 13:43

Да уж все, решилось все константой 4278190080UL.
А вообще надо было вот так QColor(Qt::black).rgb()..

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)