summaryrefslogtreecommitdiffstats
path: root/src/plugins/imageformats
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/imageformats')
-rw-r--r--src/plugins/imageformats/dds/qddshandler.cpp2
-rw-r--r--src/plugins/imageformats/dds/qddshandler.h2
-rw-r--r--src/plugins/imageformats/icns/qicnshandler.cpp2
-rw-r--r--src/plugins/imageformats/icns/qicnshandler_p.h2
-rw-r--r--src/plugins/imageformats/jp2/qjp2handler.cpp2
-rw-r--r--src/plugins/imageformats/jp2/qjp2handler_p.h2
-rw-r--r--src/plugins/imageformats/tga/qtgahandler.cpp2
-rw-r--r--src/plugins/imageformats/tga/qtgahandler.h2
-rw-r--r--src/plugins/imageformats/tiff/qtiffhandler.cpp12
-rw-r--r--src/plugins/imageformats/tiff/qtiffhandler_p.h2
-rw-r--r--src/plugins/imageformats/webp/qwebphandler.cpp6
-rw-r--r--src/plugins/imageformats/webp/qwebphandler_p.h2
12 files changed, 36 insertions, 2 deletions
diff --git a/src/plugins/imageformats/dds/qddshandler.cpp b/src/plugins/imageformats/dds/qddshandler.cpp
index 3a44b51..845f9b3 100644
--- a/src/plugins/imageformats/dds/qddshandler.cpp
+++ b/src/plugins/imageformats/dds/qddshandler.cpp
@@ -1382,10 +1382,12 @@ QDDSHandler::QDDSHandler() :
{
}
+#if QT_DEPRECATED_SINCE(5, 13)
QByteArray QDDSHandler::name() const
{
return QByteArrayLiteral("dds");
}
+#endif
bool QDDSHandler::canRead() const
{
diff --git a/src/plugins/imageformats/dds/qddshandler.h b/src/plugins/imageformats/dds/qddshandler.h
index 665bd16..f4bc888 100644
--- a/src/plugins/imageformats/dds/qddshandler.h
+++ b/src/plugins/imageformats/dds/qddshandler.h
@@ -53,7 +53,9 @@ class QDDSHandler : public QImageIOHandler
public:
QDDSHandler();
+#if QT_DEPRECATED_SINCE(5, 13)
QByteArray name() const override;
+#endif
bool canRead() const override;
bool read(QImage *image) override;
diff --git a/src/plugins/imageformats/icns/qicnshandler.cpp b/src/plugins/imageformats/icns/qicnshandler.cpp
index a854506..9733ed7 100644
--- a/src/plugins/imageformats/icns/qicnshandler.cpp
+++ b/src/plugins/imageformats/icns/qicnshandler.cpp
@@ -651,10 +651,12 @@ QICNSHandler::QICNSHandler() :
{
}
+#if QT_DEPRECATED_SINCE(5, 13)
QByteArray QICNSHandler::name() const
{
return QByteArrayLiteral("icns");
}
+#endif
bool QICNSHandler::canRead(QIODevice *device)
{
diff --git a/src/plugins/imageformats/icns/qicnshandler_p.h b/src/plugins/imageformats/icns/qicnshandler_p.h
index 84c7bf1..b532045 100644
--- a/src/plugins/imageformats/icns/qicnshandler_p.h
+++ b/src/plugins/imageformats/icns/qicnshandler_p.h
@@ -132,7 +132,9 @@ public:
bool read(QImage *image) override;
bool write(const QImage &image) override;
+#if QT_DEPRECATED_SINCE(5, 13)
QByteArray name() const override;
+#endif
bool supportsOption(ImageOption option) const override;
QVariant option(ImageOption option) const override;
diff --git a/src/plugins/imageformats/jp2/qjp2handler.cpp b/src/plugins/imageformats/jp2/qjp2handler.cpp
index 17373fd..ce23480 100644
--- a/src/plugins/imageformats/jp2/qjp2handler.cpp
+++ b/src/plugins/imageformats/jp2/qjp2handler.cpp
@@ -308,6 +308,7 @@ bool QJp2Handler::supportsOption(ImageOption option) const
return (option == Quality || option == SubType);
}
+#if QT_DEPRECATED_SINCE(5, 13)
/*!
Return the common identifier of the format.
For JPEG 2000 this will return "jp2".
@@ -316,6 +317,7 @@ QByteArray QJp2Handler::name() const
{
return QByteArrayLiteral("jp2");
}
+#endif
/*!
Automatic resource handling for a jas_image_t*.
diff --git a/src/plugins/imageformats/jp2/qjp2handler_p.h b/src/plugins/imageformats/jp2/qjp2handler_p.h
index e81ec9e..16ddc8a 100644
--- a/src/plugins/imageformats/jp2/qjp2handler_p.h
+++ b/src/plugins/imageformats/jp2/qjp2handler_p.h
@@ -64,7 +64,9 @@ public:
QVariant option(ImageOption option) const override;
void setOption(ImageOption option, const QVariant &value) override;
bool supportsOption(ImageOption option) const override;
+#if QT_DEPRECATED_SINCE(5, 13)
QByteArray name() const override;
+#endif
private:
Q_DECLARE_PRIVATE(QJp2Handler)
diff --git a/src/plugins/imageformats/tga/qtgahandler.cpp b/src/plugins/imageformats/tga/qtgahandler.cpp
index 8f5eb12..9277e50 100644
--- a/src/plugins/imageformats/tga/qtgahandler.cpp
+++ b/src/plugins/imageformats/tga/qtgahandler.cpp
@@ -98,10 +98,12 @@ bool QTgaHandler::read(QImage *image)
return !image->isNull();
}
+#if QT_DEPRECATED_SINCE(5, 13)
QByteArray QTgaHandler::name() const
{
return "tga";
}
+#endif
QVariant QTgaHandler::option(ImageOption option) const
{
diff --git a/src/plugins/imageformats/tga/qtgahandler.h b/src/plugins/imageformats/tga/qtgahandler.h
index 5ef7e02..6550a11 100644
--- a/src/plugins/imageformats/tga/qtgahandler.h
+++ b/src/plugins/imageformats/tga/qtgahandler.h
@@ -55,7 +55,9 @@ public:
bool canRead() const override;
bool read(QImage *image) override;
+#if QT_DEPRECATED_SINCE(5, 13)
QByteArray name() const override;
+#endif
static bool canRead(QIODevice *device);
diff --git a/src/plugins/imageformats/tiff/qtiffhandler.cpp b/src/plugins/imageformats/tiff/qtiffhandler.cpp
index e6c7175..3d404bd 100644
--- a/src/plugins/imageformats/tiff/qtiffhandler.cpp
+++ b/src/plugins/imageformats/tiff/qtiffhandler.cpp
@@ -272,6 +272,8 @@ bool QTiffHandlerPrivate::readHeaders(QIODevice *device)
format = QImage::Format_Mono;
else if (photometric == PHOTOMETRIC_MINISBLACK && bitPerSample == 8 && samplesPerPixel == 1)
format = QImage::Format_Grayscale8;
+ else if (photometric == PHOTOMETRIC_MINISBLACK && bitPerSample == 16 && samplesPerPixel == 1)
+ format = QImage::Format_Grayscale16;
else if ((grayscale || photometric == PHOTOMETRIC_PALETTE) && bitPerSample == 8 && samplesPerPixel == 1)
format = QImage::Format_Indexed8;
else if (samplesPerPixel < 4)
@@ -402,9 +404,11 @@ bool QTiffHandler::read(QImage *image)
}
}
bool format8bit = (format == QImage::Format_Mono || format == QImage::Format_Indexed8 || format == QImage::Format_Grayscale8);
+ bool format16bit = (format == QImage::Format_Grayscale16);
bool format64bit = (format == QImage::Format_RGBX64 || format == QImage::Format_RGBA64 || format == QImage::Format_RGBA64_Premultiplied);
- if (format8bit || format64bit) {
+ // Formats we read directly, instead of over RGBA32:
+ if (format8bit || format16bit || format64bit) {
int bytesPerPixel = image->depth() / 8;
if (format == QImage::Format_RGBX64)
bytesPerPixel = 6;
@@ -513,6 +517,7 @@ static QVector<QRgb> effectiveColorTable(const QImage &image)
colors[i] = qRgba(0, 0, 0, i);
break;
case QImage::Format_Grayscale8:
+ case QImage::Format_Grayscale16:
colors.resize(256);
for (int i = 0; i < 256; ++i)
colors[i] = qRgb(i, i, i);
@@ -622,6 +627,7 @@ bool QTiffHandler::write(const QImage &image)
TIFFClose(tiff);
} else if (format == QImage::Format_Indexed8
|| format == QImage::Format_Grayscale8
+ || format == QImage::Format_Grayscale16
|| format == QImage::Format_Alpha8) {
QVector<QRgb> colorTable = effectiveColorTable(image);
bool isGrayscale = checkGrayscale(colorTable);
@@ -631,7 +637,7 @@ bool QTiffHandler::write(const QImage &image)
photometric = PHOTOMETRIC_MINISWHITE;
if (!TIFFSetField(tiff, TIFFTAG_PHOTOMETRIC, photometric)
|| !TIFFSetField(tiff, TIFFTAG_COMPRESSION, compression == NoCompression ? COMPRESSION_NONE : COMPRESSION_LZW)
- || !TIFFSetField(tiff, TIFFTAG_BITSPERSAMPLE, 8)
+ || !TIFFSetField(tiff, TIFFTAG_BITSPERSAMPLE, image.depth())
|| !TIFFSetField(tiff, TIFFTAG_ROWSPERSTRIP, defaultStripSize(tiff))) {
TIFFClose(tiff);
return false;
@@ -799,10 +805,12 @@ bool QTiffHandler::write(const QImage &image)
return true;
}
+#if QT_DEPRECATED_SINCE(5, 13)
QByteArray QTiffHandler::name() const
{
return "tiff";
}
+#endif
QVariant QTiffHandler::option(ImageOption option) const
{
diff --git a/src/plugins/imageformats/tiff/qtiffhandler_p.h b/src/plugins/imageformats/tiff/qtiffhandler_p.h
index 2090e38..c2eb412 100644
--- a/src/plugins/imageformats/tiff/qtiffhandler_p.h
+++ b/src/plugins/imageformats/tiff/qtiffhandler_p.h
@@ -55,7 +55,9 @@ public:
bool read(QImage *image) override;
bool write(const QImage &image) override;
+#if QT_DEPRECATED_SINCE(5, 13)
QByteArray name() const override;
+#endif
static bool canRead(QIODevice *device);
diff --git a/src/plugins/imageformats/webp/qwebphandler.cpp b/src/plugins/imageformats/webp/qwebphandler.cpp
index 578a701..454d654 100644
--- a/src/plugins/imageformats/webp/qwebphandler.cpp
+++ b/src/plugins/imageformats/webp/qwebphandler.cpp
@@ -218,6 +218,10 @@ bool QWebpHandler::write(const QImage &image)
qWarning() << "source image is null.";
return false;
}
+ if (std::max(image.width(), image.height()) > WEBP_MAX_DIMENSION) {
+ qWarning() << "QWebpHandler::write() source image too large for WebP: " << image.size();
+ return false;
+ }
QImage srcImage = image;
bool alpha = srcImage.hasAlphaChannel();
@@ -310,10 +314,12 @@ bool QWebpHandler::supportsOption(ImageOption option) const
|| option == BackgroundColor;
}
+#if QT_DEPRECATED_SINCE(5, 13)
QByteArray QWebpHandler::name() const
{
return QByteArrayLiteral("webp");
}
+#endif
int QWebpHandler::imageCount() const
{
diff --git a/src/plugins/imageformats/webp/qwebphandler_p.h b/src/plugins/imageformats/webp/qwebphandler_p.h
index 950b501..31574b4 100644
--- a/src/plugins/imageformats/webp/qwebphandler_p.h
+++ b/src/plugins/imageformats/webp/qwebphandler_p.h
@@ -56,7 +56,9 @@ public:
~QWebpHandler();
public:
+#if QT_DEPRECATED_SINCE(5, 13)
QByteArray name() const override;
+#endif
bool canRead() const override;
bool read(QImage *image) override;