Krita Source Code Documentation
Loading...
Searching...
No Matches
KoBasicU8HistogramProducer Class Reference

#include <KoBasicHistogramProducers.h>

+ Inheritance diagram for KoBasicU8HistogramProducer:

Public Member Functions

void addRegionToBin (const quint8 *pixels, const quint8 *selectionMask, quint32 nPixels, const KoColorSpace *colorSpace) override
 
 KoBasicU8HistogramProducer (const KoID &id, const KoColorSpace *colorSpace)
 
qreal maximalZoom () const override
 
QString positionToString (qreal pos) const override
 
 ~KoBasicU8HistogramProducer () override
 
- Public Member Functions inherited from KoBasicHistogramProducer
QList< KoChannelInfo * > channels () override
 
void clear () override
 
qint32 count () override
 
qint32 getBinAt (int channel, int position) override
 
const KoIDid () const override
 
 KoBasicHistogramProducer (const KoID &id, int channelCount, int nrOfBins)
 
 KoBasicHistogramProducer (const KoID &id, int nrOfBins, const KoColorSpace *colorSpace)
 
qint32 numberOfBins () override
 
qint32 outOfViewLeft (int channel) override
 
qint32 outOfViewRight (int channel) override
 
void setView (qreal from, qreal size) override
 
qreal viewFrom () const override
 
qreal viewWidth () const override
 
 ~KoBasicHistogramProducer () override
 
- Public Member Functions inherited from KoHistogramProducer
virtual qint32 getBinAt (qint32 channel, qint32 position)=0
 
 KoHistogramProducer ()
 
virtual qint32 outOfViewLeft (qint32 channel)=0
 
virtual qint32 outOfViewRight (qint32 channel)=0
 
virtual void setSkipTransparent (bool set)
 
virtual void setSkipUnselected (bool set)
 
virtual ~KoHistogramProducer ()
 

Additional Inherited Members

- Protected Types inherited from KoBasicHistogramProducer
typedef QVector< quint32 > vBins
 
- Protected Member Functions inherited from KoBasicHistogramProducer
virtual int externalToInternal (int ext)
 
void makeExternalToInternal ()
 
- Protected Attributes inherited from KoBasicHistogramProducer
QVector< vBinsm_bins
 
int m_channels
 
const KoColorSpacem_colorSpace
 
qint32 m_count
 
QVector< qint32 > m_external
 
qreal m_from
 
KoID m_id
 
int m_nrOfBins
 
vBins m_outLeft
 
vBins m_outRight
 
qreal m_width
 
- Protected Attributes inherited from KoHistogramProducer
bool m_skipTransparent
 
bool m_skipUnselected
 

Detailed Description

Definition at line 92 of file KoBasicHistogramProducers.h.

Constructor & Destructor Documentation

◆ KoBasicU8HistogramProducer()

KoBasicU8HistogramProducer::KoBasicU8HistogramProducer ( const KoID & id,
const KoColorSpace * colorSpace )

Definition at line 93 of file KoBasicHistogramProducers.cpp.

94 : KoBasicHistogramProducer(id, 256, cs)
95{
96}
KoBasicHistogramProducer(const KoID &id, int channelCount, int nrOfBins)

◆ ~KoBasicU8HistogramProducer()

KoBasicU8HistogramProducer::~KoBasicU8HistogramProducer ( )
inlineoverride

Definition at line 96 of file KoBasicHistogramProducers.h.

96{}

Member Function Documentation

◆ addRegionToBin()

void KoBasicU8HistogramProducer::addRegionToBin ( const quint8 * pixels,
const quint8 * selectionMask,
quint32 nPixels,
const KoColorSpace * colorSpace )
overridevirtual

Adds the values from the specified array of pixels to the bins – does not reset anything.

Parameters
pixelsA pointer an array of pixeldata in the given colorspace
selectionMaska pointer to an array of bytes, where 0 is unselected and 1-255 is degree of selectedness. The array must be just as long as the array of pixels.
nPixelsThe number of pixels
colorSpacethe colorspace that can decode the pixel data.

Implements KoHistogramProducer.

Definition at line 103 of file KoBasicHistogramProducers.cpp.

104{
105 quint32 dstPixelSize = m_colorSpace->pixelSize();
106 quint8 *dstPixels = new quint8[nPixels * dstPixelSize];
108
109 if (selectionMask) {
110 quint8 *dst = dstPixels;
111 while (nPixels > 0) {
112 if (!(m_skipTransparent && cs->opacityU8(pixels) == OPACITY_TRANSPARENT_U8)) {
113
114 for (int i = 0; i < (int)m_colorSpace->channelCount(); i++) {
115 m_bins[i][m_colorSpace->scaleToU8(dst,i)]++;
116 }
117 m_count++;
118 }
119 dst += dstPixelSize;
120 selectionMask++;
121 nPixels--;
122 }
123 } else {
124 quint8 *dst = dstPixels;
125 while (nPixels > 0) {
126 if (!(m_skipTransparent && cs->opacityU8(pixels) == OPACITY_TRANSPARENT_U8)) {
127
128 for (int i = 0; i < (int)m_colorSpace->channelCount(); i++) {
129 m_bins[i][m_colorSpace->scaleToU8(dst,i)]++;
130 }
131 m_count++;
132 }
133 dst += dstPixelSize;
134 nPixels--;
135 }
136 }
137}
const quint8 OPACITY_TRANSPARENT_U8
virtual quint32 pixelSize() const =0
virtual quint8 scaleToU8(const quint8 *srcPixel, qint32 channelPos) const =0
virtual quint32 channelCount() const =0

References KoColorSpace::channelCount(), KoColorSpace::convertPixelsTo(), KoColorConversionTransformation::Empty, KoColorConversionTransformation::IntentAbsoluteColorimetric, KoBasicHistogramProducer::m_bins, KoBasicHistogramProducer::m_colorSpace, KoBasicHistogramProducer::m_count, KoHistogramProducer::m_skipTransparent, OPACITY_TRANSPARENT_U8, KoColorSpace::opacityU8(), KoColorSpace::pixelSize(), and KoColorSpace::scaleToU8().

◆ maximalZoom()

qreal KoBasicU8HistogramProducer::maximalZoom ( ) const
inlineoverridevirtual

Implements KoHistogramProducer.

Definition at line 99 of file KoBasicHistogramProducers.h.

99 {
100 return 1.0;
101 }

◆ positionToString()

QString KoBasicU8HistogramProducer::positionToString ( qreal pos) const
overridevirtual

Implements KoHistogramProducer.

Definition at line 98 of file KoBasicHistogramProducers.cpp.

99{
100 return QString("%1").arg(static_cast<quint8>(pos * UINT8_MAX));
101}
#define UINT8_MAX

References UINT8_MAX.


The documentation for this class was generated from the following files: