Russian Qt Forum
Ноябрь 23, 2024, 03:26 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Получение черно-белого изображения  (Прочитано 6532 раз)
deathklaat
Гость
« : Октябрь 09, 2009, 17:07 »

Добрый день. Имеется изображение в QImage, подскажите, пожалуйста, как сделать его черно-белым.
Qt 4.5.0 C++
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #1 : Октябрь 09, 2009, 17:11 »

QImage::convertToFormat(QImage::Format_Mono) ?
Записан
ufna
Гость
« Ответ #2 : Октябрь 09, 2009, 18:40 »

Если топорно, то можно так:

Код
C++ (Qt)
   QPixmap alpha = m_openedPix.alphaChannel();
   QImage img = m_openedPix.toImage();
 
   for( int w = 0; w < img.rect().right(); w++ ) {
       for( int h = 0; h < img.rect().bottom(); h++ ) {
           QColor col( img.pixel(w,h) );
           col.setHsv(col.hue(), 0, col.value(), col.alpha());
           img.setPixel(w,h,col.rgb());
       }
   }
 
   m_openedPix = QPixmap::fromImage( img );
   m_openedPix.setAlphaChannel( alpha );
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #3 : Октябрь 09, 2009, 19:25 »

Если топорно, то можно так:
...
            col.setHsv(col.hue(), 0, col.value(), col.alpha());
Стандартная формула для перевода в greyscale (Photoshop etc.)

greyscale = red * 0.299f + green * 0.587f + blue * 0.114f;

(коэффициенты "сильно не равны" Улыбающийся)
Записан
deathklaat
Гость
« Ответ #4 : Октябрь 10, 2009, 17:17 »

спасибо больше. топорный метод работает Улыбающийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.083 секунд. Запросов: 23.