QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1580|回复: 8

请问linux下读取BMP文件的函数

[复制链接]
发表于 2004-12-18 20:11:42 | 显示全部楼层 |阅读模式
需要在linux下面作图像处理的程序
需要打开bmp文件,现在用的开发工具是KDevelop,QT库
在windows的vc中,是用SetDIBsToDevice打开的
请问在QT下面有类似的函数么?
或者其他库里面,谢谢!
发表于 2004-12-18 20:44:23 | 显示全部楼层
QPixmap试试,好像可以,我没有试过bmp,记得是可以的
QPixmap pic("yours.bmp");
要#include <qpixmap.h>
回复

使用道具 举报

 楼主| 发表于 2004-12-18 22:55:42 | 显示全部楼层
我看了QPixmap里面很多函数
我也不确定用哪个?
而且怎么在程序中显示我也不清楚
能给个简单的例子么
比如一个直接一个main.cpp

#include <qpixmap.h>
#include <qapplication.h>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QPixmap pix;


    pix->show();
    return app.exec();
}

中间的代码该如何完成呢?
回复

使用道具 举报

发表于 2004-12-18 23:40:53 | 显示全部楼层
这是例子

[code:1]
#include <qapplication.h>
#include <qpixmap.h>
#include <qlabel.h>

int main(int argc, char *argv[])
{
     QApplication app(argc, argv);
     QPixmap pix("你的图片文件名含");  // 载入一张图片
     QLabel main;                     // 声明一个Label叫main
     main.setPixmap(pix);             // Label上显示载入的图片
     app.setMainWidget(&main);        // 把这个Label设置为主窗口的内容
     main.show();                     // 显示它
     return app.exec();               // 现在运行app,进入qtevent循环中
}
[/code:1]

qpixmap并不是QWidget, 所以无法在窗口中显示,下面是Assistant里的话
“The QPixmap class is an off-screen, pixel-based paint device.”
在qapplication 里只能放QWidget及其子类.

我觉得还是多看看Assistant,或者其他的Qt的书,会有很大帮助
回复

使用道具 举报

 楼主| 发表于 2004-12-18 23:58:23 | 显示全部楼层
加入#include <qlabel.h>后
还是有错误

pic.cpp:9: error: no matching function for call to `QLabel::QLabel()'
/usr/lib/qt-3.3/include/qlabel.h:163: note: candidates are: QLabel::QLabel(const QLabel&)
/usr/lib/qt-3.3/include/qlabel.h:66: note:                 QLabel::QLabel(QWidget*, const QString&, QWidget*, const char*, uint)
/usr/lib/qt-3.3/include/qlabel.h:64: note:                 QLabel::QLabel(const QString&, QWidget*, const char*, uint)
/usr/lib/qt-3.3/include/qlabel.h:62: note:                 QLabel::QLabel(QWidget*, const char*, uint)

我最近才开始看linux的东西,图像这方面没什么例子,让我有点没有方向阿
回复

使用道具 举报

发表于 2004-12-19 00:49:59 | 显示全部楼层
那你就看哪个构造函数适合,就改成什么样子就可以了。
你把
[code:1]
QLabel main
[/code:1]
改成
[code:1]
QLable main(0, "lable")
[/code:1]
回复

使用道具 举报

 楼主| 发表于 2004-12-19 01:01:23 | 显示全部楼层
非常感谢
已经可以显示了
回复

使用道具 举报

发表于 2004-12-19 01:06:05 | 显示全部楼层
没事,没事,我上面敲错了, 是 QLabel
回复

使用道具 举报

 楼主| 发表于 2004-12-19 01:21:58 | 显示全部楼层

可以qq和你联系么?
mine:21118405
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-6 21:25 , Processed in 0.073244 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表