我在任何地方的文档中都看不到这一点,所以它可能不存在,但只是以防万一:
我有一个函数,它接受QImages的向量作为参数。每个QImage都是在某个时刻从磁盘加载的,并且没有经过编辑--它只是从读取。理想情况下,我想做的是循环遍历所有的QImages,并将它们的文件路径列表输出到一个XML文件。
不幸的是,我在文档中看不到任何方法来获取加载图像的原始文件路径。所以我的问题是,在给定一个QImage的情况下,有没有可能找出QImage最初加载的文件路径?
大致是这样的:
QString QImage::getOriginalFilepath();
我知道这可能是一个徒劳的问题,但我想这总是值得一试的。
(顺便说一下,我使用的是Qt4.7。)
发布于 2010-10-05 23:55:55
我看了一遍代码,这些信息似乎没有保存在任何地方。load(和构造函数)使用QImageReader(fileName,format).read(),然后将结果复制到自身。QImageReader被设置为在完成读取后立即删除设备表示(打开的文件对象)。
因此,总而言之,这似乎是不可能的。
发布于 2010-10-06 00:00:56
对我来说,QImage似乎并没有提供一个接口来获取它的路径。我还认为这不是一个缺失的特性,因为不需要将QImage绑定到特定路径。在大多数用例中,QImage没有对应的物理文件。
因此,在您的情况下最好的方法是将QImage子类化并添加此功能:
class MyImage : public QImage {
QString path_;
public:
MyImage(const QString& path);
QString path(); // getter
};我省略了实现细节。
发布于 2014-11-19 07:22:30
我通常创建一个结构来保存QImage和图像路径。
struct Image
{
QImage imageData;
QString filename;
};https://stackoverflow.com/questions/3865223
复制相似问题