QImage文件路径

时间:2010-10-05 15:33:07

标签: c++ qt qimage

我在文档中没有看到这个,所以它可能不存在,但以防万一:

我有一个函数接受QImages矢量作为参数。每个QImage都在某个时刻从磁盘加载而且还没有被编辑 - 它只是从中读取。理想情况下,我想要做的是遍历所有QImages并将其文件路径列表输出到XML文件。

不幸的是,我没有在文档中看到任何方法来获取从中加载图像的原始文件路径。所以我的问题是,是否有可能只给出一个QImage来确定QImage最初加载的文件路径是什么?

有些事情:

QString QImage :: getOriginalFilepath();

我知道这可能是一个徒劳的问题,但我认为它总是值得一试。

(顺便说一下,我正在使用Qt 4.7。)

3 个答案:

答案 0 :(得分:4)

我查看了代码,并且该信息似乎没有保存在任何地方。 QImage :: load(和构造函数)使用QImageReader(fileName,format).read(),然后将结果复制到自身。 QImageReader设置为在完成读取后立即删除设备表示(打开的文件对象)。

因此,总而言之,这似乎是不可能的。

答案 1 :(得分:4)

同样对我而言,似乎QImage没有提供获取其路径的接口。我也认为这不是缺失的功能,因为没有必要将QImage绑定到特定路径。在大多数用例中,QImage没有相应的物理文件。

因此,在您的情况下,最好的方法是继承QImage并添加此功能:

class MyImage : public QImage {
   QString path_;
public:
   MyImage(const QString& path); 
   QString path(); // getter 
};

我省略了实施细节。

答案 2 :(得分:0)

我通常会创建一个用于保存QImage和图像路径的结构。

struct Image
{
    QImage imageData;
    QString filename;
};