diff options
Diffstat (limited to 'src/plugins/imageformats/tga/qtgafile.cpp')
-rw-r--r-- | src/plugins/imageformats/tga/qtgafile.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/plugins/imageformats/tga/qtgafile.cpp b/src/plugins/imageformats/tga/qtgafile.cpp index 5d086c6..25caa14 100644 --- a/src/plugins/imageformats/tga/qtgafile.cpp +++ b/src/plugins/imageformats/tga/qtgafile.cpp @@ -42,6 +42,7 @@ #include <QtCore/QIODevice> #include <QtCore/QDebug> #include <QtCore/QDateTime> +#include <QtGui/QImageIOHandler> struct TgaReader { @@ -238,8 +239,8 @@ QImage QTgaFile::readImage() //unsigned char xCorner = desc & 0x10; // 0 = left, 1 = right unsigned char yCorner = desc & 0x20; // 0 = lower, 1 = upper - QImage im(imageWidth, imageHeight, QImage::Format_ARGB32); - if (im.isNull()) + QImage im; + if (!QImageIOHandler::allocateImage(QSize(imageWidth, imageHeight), QImage::Format_ARGB32, &im)) return QImage(); TgaReader *reader = 0; if (bitsPerPixel == 16) @@ -248,6 +249,8 @@ QImage QTgaFile::readImage() reader = new Tga24Reader(); else if (bitsPerPixel == 32) reader = new Tga32Reader(); + else + return QImage(); TgaReader &read = *reader; // For now only deal with yCorner, since no one uses xCorner == 1 |