2

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

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

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

类似于以下内容:

QString QImage::getOriginalFilepath();

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

(顺便说一下,我使用的是 Qt 4.7。)

4

3 回答 3

4

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

所以,总而言之,这似乎是不可能的。

于 2010-10-05T15:55:54.840 回答
4

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

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

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

我省略了实现细节。

于 2010-10-05T16:00:55.923 回答
0

我通常创建一个结构来保存 QImage 和图像路径。

struct Image
{
    QImage imageData;
    QString filename;
};
于 2014-11-18T23:22:29.797 回答