20qreal estimateImageAverage(
const QImage &image) {
21 qint64 lightnessSum = 0;
26 for (
int y = 0; y < image.height(); ++y) {
27 const QRgb *pixel =
reinterpret_cast<const QRgb*
>(image.scanLine(y));
29 for (
int i = 0; i < image.width(); ++i) {
30 lightnessSum += qRound(qGray(*pixel) * qAlpha(*pixel) / 255.0);
31 alphaSum += qAlpha(*pixel);
39 return 255.0 * qreal(lightnessSum) / alphaSum;
73 estimateImageAverage(
image) :
103 loB = midY - midX * loA;
104 hiB = midY - midX * hiA;
107 for (
int y = 0; y <
image.height(); y++) {
109 for (
int x = 0; x <
image.width(); x++) {
115 v = qMin(unit, qRound(hiA *
v + hiB));
117 v = qMax(0, qRound(loA *
v + loB));
120 pixel[x] = qRgba(
v,
v,
v, qAlpha(c));
124 for (
int y = 0; y <
image.height(); y++) {
126 for (
int x = 0; x <
image.width(); x++) {
130 pixel[x] = qRgba(
v,
v,
v, qAlpha(c));
182#include <QDomElement>
193 e.setAttribute(
"AdjustmentVersion", QString::number(2));
float value(const T *src, size_t ch)
virtual enumBrushApplication brushApplication() const
virtual enumBrushType brushType() const
virtual QImage brushTipImage() const
brushImage the image the brush tip can paint with. Not all brush types have a single image.
virtual void toXML(QDomDocument &, QDomElement &) const
bool autoAdjustMidPoint() const
KisColorfulBrush()=default
qreal m_contrastAdjustment
virtual void setAdjustmentMidPoint(quint8 value)
virtual bool isImageType() const
quint8 m_adjustmentMidPoint
qreal m_brightnessAdjustment
QImage brushTipImage() const override
brushImage the image the brush tip can paint with. Not all brush types have a single image.
bool hasColorAndTransparency() const
qreal contrastAdjustment() const
virtual void setContrastAdjustment(qreal value)
bool m_hasColorAndTransparency
qreal brightnessAdjustment() const
quint8 adjustmentMidPoint() const
bool m_autoAdjustMidPoint
qreal adjustedMidPoint() const
virtual void setBrightnessAdjustment(qreal value)
virtual void setAutoAdjustMidPoint(bool autoAdjustMidPoint)
void setHasColorAndTransparency(bool value)
void toXML(QDomDocument &d, QDomElement &e) const override
qreal estimatedSourceMidPoint() const
static _T blend(_T a, _T b, _T alpha)
static bool qFuzzyCompare(half p1, half p2)
static bool qFuzzyIsNull(half h)
#define KIS_SAFE_ASSERT_RECOVER_RETURN_VALUE(cond, val)