• 5654阅读
  • 6回复

关于位图显示,请帮忙提供下思路,谢谢!! [复制链接]

上一主题 下一主题
离线xuyantao
 
只看楼主 正序阅读 楼主  发表于: 2008-05-27
— 本帖被 XChinux 执行加亮操作(2008-06-03) —
功能:有一个100*100的矩阵,矩阵的每个元素是一个256以内的数。我需要把矩阵变成彩色图像显示出来。
矩阵的每个元素实际上是一个灰度值,大小不同亮度就不一样,这里要使用彩色显示。我就是不知道需要使用哪些QT类来实现这个功能??请帮忙指教一下!谢谢!
[ 此贴被xuyantao在2008-05-27 10:59重新编辑 ]
离线xuyantao
只看该作者 6楼 发表于: 2008-06-03
引用第5楼chinsung于2008-06-03 17:13发表的  :
楼上的,能不能把你的源程序完整的贴出来?我也正在研究个相似的东西!

我给的代码还不够详细吗?这已经是这已经是图像显示核心的代码了,呵呵
离线chinsung

只看该作者 5楼 发表于: 2008-06-03
楼上的,能不能把你的源程序完整的贴出来?我也正在研究个相似的东西!
离线xuyantao
只看该作者 4楼 发表于: 2008-05-28
多谢楼上,已经找到方法了,代码如下:
    int i;
    int r, g = 0, b = 0;
    QRgb *point;
    uchar* bit;
    QImage* pImage = new QImage(100,100,32);
    setWFlags(getWFlags() | Qt::WRepaintNoErase);
   
    i = 0;
    bit = &buffer[0][0];
    for(int y = 0; y < 100; y++)
        for(int x = 0; x < 100; x++){
            r = (int)bit;
            point = (QRgb*)pImage -> scanLine(y) + x;
            *point = qRgb(r, g, b);
            i++;
        }
    QCanvasPixmap* pixmap = new QCanvasPixmap(*pImage);
    QCanvasPixmapArray* pixmapArray = new QCanvasPixmapArray();
    pixmapArray -> setImage(0, pixmap);
    QCanvasSprite *sprite = new QCanvasSprite(pixmapArray, canvas);
    sprite -> setFrame(0);
    sprite -> show();
离线steinlee

只看该作者 3楼 发表于: 2008-05-28
Looking for remote C/C++ and Qt 兼职
离线xuyantao
只看该作者 2楼 发表于: 2008-05-27
刚才在论坛搜了一下QImage,资料很多,学习一下先
离线XChinux

只看该作者 1楼 发表于: 2008-05-27
找找QImage有没有方法
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
快速回复
限100 字节
 
上一个 下一个