digiKam
Loading...
Searching...
No Matches
imageiface.h
Go to the documentation of this file.
1/* ============================================================
2 *
3 * This file is a part of digiKam project
4 * https://www.digikam.org
5 *
6 * Date : 2004-02-14
7 * Description : image data interface for image tools
8 *
9 * SPDX-FileCopyrightText: 2004-2005 by Renchi Raju <renchi dot raju at gmail dot com>
10 * SPDX-FileCopyrightText: 2004-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
11 *
12 * SPDX-License-Identifier: GPL-2.0-or-later
13 *
14 * ============================================================ */
15
16#pragma once
17
18// Qt includes
19
20#include <QString>
21#include <QPixmap>
22
23// Local includes
24
25#include "dimg.h"
26#include "dcolor.h"
27#include "filteraction.h"
28#include "photoinfocontainer.h"
29#include "digikam_export.h"
30
31class QPaintDevice;
32
33namespace Digikam
34{
35
36class DIGIKAM_EXPORT ImageIface
37{
38
39public:
40
42 {
44 ImageSelection
45 };
46
47public:
48
52 explicit ImageIface(const QSize& size = QSize(0, 0));
54
59 void setPreviewType(PreviewType type = FullImage);
60
65 DImg setPreviewSize(const QSize& size) const;
66
70 QSize previewSize() const;
71 bool previewHasAlpha() const;
72 bool previewSixteenBit() const;
73 PreviewType previewType() const;
74
79 DImg* previewReference();
80
84 DImg preview() const;
85
89 QRect selectionRect() const;
90
94 DImg selection() const;
95
99 void crop(const QRect& region);
100
105 DColor colorInfoFromOriginal(const QPoint& point) const;
106 DColor colorInfoFromPreview(const QPoint& point) const;
107 DColor colorInfoFromTargetPreview(const QPoint& point) const;
108
112 QSize originalSize() const;
113 bool originalHasAlpha() const;
114 bool originalSixteenBit() const;
115
119 IccProfile originalIccProfile() const;
120 PhotoInfoContainer originalPhotoInfo() const;
121 MetaEngineData originalMetadata() const;
122 void setOriginalMetadata(const MetaEngineData& meta);
123
128 DImg* original() const;
129
133 void convertOriginalColorDepth(int depth);
134
139 QPixmap convertToPixmap(const DImg& img) const;
140
146 void paint(QPaintDevice* const device, const QRect& rect, QPainter* const painter = nullptr);
147
151 void setOriginalIccProfile(const IccProfile& profile);
152
156 void setPreviewIccProfile(const IccProfile& profile);
157
165 void setSelection(const QString& caller, const FilterAction& action, const DImg& img);
166
175 void setPreview(const DImg& img);
176
184 void setOriginal(const QString& caller, const FilterAction& action, const DImg& img);
185
186private:
187
188 // Disable
189 ImageIface(const ImageIface&) = delete;
190 ImageIface& operator=(const ImageIface&) = delete;
191
192private:
193
194 class Private;
195 Private* const d = nullptr;
196};
197
198} // namespace Digikam
Definition dcolor.h:33
Definition dimg.h:52
Definition filteraction.h:33
Definition iccprofile.h:33
Definition imageiface.h:37
PreviewType
Definition imageiface.h:42
@ FullImage
Preview will be rendered using full image.
Definition imageiface.h:43
Definition metaengine_data.h:31
Definition photoinfocontainer.h:31
Definition datefolderview.cpp:34