Название: QColor Отправлено: 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 не выходят за пределы. Что это может быть и как исправить? Название: Re: QColor Отправлено: Old от Октябрь 09, 2013, 08:14 Попробуйте использовать:
QColor QColor::fromRgb(QRgb rgb) [static] Название: Re: QColor Отправлено: Leopard256 от Октябрь 09, 2013, 08:17 тоже самое получаю :(
Название: Re: QColor Отправлено: Old от Октябрь 09, 2013, 08:18 А что это за картинка, в каком формате она храниться и как получается?
Название: Re: QColor Отправлено: Leopard256 от Октябрь 09, 2013, 08:21 скриншот с экрана
если делать: m_Image.save("123.jpg"); сохраняется правильное изображение Название: Re: QColor Отправлено: Old от Октябрь 09, 2013, 08:23 сохраняется правильное изображение А если img сохранить, что получиться?Название: Re: QColor Отправлено: Leopard256 от Октябрь 09, 2013, 08:28 не сохраняется, создает файл 1*1 пиксель
формат img QImage::Format_RGB32 img ведь создается, значит m_pImage.toImage() проходит нормально? Название: Re: QColor Отправлено: Old от Октябрь 09, 2013, 08:54 img ведь создается, значит m_pImage.toImage() проходит нормально? Не очень нормально, еслине сохраняется, создает файл 1*1 пиксель Проверяйте полученный имедж на null с помощью: bool QImage::isNull () const Если QPixmap::toImage не может конвертировать картинку она возвращает пустой image. Название: Re: QColor Отправлено: Leopard256 от Октябрь 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) |