crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> QImage::pixel(x,y) возврашает разные цвета в черно-белом изображении
Andrewshkovskii
  опции профиля:
сообщение 8.12.2009, 20:26
Сообщение #1


Активный участник
***

Группа: Участник
Сообщений: 351
Регистрация: 27.12.2008
Пользователь №: 467

Спасибо сказали: 18 раз(а)




Репутация:   1  


Есть 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
Сообщение #2


Студент
*

Группа: Участник
Сообщений: 97
Регистрация: 23.4.2008
Из: г. Киров
Пользователь №: 155

Спасибо сказали: 10 раз(а)




Репутация:   1  


Навскидку, рисуешь с со сглаживанием?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Andrewshkovskii
  опции профиля:
сообщение 8.12.2009, 20:37
Сообщение #3


Активный участник
***

Группа: Участник
Сообщений: 351
Регистрация: 27.12.2008
Пользователь №: 467

Спасибо сказали: 18 раз(а)




Репутация:   1  


ну по дефолту пэинтер рисует с антиалиасингом...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
fsMark
  опции профиля:
сообщение 9.12.2009, 13:29
Сообщение #4


Студент
*

Группа: Участник
Сообщений: 97
Регистрация: 23.4.2008
Из: г. Киров
Пользователь №: 155

Спасибо сказали: 10 раз(а)




Репутация:   1  


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

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Andrewshkovskii
  опции профиля:
сообщение 9.12.2009, 13:43
Сообщение #5


Активный участник
***

Группа: Участник
Сообщений: 351
Регистрация: 27.12.2008
Пользователь №: 467

Спасибо сказали: 18 раз(а)




Репутация:   1  


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

Сообщение отредактировал Andrewshkovskii - 9.12.2009, 13:49
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 18.9.2019, 0:34