From 95ef5632301acf4901df5d1bc2fd202924aabd5f Mon Sep 17 00:00:00 2001 From: Anton Thomasson Date: Wed, 6 Jul 2022 20:31:09 +0200 Subject: [PATCH] Use QImageReader so images are loaded in correct orientation --- src/printerworker.cpp | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/src/printerworker.cpp b/src/printerworker.cpp index 4b313be..05a26ef 100644 --- a/src/printerworker.cpp +++ b/src/printerworker.cpp @@ -120,13 +120,17 @@ try { } else if(targetFormat == Mimer::RBMP) { - QImage inImage; + QImageReader reader(filename); + reader.setAutoTransform(true); + QImage inImage = reader.read(); QBuffer buf; - if(!inImage.load(filename)) + + if(inImage.isNull()) { qDebug() << "failed to load"; throw ConvertFailedException(tr("Failed to load image")); } + // TODO: calculate paper width minus margins // (depends on understanding/parsing custom paper sizes) int width = 576; @@ -147,13 +151,17 @@ try { } else { - QImage inImage; + QImageReader reader(filename); + reader.setAutoTransform(true); + QImage inImage = reader.read(); QBuffer buf; - if(!inImage.load(filename)) + + if(inImage.isNull()) { qDebug() << "failed to load"; throw ConvertFailedException(tr("Failed to load image")); } + buf.open(QIODevice::ReadWrite); inImage.save(&buf, imageFormat.toStdString().c_str()); buf.seek(0); @@ -314,7 +322,11 @@ try { } else { - if(!inImage.load(filename)) + QImageReader reader(filename); + reader.setAutoTransform(true); + inImage = reader.read(); + + if(inImage.isNull()) { qDebug() << "failed to load"; throw ConvertFailedException(tr("Failed to load image"));