File indexing completed on 2024-04-28 15:40:25

0001 // SPDX-FileCopyrightText: 2003-2010 Jesper K. Pedersen <blackie@kde.org>
0002 // SPDX-FileCopyrightText: 2021 Johannes Zarl-Zierl <johannes@zarl-zierl.at>
0003 // SPDX-FileCopyrightText: 2022 Johannes Zarl-Zierl <johannes@zarl-zierl.at>
0004 //
0005 // SPDX-License-Identifier: GPL-2.0-or-later
0006 
0007 #include "ImageUtil.h"
0008 
0009 #include <kpabase/Logging.h>
0010 #include <kpabase/SettingsData.h>
0011 
0012 #include <QDir>
0013 #include <QFileInfo>
0014 
0015 namespace
0016 {
0017 constexpr QFileDevice::Permissions FILE_PERMISSIONS { QFile::ReadOwner | QFile::WriteOwner | QFile::ReadGroup | QFile::WriteGroup | QFile::ReadOther };
0018 }
0019 
0020 QImage Utilities::scaleImage(const QImage &image, const QSize &size, Qt::AspectRatioMode mode)
0021 {
0022     return image.scaled(size, mode, Settings::SettingsData::instance()->smoothScale() ? Qt::SmoothTransformation : Qt::FastTransformation);
0023 }
0024 
0025 void Utilities::saveImage(const DB::FileName &fileName, const QImage &image, const char *format)
0026 {
0027     const QFileInfo info(fileName.absolute());
0028     QDir().mkpath(info.path());
0029     QFile imageFile { fileName.absolute() };
0030     if (!imageFile.open(QIODevice::ReadWrite)) {
0031         qCWarning(UtilitiesLog) << "Could not open file for writing:" << imageFile.fileName();
0032         return;
0033     }
0034     if (!imageFile.setPermissions(FILE_PERMISSIONS)) {
0035         qCInfo(UtilitiesLog) << "Could not set permissions on file:" << imageFile.fileName();
0036         // don't abort if permissions could not be set
0037     }
0038     const bool ok = image.save(&imageFile, format);
0039     if (!ok) {
0040         qCWarning(UtilitiesLog) << "Could not save image:" << fileName.absolute();
0041     }
0042 }
0043 // vi:expandtab:tabstop=4 shiftwidth=4: