9#ifndef KIS_FILTER_STRATEGY_H_
10#define KIS_FILTER_STRATEGY_H_
12#include <klocalizedstring.h>
16#include "kritaimage_export.h"
31 virtual qreal
valueAt(qreal t, qreal weightsPositionScale)
const {
33 Q_UNUSED(weightsPositionScale);
36 virtual qint32
intValueAt(qint32 t, qreal weightsPositionScale)
const {
37 return qint32(255*valueAt(t / 256.0, weightsPositionScale));
39 virtual qreal
support(qreal weightsPositionScale) {
40 Q_UNUSED(weightsPositionScale);
44 Q_UNUSED(weightsPositionScale);
52 qreal supportVal {0.0};
53 qint32 intSupportVal {0};
61 supportVal = 1.0; intSupportVal = 256;
65 qint32 intValueAt(qint32 t, qreal weightsPositionScale)
const override;
66 qreal valueAt(qreal t, qreal weightsPositionScale)
const override;
73 supportVal = 2.0; intSupportVal = 512;
78 return i18n(
"Adds pixels using the color of surrounding pixels. Produces smoother tonal gradations than Bilinear.");
81 qint32 intValueAt(qint32 t, qreal weightsPositionScale)
const override;
89 supportVal = 0.51; intSupportVal = 129;
94 return i18n(
"Replicate pixels in the image. Preserves all the original detail, but can produce jagged effects.");
97 virtual qreal support(qreal weightsPositionScale)
override;
98 virtual qint32 intSupport(qreal weightsPositionScale)
override;
101 qint32 intValueAt(qint32 t, qreal weightsPositionScale)
const override;
102 qreal valueAt(qreal t, qreal weightsPositionScale)
const override;
109 supportVal = 1.0; intSupportVal = 256;
114 return i18n(
"Adds pixels averaging the color values of surrounding pixels. Produces medium quality results when the image is scaled from half to two times the original size.");
117 qint32 intValueAt(qint32 t, qreal weightsPositionScale)
const override;
118 qreal valueAt(qreal t, qreal weightsPositionScale)
const override;
125 supportVal = 1.5; intSupportVal = 128 + 256;
129 qreal valueAt(qreal t, qreal weightsPositionScale)
const override;
136 supportVal = 2.0; intSupportVal = 512;
140 qreal valueAt(qreal t, qreal weightsPositionScale)
const override;
147 supportVal = 3.0; intSupportVal = 768;
152 return i18n(
"Offers similar results than Bicubic, but maybe a little bit sharper. Can produce light and dark halos along strong edges.");
155 qreal valueAt(qreal t, qreal weightsPositionScale)
const override;
157 qreal sinc(qreal x)
const;
164 supportVal = 2.0; intSupportVal = 256;
168 qreal valueAt(qreal t, qreal weightsPositionScale)
const override;
190 QString formattedDescriptions()
const;
195 KisFilterStrategy* autoFilterStrategy(QSize originalSize, QSize desiredSize)
const;
PythonPluginManager * instance
KisBSplineFilterStrategy()
~KisBSplineFilterStrategy() override
~KisBellFilterStrategy() override
QString description() override
KisBicubicFilterStrategy()
~KisBicubicFilterStrategy() override
QString description() override
KisBilinearFilterStrategy()
~KisBilinearFilterStrategy() override
QString description() override
~KisBoxFilterStrategy() override
KisFilterStrategyRegistry(const KisFilterStrategyRegistry &)
KisFilterStrategyRegistry operator=(const KisFilterStrategyRegistry &)
KisFilterStrategy(KoID id)
virtual qint32 intSupport(qreal weightsPositionScale)
virtual qreal support(qreal weightsPositionScale)
virtual qint32 intValueAt(qint32 t, qreal weightsPositionScale) const
virtual ~KisFilterStrategy()
virtual qreal valueAt(qreal t, qreal weightsPositionScale) const
virtual QString description()
KisHermiteFilterStrategy()
~KisHermiteFilterStrategy() override
~KisLanczos3FilterStrategy() override
KisLanczos3FilterStrategy()
QString description() override
KisMitchellFilterStrategy()
~KisMitchellFilterStrategy() override