digiKam
Loading...
Searching...
No Matches
bcgfilter.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 : a Brightness/Contrast/Gamma image filter.
8 *
9 * SPDX-FileCopyrightText: 2005 by Renchi Raju <renchi dot raju at gmail dot com>
10 * SPDX-FileCopyrightText: 2005-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
11 * SPDX-FileCopyrightText: 2010 by Martin Klapetek <martin dot klapetek at gmail dot com>
12 *
13 * SPDX-License-Identifier: GPL-2.0-or-later
14 *
15 * ============================================================ */
16
17#pragma once
18
19// Local includes
20
21#include "bcgcontainer.h"
22#include "digikam_export.h"
23#include "dimgthreadedfilter.h"
24#include "digikam_globals.h"
25
26namespace Digikam
27{
28
29class DImg;
30
31class DIGIKAM_EXPORT BCGFilter : public DImgThreadedFilter
32{
33 Q_OBJECT
34
35public:
36
37 explicit BCGFilter(QObject* const parent = nullptr);
38 explicit BCGFilter(DImg* const orgImage,
39 QObject* const parent = nullptr,
40 const BCGContainer& settings = BCGContainer());
41 explicit BCGFilter(const BCGContainer& settings,
42 DImgThreadedFilter* const master,
43 const DImg& orgImage,
44 const DImg& destImage,
45 int progressBegin = 0,
46 int progressEnd = 100);
47 ~BCGFilter() override;
48
49 static QString FilterIdentifier()
50 {
51 return QLatin1String("digikam:BCGFilter");
52 }
53
54 static QString DisplayableName();
55
56 static QList<int> SupportedVersions()
57 {
58 return QList<int>() << 1;
59 }
60
61 static int CurrentVersion()
62 {
63 return 1;
64 }
65
66 QString filterIdentifier() const override
67 {
68 return FilterIdentifier();
69 }
70
71 FilterAction filterAction() override;
72
73 void readParameters(const FilterAction& action) override;
74
75private:
76
77 void filterImage() override;
78
79 void reset();
80 void setGamma(double val);
81 void setBrightness(double val);
82 void setContrast(double val);
83 void applyBCG(const DImg& image);
84 void applyBCG(uchar* const bits, uint width, uint height, bool sixteenBits);
85
86private:
87
88 class Private;
89 Private* const d = nullptr;
90};
91
92} // namespace Digikam
Definition bcgcontainer.h:34
Definition bcgfilter.h:32
static int CurrentVersion()
Definition bcgfilter.h:61
static QString FilterIdentifier()
Definition bcgfilter.h:49
static QList< int > SupportedVersions()
Definition bcgfilter.h:56
QString filterIdentifier() const override
Definition bcgfilter.h:66
Definition dimgthreadedfilter.h:31
Definition dimg.h:52
Definition filteraction.h:33
Definition datefolderview.cpp:34