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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QColor  (Прочитано 3423 раз)
Leopard256
Гость
« : Октябрь 09, 2013, 08:09 »

пытаюсь получить цвет пикселя:

QImage img = m_Image.toImage();
QColor cur_color = QColor(img.pixel(x,y));

вроде все правильно, но получаю:
+ cur_color   [Rgb] [r = 0x8383, g = 0xdddd, b = 0xdede] (...)   QColor


в img картинка правильная, координаты x,y не выходят за пределы.

Что это может быть и как исправить?
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



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

Попробуйте использовать:
QColor QColor::fromRgb(QRgb rgb) [static]
Записан
Leopard256
Гость
« Ответ #2 : Октябрь 09, 2013, 08:17 »

тоже самое получаю  Грустный
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



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

А что это за картинка, в каком формате она храниться и как получается?
Записан
Leopard256
Гость
« Ответ #4 : Октябрь 09, 2013, 08:21 »

скриншот с экрана

если делать:

 m_Image.save("123.jpg");

сохраняется правильное изображение
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #5 : Октябрь 09, 2013, 08:23 »

сохраняется правильное изображение
А если img сохранить, что получиться?
Записан
Leopard256
Гость
« Ответ #6 : Октябрь 09, 2013, 08:28 »

не сохраняется, создает файл 1*1 пиксель

формат img  QImage::Format_RGB32


img ведь создается, значит m_pImage.toImage() проходит нормально?
« Последнее редактирование: Октябрь 09, 2013, 08:47 от Leopard256 » Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #7 : Октябрь 09, 2013, 08:54 »

img ведь создается, значит m_pImage.toImage() проходит нормально?
Не очень нормально, если

не сохраняется, создает файл 1*1 пиксель

Проверяйте полученный имедж на null с помощью:
bool QImage::isNull () const

Если QPixmap::toImage не может конвертировать картинку она возвращает пустой image.
« Последнее редактирование: Октябрь 09, 2013, 09:04 от Old » Записан
Leopard256
Гость
« Ответ #8 : Октябрь 09, 2013, 09:15 »

1)почему значения QColor  отображаются в таком виде?
cur_color   [Rgb] [r = 0x8383, g = 0xdddd, b = 0xdede] (...)   QColor

хотя int отображается в десятичной форме, можно это исправить? (Microsoft Visual C++ 2010)
реальные значения цвета в QColor r = 0x83, g = 0xdd, b = 0xde

2) проблема с конвертацией как ни странно решилась самопроизвольно.


3) почему не компилируется:
  m_pix =   m_pImage.copy(0, 0, iWidth, iHeight);  

...
        HBITMAP pDestPicture = ::CreateCompatibleBitmap(hdcSrc, iWidth, iHeight);
        HGDIOBJ oldOBJ = ::SelectObject(pDest, pDestPicture);
        ::BitBlt(pDest, 0, 0, iWidth, iHeight, hdcSrc, 0, 0, SRCCOPY);
        QPixmap tmp = QPixmap::fromWinHBITMAP(pDestPicture);
        m_pImage = tmp;       

        QPixmap pTMP =  m_pImage.copy(0, 0, iWidth, iHeight); 
        m_pix =  pTMP;
...

 error LNK2019: unresolved external symbol "__declspec(dllimport) public: class QPixmap & __thiscall QPixmap::operator=(class QPixmap &&)" (__imp_??4QPixmap@@QAEAAV0@$$QAV0@@Z) referenced in function "public: void __thiscall SSS::getPic(void)" (?getPic@SSS@@QAEXXZ)
« Последнее редактирование: Октябрь 09, 2013, 09:34 от Leopard256 » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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