• 6198阅读
  • 2回复

求助:我想用QT3做一个能显示自己的RAW图像文件的程序,现在用QImage如何能显示呢?! [复制链接]

上一主题 下一主题
离线shally5
 

只看楼主 倒序阅读 楼主  发表于: 2008-12-15
— 本帖被 XChinux 执行加亮操作(2009-01-06) —
求助:我想用QT3做一个能显示自己的RAW图像文件的程序,现在用QImage如何能显示呢?!
求高手指点,我的RAW文件格式是RGBRGBRGB。。。。。RGB每三个char为一个象素的RGB值
我用如下方法只能显示一个黑图,.........为什么?
//读文件
data=new unsigned char[800*600*3];
FILE *ip;
ip=fopen("c:\\pic.raw","rb");
fread(data,sizeof(data),1,ip);
fclose(ip);
logoimage=new QImage();
logoimage->create( 800, 600,32,0,QImage::LittleEndian );//QImage::IgnoreEndian ) ;
int r, g, b,i=0;
QRgb *point;
for(int y = 0; y < 600; y ++)
{
    for ( int x = 0; x < 800; x ++ )
    {
        r = (unsigned short)data [i+0]];
        g = (unsigned short)data[i+1];
        b = (unsigned short)data[i+2];
        point = (QRgb *)logoimage->scanLine(y) + x;
        *point = qRgb(r, g, b);
        i += 3;
      }
    }
//显示
void Main::paintEvent(QPaintEvent*)
{
bitBlt( vb, 0, 0,logoimage, 0, 0, -1, -1 );
}
[ 此贴被shally5在2008-12-16 13:54重新编辑 ]
离线shally5

只看该作者 1楼 发表于: 2008-12-16
我往上拉一拉!还没解决呢!
离线ssw2002com

只看该作者 2楼 发表于: 2009-02-12
正常情况下,QImage OR Qpixmap都不能显示raw image ,但是你可以对raw image 简单封装一下,P5之类,只要加个头即可。
快速回复
限100 字节
 
上一个 下一个