QPixmap :: fromImage()在QX11PixmapData中给出了分段错误

我写了一些看起来或多或少像这样的代码:
QVector<QRgb> colorTable(256);
 QImage *qi = new QImage(lutData, imwidth,imheight, QImage::Format_Indexed8);

 while (index < 256)
 {
         colorTable.replace(index, qRgb(2552,255, 255));
         index++;
 }
 qi->setColorTable(colorTable);


 QPixmap p(QPixmap::fromImage(*qi,Qt::AutoColor));
所以lutData(unsigned char)是我对colorTable的索引。这会在代码片段的最后一行崩溃,实际的行在库中,我看不到来源调用QX11PixmapData。我做错了什么导致这次崩溃,还是Qt Bug? 如果这很重要,我正在运行CentOS 5.5。 谢谢!     
已邀请:
您调用的QImage构造函数是:
QImage::QImage ( const uchar * data, int width, int height, Format format )
这要求扫描线数据是32位对齐的。所以确保它并且还有足够的字节。或者您可以使用:
QImage::QImage ( uchar * data, int width, int height, int bytesPerLine, Format format )
这允许指定每个扫描线的字节而不是32位对齐。所以你可以这样称呼它:
QImage *qi = new QImage(lutData, imwidth, imheight, imwidth, QImage::Format_Indexed8);
因为对于索引颜色图像,扫描线字节与宽度相同。     

要回复问题请先登录注册