Qt - загрузка изображения с неверным расширением

В настоящее время я работаю над программой Qt, которая работает с изображениями, предоставленными пользователями. Одна проблема, с которой я столкнулся, заключается в том, что многие изображения сохраняются с неправильным расширением - например, изображение сохраняется в формате JPG, но имеет расширение PNG.

Qt, похоже, не очень хорошо с этим справляется. Когда я загружаю подобное изображение в QImage, QImage не загружается. Я просматривал документы, но ничего подобного не встречал.

Другие программы, которые я использовал, способны правильно идентифицировать изображение как JPG, несмотря на расширение PNG, поэтому у Qt не должно быть никаких причин для того, чтобы сделать это, но мне не повезло.

Какие-либо предложения?

1 ответ

Решение

Я решил это с помощью QImageReader. Пример показан ниже с использованием PySide. Сначала я создал экземпляр QImageReader и установил его для чтения формата из содержимого.

image_reader = QtGui.QImageReader()
image_reader.setDecideFromContent(True)

Этот параметр говорит читателю только смотреть на данные изображения, чтобы определить его формат, а не расширение.

Затем я установил имя файла с именем изображения, которое я хотел загрузить, и вызвал read ().

image_reader.setFileName(file_path_here)
image = image_reader.read()

Read возвращает объект QImage, поэтому я продолжил работу с остальным кодом.

Другие вопросы по тегам