Путь к файлу QImage - PullRequest
       7

Путь к файлу QImage

2 голосов
/ 05 октября 2010

Я не вижу этого нигде в документации, поэтому, вероятно, его не существует, но на всякий случай:

У меня есть функция, которая принимает в качестве параметра вектор QImages.Каждый QImage был загружен с диска в какой-то момент и не редактировался - он просто читается с.В идеале я хотел бы зациклить все QImages и вывести список путей к ним в файл XML.

К сожалению, я не вижу в документации никакого способа найти исходный путь к файлу, из которого было загружено изображение.Итак, мой вопрос, возможно ли, учитывая только QImage, выяснить, по какому пути к файлу изначально был загружен QImage или нет?

Что-то вроде:

QString QImage:: getOriginalFilepath ();

Я знаю, что это, вероятно, бесполезный вопрос, но, думаю, его всегда стоит попробовать.

(кстати, я использую Qt 4.7.)

Ответы [ 3 ]

4 голосов
/ 05 октября 2010

Также для меня кажется, что QImage не предоставляет интерфейс для получения своего пути.Я также думаю, что это не отсутствующая функция, потому что нет необходимости привязывать QImage к определенному пути.В большинстве случаев использования QImage не имеет соответствующего физического файла.

Таким образом, лучшим способом в вашей ситуации было бы создать подкласс QImage и добавить эту функцию:

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

Я опускаюдетали реализации.

4 голосов
/ 05 октября 2010

Я просмотрел код, и эта информация нигде не сохраняется. QImage :: load (и конструктор) использует QImageReader (fileName, format) .read () и затем копирует результат в себя. QImageReader настроен на удаление представления устройства (открытый объект файла), как только оно завершит чтение.

Итак, в итоге получается, что это невозможно.

0 голосов
/ 19 ноября 2014

Я обычно создаю структуру для хранения QImage и пути к изображению.

struct Image
{
    QImage imageData;
    QString filename;
};
...