我不认为这在任何地方的文件,所以它可能不存在,但以防万一:

我有接受作为参数QImages的载体的功能。 QImage的每一个从磁盘在某些时候加载,并没有被编辑 - 它只是读取。理想的情况是什么,我想要做的是循环遍历所有的QImages和输出它们的文件路径列表到一个XML文件中。

不幸的是,我没有在文件中看到任何方式来获得在该图像是由加载的原始文件路径。所以我的问题是,是否有可能,只给出一个QImage的,要弄清楚什么文件路径的QImage最初是从加载与否?

沿东西线:

的QString QImage的:: getOriginalFilepath();

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

(我使用Qt 4.7,顺便。)

有帮助吗?

解决方案

我通过代码看,并且该信息不出现的任何地方保存。而QImage ::负载(和构造函数)使用QImageReader(当文件名,格式).read(),然后将结果复制到自身。所述QImageReader被设置为删除的设备表示(打开的文件对象),只要它的成品读数。

因此,简言之,看来这是不可能的。

其他提示

对我来说也似乎QImage的不提供一个接口来获得它的路径。我也认为这是不缺少的功能,因为没有必要,以配合一个QImage的一个特定的路径。在大多数的所有的用例的QImage的已没有对应的物理文件。

因此,在您的情况最好的办法是QImage的子类,并添加此功能:

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

我省略的实施细节。

我通常创建为保持状态和QImage的图像路径的结构体。

struct Image
{
    QImage imageData;
    QString filename;
};
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top