Sean Goodwin
Sean Goodwin

Reputation: 313

Qt - Loading image with wrong extension

I'm currently working on a Qt program that works with images that are supplied by the users. One problem I've run into is that a lot of images are saved with the wrong extension - e.g. an image is saved in JPG format but has a PNG extension.

Qt doesn't seem to deal well with this. When I load an image like this into a QImage, the QImage fails to load. I've been looking through the docs, but I haven't come across anything relating to this.

Other programs I've used are able to correctly identify the image as a JPG despite the PNG extension, so there should be no reason for Qt to be unable to do this, but I'm not having any luck.

Any suggestions?

Upvotes: 2

Views: 554

Answers (1)

Sean Goodwin
Sean Goodwin

Reputation: 313

I solved this by using a QImageReader. An example is shown below using PySide. First I created an instance of QImageReader and set it to read the format from the content.

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

This setting tells the reader to only look at the image's data to determine its format and not the extension.

Then I set the filename to the filename of the image I wanted to load and called read().

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

Read returns a QImage object, so I proceeded with the rest of my code from there.

Upvotes: 3

Related Questions