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: