digiKam
Loading...
Searching...
No Matches
borderfilter.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-05-25
7 * Description : border threaded image filter.
8 *
9 * SPDX-FileCopyrightText: 2005-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
10 * SPDX-FileCopyrightText: 2006-2010 by Marcel Wiesweg <marcel dot wiesweg at gmx dot de>
11 * SPDX-FileCopyrightText: 2009-2010 by Andi Clemens <andi dot clemens at gmail dot com>
12 * SPDX-FileCopyrightText: 2010 by Martin Klapetek <martin dot klapetek at gmail dot com>
13 *
14 * SPDX-License-Identifier: GPL-2.0-or-later
15 *
16 * ============================================================ */
17
18#pragma once
19
20// Qt includes
21
22#include <QImage>
23
24// Local includes
25
26#include "dimgthreadedfilter.h"
27#include "digikam_globals.h"
28#include "bordercontainer.h"
29
30namespace Digikam
31{
32
33class DIGIKAM_EXPORT BorderFilter : public DImgThreadedFilter
34{
35 Q_OBJECT
36
37public:
38
42 explicit BorderFilter(QObject* const parent = nullptr);
43 explicit BorderFilter(DImg* orgImage, QObject* const parent = nullptr,
44 const BorderContainer& settings = BorderContainer());
45 ~BorderFilter() override;
46
47 static QString FilterIdentifier()
48 {
49 return QLatin1String("digikam:BorderFilter");
50 }
51
52 static QString DisplayableName();
53
54 static QList<int> SupportedVersions()
55 {
56 return QList<int>() << 1;
57 }
58
59 static int CurrentVersion()
60 {
61 return 1;
62 }
63
64 QString filterIdentifier() const override
65 {
66 return FilterIdentifier();
67 }
68
69 FilterAction filterAction() override;
70 void readParameters(const FilterAction& action) override;
71
72private:
73
74 void filterImage() override;
75
79 void solid(const DImg& src, DImg& dest, const DColor& fg, int borderWidth);
80 void niepce(const DImg& src, DImg& dest, const DColor& fg, int borderWidth,
81 const DColor& bg, int lineWidth);
82 void bevel(const DImg& src, DImg& dest, const DColor& topColor,
83 const DColor& btmColor, int borderWidth);
84 void pattern(const DImg& src, DImg& dest, int borderWidth, const DColor& firstColor,
85 const DColor& secondColor, int firstWidth, int secondWidth);
86
90 void solid2(const DImg& src, DImg& dest, const DColor& fg, int borderWidth);
91 void niepce2(const DImg& src, DImg& dest, const DColor& fg, int borderWidth,
92 const DColor& bg, int lineWidth);
93 void bevel2(const DImg& src, DImg& dest, const DColor& topColor,
94 const DColor& btmColor, int borderWidth);
95 void pattern2(const DImg& src, DImg& dest, int borderWidth, const DColor& firstColor,
96 const DColor& secondColor, int firstWidth, int secondWidth);
97
98private:
99
100 class Private;
101 Private* const d = nullptr;
102};
103
104} // namespace Digikam
Definition bordercontainer.h:33
Definition borderfilter.h:34
static QString FilterIdentifier()
Definition borderfilter.h:47
static QList< int > SupportedVersions()
Definition borderfilter.h:54
QString filterIdentifier() const override
Definition borderfilter.h:64
static int CurrentVersion()
Definition borderfilter.h:59
Definition dcolor.h:33
Definition dimgthreadedfilter.h:31
Definition dimg.h:52
Definition filteraction.h:33
Definition datefolderview.cpp:34