digiKam
Loading...
Searching...
No Matches
bwsepiafilter.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-03-06
7 * Description : black and white image filter.
8 *
9 * SPDX-FileCopyrightText: 2005-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
10 * SPDX-FileCopyrightText: 2010 by Martin Klapetek <martin dot klapetek 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 <QPolygon>
21
22// Local includes
23
24#include "digikam_export.h"
25#include "dimgthreadedfilter.h"
26#include "digikam_globals.h"
27#include "bcgfilter.h"
28#include "curvesfilter.h"
29#include "tonalityfilter.h"
30
31namespace Digikam
32{
33
34class DImg;
35
36class DIGIKAM_EXPORT BWSepiaContainer
37{
38
39public:
40
82
83public:
84
85 BWSepiaContainer() = default;
86
87 explicit BWSepiaContainer(int ptype)
88 : preview (true),
89 previewType(ptype)
90 {
91 }
92
93 BWSepiaContainer(int ptype, const CurvesContainer& container)
94 : preview (true),
95 previewType(ptype),
96 curvesPrm (container)
97 {
98 }
99
100 ~BWSepiaContainer() = default;
101
102public:
103
104 bool preview = false;
105
106 int previewType = BWGeneric;
107 int filmType = BWGeneric;
108 int filterType = BWNoFilter;
109 int toneType = BWNoTone;
110
111 double strength = 1.0;
112
114
116};
117
118// -----------------------------------------------------------------------------------------------
119
120class DIGIKAM_EXPORT BWSepiaFilter : public DImgThreadedFilter
121{
122 Q_OBJECT
123
124public:
125
126 explicit BWSepiaFilter(QObject* const parent = nullptr);
127 explicit BWSepiaFilter(DImg* orgImage,
128 QObject* const parent = nullptr,
129 const BWSepiaContainer& settings = BWSepiaContainer());
130 ~BWSepiaFilter() override;
131
132 static QString FilterIdentifier()
133 {
134 return QLatin1String("digikam:BWSepiaFilter");
135 }
136
137 static QString DisplayableName();
138
139 static QList<int> SupportedVersions()
140 {
141 return QList<int>() << 1 << 2;
142 }
143
144 static int CurrentVersion()
145 {
146 return 2;
147 }
148
149 QString filterIdentifier() const override
150 {
151 return FilterIdentifier();
152 }
153
154 FilterAction filterAction() override;
155 void readParameters(const FilterAction& action) override;
156
157private:
158
159 void filterImage() override;
160
161 DImg getThumbnailForEffect(const DImg& img);
162
163 void blackAndWhiteConversion(DImg& img, int type);
164 void applyChannelMixer(DImg& img);
165 void applyInfraredFilter(DImg& img, int sensibility);
166 void applyToneFilter(DImg& img, TonalityContainer& settings);
167
168private:
169
170 class Private;
171 Private* const d = nullptr;
172};
173
174} // namespace Digikam
Definition bcgcontainer.h:34
Definition bwsepiafilter.h:37
BlackWhiteConversionType
Definition bwsepiafilter.h:42
@ BWBrownTone
Definition bwsepiafilter.h:73
@ BWIlfordSFX400
Definition bwsepiafilter.h:68
@ BWNoTone
Chemical color tone filter.
Definition bwsepiafilter.h:71
@ BWPlatinumTone
Definition bwsepiafilter.h:76
@ BWBlueFilter
Definition bwsepiafilter.h:49
@ BWAgfa200X
Definition bwsepiafilter.h:52
@ BWColdTone
Definition bwsepiafilter.h:74
@ BWIlfordFP4
Definition bwsepiafilter.h:59
@ BWIlfordXP2Super
Definition bwsepiafilter.h:62
@ BWIlfordPanF
Definition bwsepiafilter.h:61
@ BWIlfordDelta400
Definition bwsepiafilter.h:57
@ BWAgfapan400
Definition bwsepiafilter.h:55
@ BWSeleniumTone
Definition bwsepiafilter.h:75
@ BWKodakTriX
Definition bwsepiafilter.h:65
@ BWYellowGreenFilter
Definition bwsepiafilter.h:48
@ BWGeneric
B&W film simulation.
Definition bwsepiafilter.h:51
@ BWYellowFilter
Definition bwsepiafilter.h:47
@ BWGreenTone
Definition bwsepiafilter.h:77
@ BWOrangeFilter
Definition bwsepiafilter.h:45
@ BWGreenFilter
Definition bwsepiafilter.h:44
@ BWIlfordDelta100
Definition bwsepiafilter.h:56
@ BWIlfordSFX200
Infrared film simulation.
Definition bwsepiafilter.h:67
@ BWKodakTmax400
Definition bwsepiafilter.h:64
@ BWRedFilter
Definition bwsepiafilter.h:46
@ BWIlfordSFX800
Definition bwsepiafilter.h:69
@ BWIlfordHP5
Definition bwsepiafilter.h:60
@ BWIlfordDelta400Pro3200
Definition bwsepiafilter.h:58
@ BWAgfapan25
Definition bwsepiafilter.h:53
@ BWSepiaTone
Definition bwsepiafilter.h:72
@ BWAgfapan100
Definition bwsepiafilter.h:54
@ BWKodakTmax100
Definition bwsepiafilter.h:63
BWSepiaContainer(int ptype, const CurvesContainer &container)
Definition bwsepiafilter.h:93
CurvesContainer curvesPrm
Definition bwsepiafilter.h:113
BCGContainer bcgPrm
Definition bwsepiafilter.h:115
BWSepiaContainer(int ptype)
Definition bwsepiafilter.h:87
Definition bwsepiafilter.h:121
static int CurrentVersion()
Definition bwsepiafilter.h:144
static QList< int > SupportedVersions()
Definition bwsepiafilter.h:139
QString filterIdentifier() const override
Definition bwsepiafilter.h:149
static QString FilterIdentifier()
Definition bwsepiafilter.h:132
Definition curvescontainer.h:35
Definition dimgthreadedfilter.h:31
Definition dimg.h:52
Definition filteraction.h:33
Definition tonalityfilter.h:30
Definition datefolderview.cpp:34