digiKam
Loading...
Searching...
No Matches
stretchfilter.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 : 2005-24-01
7 * Description : stretch contrast image filter.
8 *
9 * SPDX-FileCopyrightText: 2005-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
10 *
11 * SPDX-License-Identifier: GPL-2.0-or-later
12 *
13 * ============================================================ */
14
15#pragma once
16
17// Local includes
18
19#include "digikam_export.h"
20#include "dimgthreadedfilter.h"
21#include "digikam_globals.h"
22
23namespace Digikam
24{
25
26class DImg;
27
28class DIGIKAM_EXPORT StretchFilter : public DImgThreadedFilter
29{
30 Q_OBJECT
31
32public:
33
34 explicit StretchFilter(QObject* const parent = nullptr);
35 StretchFilter(DImg* const orgImage, const DImg* const refImage, QObject* const parent = nullptr);
36 ~StretchFilter() override;
37
38 static QString FilterIdentifier()
39 {
40 return QLatin1String("digikam:StretchFilter");
41 }
42
43 static QList<int> SupportedVersions()
44 {
45 return QList<int>() << 1;
46 }
47
48 static int CurrentVersion()
49 {
50 return 1;
51 }
52
53 static QString DisplayableName();
54
55 QString filterIdentifier() const override
56 {
57 return FilterIdentifier();
58 }
59
60 FilterAction filterAction() override;
61
62 void readParameters(const FilterAction& action) override;
63
64private:
65
66 void filterImage() override;
67 void stretchContrastImage();
68
69private:
70
71 struct Q_DECL_HIDDEN double_packet
72 {
73 double_packet() = default;
74
75 double red = 0.0;
76 double green = 0.0;
77 double blue = 0.0;
78 double alpha = 0.0;
79 };
80
81 struct Q_DECL_HIDDEN int_packet
82 {
83 int_packet() = default;
84
85 unsigned int red = 0;
86 unsigned int green = 0;
87 unsigned int blue = 0;
88 unsigned int alpha = 0;
89 };
90
91 DImg m_refImage;
92};
93
94} // namespace Digikam
Definition dimgthreadedfilter.h:31
Definition dimg.h:52
Definition filteraction.h:33
Definition stretchfilter.h:29
static QList< int > SupportedVersions()
Definition stretchfilter.h:43
static QString FilterIdentifier()
Definition stretchfilter.h:38
static int CurrentVersion()
Definition stretchfilter.h:48
QString filterIdentifier() const override
Definition stretchfilter.h:55
Definition datefolderview.cpp:34