File indexing completed on 2024-05-12 16:06:47
0001 /* 0002 SPDX-FileCopyrightText: 2023 g10 Code GmbH 0003 SPDX-FileContributor: Sune Stolborg Vuorela <sune@vuorela.dk> 0004 0005 SPDX-License-Identifier: GPL-2.0-or-later 0006 */ 0007 #include "imagescaling.h" 0008 #include <QPainter> 0009 0010 QImage imagescaling::scaleAndFitCanvas(const QImage &input, QSize expectedSize) 0011 { 0012 if (input.size() == expectedSize) { 0013 return input; 0014 } 0015 auto scaled = input.scaled(expectedSize, Qt::KeepAspectRatio); 0016 if (scaled.size() == expectedSize) { 0017 return scaled; 0018 } 0019 QImage canvas(expectedSize, QImage::Format_ARGB32); 0020 canvas.fill(Qt::transparent); 0021 auto scaledSize = scaled.size(); 0022 QPoint topLeft((expectedSize.width() - scaledSize.width()) / 2, (expectedSize.height() - scaledSize.height()) / 2); 0023 QPainter painter(&canvas); 0024 painter.drawImage(topLeft, scaled); 0025 return canvas; 0026 }