У меня есть изображение с расширением .jpg
, но оно хранится в формате png
. Когда я использую QImage
для загрузки этого изображения, он возвращает недопустимый QImage
:
QImage image (path);
if (image.isNull())
{
//it enters here
}
Я должен проверить формат один за другим перед загрузкой изображения:
auto readImage = [](const QString & path)
{
std::string formats[] = {
"PNG",
"JPG",
"GIF",
"JPEG",
};
for (auto && format : formats)
{
QImageReader img(path, format.c_str());
if (img.canRead())
{
return QImage(path, format.c_str());
}
}
return QImage(path);
};
QImage image = readImage(path);
if (image.isNull())
{
//it does not enter here this time
}
Есть ли лучший способ загрузить изображение в неизвестном формате?
Обновите, используя метод load
из QImage
, все равно получите тот же результат:
QImage image;
image.load(path);
if (image.isNull())
{
//it enters herer
}
if (image.isNull())
конечно. - person pat   schedule 11.07.2018