File indexing completed on 2024-06-23 05:18:30
0001 /* 0002 SPDX-FileCopyrightText: 2012-2024 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #pragma once 0008 0009 #include "messagecomposer_export.h" 0010 #include <QByteArray> 0011 #include <memory> 0012 0013 namespace MessageComposer 0014 { 0015 class ImageScalingPrivate; 0016 /** 0017 * @brief The ImageScaling class 0018 * @author Laurent Montel <montel@kde.org> 0019 */ 0020 class MESSAGECOMPOSER_EXPORT ImageScaling 0021 { 0022 public: 0023 ImageScaling(); 0024 ~ImageScaling(); 0025 0026 /** 0027 * @brief loadImageFromData 0028 * @param data 0029 * @return true if we can load image. 0030 */ 0031 [[nodiscard]] bool loadImageFromData(const QByteArray &data); 0032 0033 /** 0034 * @brief resizeImage 0035 * @return true if we are able to resize image 0036 */ 0037 [[nodiscard]] bool resizeImage(); 0038 0039 /** 0040 * @brief imageArray 0041 * @return data from image after saving 0042 */ 0043 [[nodiscard]] QByteArray imageArray() const; 0044 0045 /** 0046 * @brief mimetype 0047 * @return new image mimetype after saving. 0048 */ 0049 [[nodiscard]] QByteArray mimetype() const; 0050 void setMimetype(const QByteArray &mimetype); 0051 0052 void setName(const QString &name); 0053 0054 [[nodiscard]] QString generateNewName(); 0055 0056 private: 0057 std::unique_ptr<ImageScalingPrivate> const d; 0058 }; 0059 }