首页| 论坛| 消息

回复: 使用Qt的QLabel获取绘图句柄问题!
#21 回 xuang 的帖子 [dbzhang800 09-24 16:14]
xuang:
k表示通道数,这里就是0、1、2三个取值,刚才图个方便就没有展开写。
我记得QImage中的RGB888是按照BGR的顺序反向排列的,这一点你可以自己确认一下,无非就是显示彩色图像时颜色花了,但是内容是正确的。我之前用QImage::Format_ARGB32格式的QImage中四位字节顺序也是BGRA的反向排列。这个只是小问题,关键还是不能显示的问题。
你可以先不用你的pLinearAddr数据作为图像数据,直接对QImage的bits进行赋值,做一张全白或者全红的图像出来看看能不能显示,如果这都不能显示那就得找别的问题了。
看到楼主被你上一回帖引到不太正确的道路上了。我补充一点东西:
1. 你对QImage的32位对齐可能理解有偏差,楼主w和h都是4的倍数。指定没有这个对齐问题
2. RGB888,就是R、G、B。你可能混淆了RGB888和RGB24(QImage没有这个格式), RGB32和RGBX8888,以及ARGB32和RGBA8888 的区别。
#22 回 dbzhang800 的帖子 [xuang 09-24 16:24]
dbzhang800:看到楼主被你上一回帖引到不太正确的道路上了。我补充一点东西:
1. 你对QImage的32字节对齐可能理解有偏差,楼主w和h都是4的倍数。指定没有这个对齐问题
2. RGB888,就是R、G、B。你可能混淆了RGB888和RGB24(QImage没有这个格式), RGB32和RGBX8888,以及ARGB32和RGBA8888 的区 .. (2014-09-24 16:14) 
多谢版主指教,之前确实没有主要到这两种类型的区别,简单地当作一种类型处理了。
#23 回 xuang 的帖子 [nuanbing222 09-25 09:31]
xuang:多谢版主指教,之前确实没有主要到这两种类型的区别,简单地当作一种类型处理了。 (2014-09-24 16:24) 
您好,我这样试了一下:
QImage* image = new QImage(768, 576, QImage::Format_RGB888);
uchar* imageData = image->bits();
for(int i=0; isetPixmap(pixmap);
怎么完全没有显示啊。。。我哪里写错了吗?
#24 回 dbzhang800 的帖子 [nuanbing222 09-25 09:36]
dbzhang800:看到楼主被你上一回帖引到不太正确的道路上了。我补充一点东西:
1. 你对QImage的32位对齐可能理解有偏差,楼主w和h都是4的倍数。指定没有这个对齐问题
2. RGB888,就是R、G、B。你可能混淆了RGB888和RGB24(QImage没有这个格式), RGB32和RGBX8888,以及ARGB32和RGBA8888 的区别 .. (2014-09-24 16:14) 
您好,非常感谢您的回复和指导,但是我好像还是不知道怎么做,按照你的说法,使用QImage直接构建我也试过了,只是在不行之后才试了其它的方法,因为现在比较急,所以尽量还是多试一下。
您可否给一个比较详细的方法,我是个菜鸟,谢谢!
另外,在供应商给的Demo程序中,他使用了一个EImage的类,网上查不到,不知道您是否接触过,这个类可以使用draw(HDC)的方式进行绘图,只是在Qt中没有办法获取与MFC相同的空间句柄,导致我使用同样的方法,无法进行绘制,所以才进行了各种尝试。
#25 回 nuanbing222 的帖子 [dbzhang800 09-25 10:02]
nuanbing222:
您好,非常感谢您的回复和指导,但是我好像还是不知道怎么做,按照你的说法,使用QImage直接构建我也试过了,只是在不行之后才试了其它的方法,因为现在比较急,所以尽量还是多试一下。
您可否给一个比较详细的方法,我是个菜鸟,谢谢!
.......
写测试代码,应该越简单越好。无论对你测试自己代码,还是去给某个库提交bug,这都是非常有好处的。
在QImage没搞清楚的情况下,你就开始将其转QPixmap了,而后又用QLabel显示,如此一来,你又如何判定是QImage的问题??
有效的测试代码应该是下面这种风格,你认为QImage的构造有问题,你就应该专门测试它。(另外,你们写程序,都不写单元测试么??)
#include
const int w = 100;
const int h = 200;
int main()
{
    qsrand(0);
    uchar *bytes = new uchar;
    for (int i=0; i

<< 3 4 5 6 >> (5/6)

回复 发表
主题 版块