Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: ElderOrb от Август 25, 2006, 13:55



Название: uchar* => QImage ?
Отправлено: ElderOrb от Август 25, 2006, 13:55
В одной библиотеке машинного зрения есть класс CProImage, который содержит в себе данные в формате uchar* и который как ни странно проблематично вывести на экран. Поэтому мне бы хотелось на данных этого класса построить QImage и дальше работать с ним.
Делал я примерно следующее:

image = QImage((uchar*)cproImage->GetData(),cproImage->GetWidth(), cproImage->GetHeight(),QImage::Format_Mono);

.. и т.д с другими форматами. В тех случаях когда не выскакивало эксепшена отображалось одно и то же и совершенно не то что мне надо. К примеру исходная картинка была с чёрной вертикальной полоской слева, а у меня отображалась "каша" с белой горизонтальной полоской сверху.

Помогите понять в чём дело! В примерах к демке всё делается на mfc и winapi, а я ни с первым ни со вторым связываться желания особого не имею.

Всё, разобрался. Немного ассистанта внутривенно + иногда включать мозг и всё ок!.

p.s. Нижеизложенное строчки заменяют приличный кусок довольно мясного когда на mfc + winapi.

QModelAreaDlg::QModelAreaDlg() {
this->image = QImage((uchar*)image->GetData(),image>GetWidth(),         image->GetHeight(),QImage::Format_Indexed8);
   this->image.setNumColors(256);
   for(int i = 0; i<255; ++i)
      this->image.setColor(i, QColor(i, i, i, 255).rgb());
}

void QModelAreaDlg::paintEvent(QPaintEvent* event) {
         QPainter p(this);
   p.drawImage(0, 0, image);
}