digiKam
Loading...
Searching...
No Matches
lensfunfilter.h
Go to the documentation of this file.
1/* ============================================================
2 *
3 * Date : 2008-02-10
4 * Description : a tool to fix automatically camera lens aberrations
5 *
6 * SPDX-FileCopyrightText: 2008 by Adrian Schroeter <adrian at suse dot de>
7 * SPDX-FileCopyrightText: 2008-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
8 *
9 * SPDX-License-Identifier: GPL-2.0-or-later
10 *
11 * ============================================================ */
12
13#pragma once
14
15// Local includes
16
17#include "digikam_config.h"
18#include "dimgthreadedfilter.h"
19#include "digikam_export.h"
20
21namespace Digikam
22{
23
24class DIGIKAM_EXPORT LensFunContainer
25{
26
27public:
28
29 LensFunContainer() = default;
30 ~LensFunContainer() = default;
31
32public:
33
34 bool filterCCA = true;
35 bool filterVIG = true;
36 bool filterDST = true;
37 bool filterGEO = true;
38
39 double cropFactor = -1.0;
40 double focalLength = -1.0;
41 double aperture = -1.0;
42 double subjectDistance = -1.0;
43
44 QString cameraMake;
45 QString cameraModel;
46 QString lensModel;
47};
48
49// -----------------------------------------------------------------
50
51class DIGIKAM_EXPORT LensFunFilter : public DImgThreadedFilter
52{
53 Q_OBJECT
54
55public:
56
57 explicit LensFunFilter(QObject* const parent = nullptr);
58 explicit LensFunFilter(DImg* const origImage,
59 QObject* const parent,
60 const LensFunContainer& settings);
61 ~LensFunFilter() override;
62
63 bool registerSettingsToXmp(MetaEngineData& data) const;
64 void readParameters(const FilterAction& action) override;
65
66 static QString FilterIdentifier()
67 {
68 return QLatin1String("digikam:LensFunFilter");
69 }
70
71 static QString DisplayableName();
72
73 static QList<int> SupportedVersions()
74 {
75 return QList<int>() << 1 << 2;
76 }
77
78 static int CurrentVersion()
79 {
80 return 2;
81 }
82
83 QString filterIdentifier() const override
84 {
85 return FilterIdentifier();
86 }
87
88 FilterAction filterAction() override;
89
90private:
91
92 void filterImage() override;
93 void filterCCAMultithreaded(uint start, uint stop);
94 void filterVIGMultithreaded(uint start, uint stop);
95 void filterDSTMultithreaded(uint start, uint stop);
96
97private:
98
99 class Private;
100 Private* const d = nullptr;
101};
102
103} // namespace Digikam
Definition dimgthreadedfilter.h:31
Definition dimg.h:52
Definition filteraction.h:33
Definition lensfunfilter.h:25
QString lensModel
Definition lensfunfilter.h:46
QString cameraMake
Definition lensfunfilter.h:44
QString cameraModel
Definition lensfunfilter.h:45
Definition lensfunfilter.h:52
QString filterIdentifier() const override
Definition lensfunfilter.h:83
static QString FilterIdentifier()
Definition lensfunfilter.h:66
static int CurrentVersion()
Definition lensfunfilter.h:78
static QList< int > SupportedVersions()
Definition lensfunfilter.h:73
Definition metaengine_data.h:31
Definition datefolderview.cpp:34