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

#include <KoBasicHistogramProducers.h>

+ Inheritance diagram for KoGenericRGBHistogramProducer:

Public Member Functions

void addRegionToBin (const quint8 *pixels, const quint8 *selectionMask, quint32 nPixels, const KoColorSpace *colorSpace) override
 
QList< KoChannelInfo * > channels () override
 
 KoGenericRGBHistogramProducer ()
 
qreal maximalZoom () const override
 
QString positionToString (qreal pos) const override
 
 ~KoGenericRGBHistogramProducer () override
 
- Public Member Functions inherited from KoBasicHistogramProducer
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 ()
 

Protected Attributes

QList< KoChannelInfo * > m_channelsList
 
- 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
 

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 ()
 

Detailed Description

This is a Producer (with associated factory) that converts the pixels of the colorspace to RGB8 with toQColor, and then does its counting on RGB. This is NOT registered with the Registry, because it isCompatibleWith all colorspaces, and should only be used in extreme cases (like no other producer being available

Definition at line 179 of file KoBasicHistogramProducers.h.

Constructor & Destructor Documentation

◆ KoGenericRGBHistogramProducer()

KoGenericRGBHistogramProducer::KoGenericRGBHistogramProducer ( )

Definition at line 359 of file KoBasicHistogramProducers.cpp.

360 : KoBasicHistogramProducer(KoID("GENRGBHISTO", i18n("Generic RGB Histogram")), 3, 256)
361{
362 /* we set 0 as colorspace, because we are not based on a specific colorspace. This
363 is no problem for the superclass since we override channels() */
364 m_channelsList.append(new KoChannelInfo(i18n("R"), 0, 0, KoChannelInfo::COLOR, KoChannelInfo::UINT8, 1, QColor(255, 0, 0)));
365 m_channelsList.append(new KoChannelInfo(i18n("G"), 1, 1, KoChannelInfo::COLOR, KoChannelInfo::UINT8, 1, QColor(0, 255, 0)));
366 m_channelsList.append(new KoChannelInfo(i18n("B"), 2, 2, KoChannelInfo::COLOR, KoChannelInfo::UINT8, 1, QColor(0, 0, 255)));
367}
KoBasicHistogramProducer(const KoID &id, int channelCount, int nrOfBins)
@ COLOR
The channel represents a color.
@ UINT8
use this for an unsigned integer 8bits channel
Definition KoID.h:30

References KoChannelInfo::COLOR, m_channelsList, and KoChannelInfo::UINT8.

◆ ~KoGenericRGBHistogramProducer()

KoGenericRGBHistogramProducer::~KoGenericRGBHistogramProducer ( )
inlineoverride

Definition at line 183 of file KoBasicHistogramProducers.h.

183{}

Member Function Documentation

◆ addRegionToBin()

void KoGenericRGBHistogramProducer::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 385 of file KoBasicHistogramProducers.cpp.

386{
387 for (int i = 0; i < m_channels; i++) {
388 m_outRight[i] = 0;
389 m_outLeft[i] = 0;
390 }
391
392 QColor c;
393 qint32 pSize = cs->pixelSize();
394 if (selectionMask) {
395 while (nPixels > 0) {
396 if (!((m_skipUnselected && *selectionMask == 0) || (m_skipTransparent && cs->opacityU8(pixels) == OPACITY_TRANSPARENT_U8))) {
397 cs->toQColor(pixels, &c);
398 m_bins[0][c.red()]++;
399 m_bins[1][c.green()]++;
400 m_bins[2][c.blue()]++;
401
402 m_count++;
403 }
404 pixels += pSize;
405 selectionMask++;
406 nPixels--;
407 }
408
409 } else {
410 while (nPixels > 0) {
411
412 if (!(m_skipTransparent && cs->opacityU8(pixels) == OPACITY_TRANSPARENT_U8)) {
413 cs->toQColor(pixels, &c);
414 m_bins[0][c.red()]++;
415 m_bins[1][c.green()]++;
416 m_bins[2][c.blue()]++;
417
418 m_count++;
419 }
420 pixels += pSize;
421 nPixels--;
422 }
423 }
424}
const quint8 OPACITY_TRANSPARENT_U8

References KoBasicHistogramProducer::m_bins, KoBasicHistogramProducer::m_channels, KoBasicHistogramProducer::m_count, KoBasicHistogramProducer::m_outLeft, KoBasicHistogramProducer::m_outRight, KoHistogramProducer::m_skipTransparent, KoHistogramProducer::m_skipUnselected, OPACITY_TRANSPARENT_U8, KoColorSpace::opacityU8(), KoColorSpace::pixelSize(), and KoColorSpace::toQColor().

◆ channels()

QList< KoChannelInfo * > KoGenericRGBHistogramProducer::channels ( )
overridevirtual

Reimplemented from KoBasicHistogramProducer.

Definition at line 369 of file KoBasicHistogramProducers.cpp.

370{
371 return m_channelsList;
372}

References m_channelsList.

◆ maximalZoom()

qreal KoGenericRGBHistogramProducer::maximalZoom ( ) const
overridevirtual

Implements KoHistogramProducer.

Definition at line 379 of file KoBasicHistogramProducers.cpp.

380{
381 return 1.0;
382}

◆ positionToString()

QString KoGenericRGBHistogramProducer::positionToString ( qreal pos) const
overridevirtual

Implements KoHistogramProducer.

Definition at line 374 of file KoBasicHistogramProducers.cpp.

375{
376 return QString("%1").arg(static_cast<quint8>(pos * UINT8_MAX));
377}
#define UINT8_MAX

References UINT8_MAX.

Member Data Documentation

◆ m_channelsList

QList<KoChannelInfo *> KoGenericRGBHistogramProducer::m_channelsList
protected

Definition at line 189 of file KoBasicHistogramProducers.h.


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