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, поэтому я продолжил работу с остальным кодом.