我在文档中没有看到这个,所以它可能不存在,但以防万一:
我有一个函数接受QImages矢量作为参数。每个QImage都在某个时刻从磁盘加载而且还没有被编辑 - 它只是从中读取。理想情况下,我想要做的是遍历所有QImages并将其文件路径列表输出到XML文件。
不幸的是,我没有在文档中看到任何方法来获取从中加载图像的原始文件路径。所以我的问题是,是否有可能只给出一个QImage来确定QImage最初加载的文件路径是什么?
有些事情:
QString QImage :: getOriginalFilepath();
我知道这可能是一个徒劳的问题,但我认为它总是值得一试。
(顺便说一下,我正在使用Qt 4.7。)
答案 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;
};