|
Krita Source Code Documentation
|
#include <kis_display_color_converter.h>
Inheritance diagram for KisDisplayColorConverter:Classes | |
| struct | Private |
Public Types | |
| using | ConversionOptions = std::pair<KoColorConversionTransformation::Intent, KoColorConversionTransformation::ConversionFlags> |
Signals | |
| void | displayConfigurationChanged () |
Public Member Functions | |
| KoColor | applyDisplayFiltering (const KoColor &srcColor, const KoID &bitDepthId) const |
| void | applyDisplayFilteringF32 (KisFixedPaintDeviceSP device, const KoColorSpace *dstColorSpace) const |
| KoColor | approximateFromRenderedQColor (const QColor &c) const |
| bool | canSkipDisplayConversion (const KoColorSpace *cs) const |
| ConversionOptions | conversionOptions () const |
| KisDisplayConfig | displayConfig () const |
| QSharedPointer< KisDisplayFilter > | displayFilter () const |
| KoColorDisplayRendererInterface * | displayRendererInterface () const |
| KoColor | fromHsiF (qreal h, qreal s, qreal i) |
| KoColor | fromHslF (qreal h, qreal s, qreal l, qreal a=1.0) |
| KoColor | fromHsv (int h, int s, int v, int a=255) const |
| KoColor | fromHsvF (qreal h, qreal s, qreal v, qreal a=1.0) |
| KoColor | fromHsyF (qreal h, qreal s, qreal y, qreal R=0.2126, qreal G=0.7152, qreal B=0.0722, qreal gamma=2.2) |
| void | getHsiF (const KoColor &srcColor, qreal *h, qreal *s, qreal *i) |
| void | getHslF (const KoColor &srcColor, qreal *h, qreal *s, qreal *l, qreal *a=0) |
| void | getHsv (const KoColor &srcColor, int *h, int *s, int *v, int *a=0) const |
| void | getHsvF (const KoColor &srcColor, qreal *h, qreal *s, qreal *v, qreal *a=0) |
| void | getHsyF (const KoColor &srcColor, qreal *h, qreal *s, qreal *y, qreal R=0.2126, qreal G=0.7152, qreal B=0.0722, qreal gamma=2.2) |
| KisDisplayColorConverter () | |
| KisDisplayColorConverter (KoCanvasResourceProvider *resourceManager, QObject *parent) | |
| KisMultiSurfaceDisplayConfig | multiSurfaceDisplayConfig () const |
| const KoColorSpace * | nodeColorSpace () const |
| const KoColorSpace * | paintingColorSpace () const |
| void | setDisplayFilter (QSharedPointer< KisDisplayFilter > displayFilter) |
| void | setImage (KisImageSP image) |
| void | setImageColorSpace (const KoColorSpace *cs) |
| void | setMultiSurfaceDisplayConfig (const KisMultiSurfaceDisplayConfig &config) |
| QColor | toQColor (const KoColor &c, bool proofToPaintColors=false) const |
| QImage | toQImage (const KoColorSpace *srcColorSpace, const quint8 *data, QSize size, bool proofPaintColors=false) const |
| QImage | toQImage (KisPaintDeviceSP srcDevice, bool proofPaintColors=false) const |
| ~KisDisplayColorConverter () override | |
Static Public Member Functions | |
| static KisDisplayColorConverter * | dumbConverterInstance () |
Private Member Functions | |
| template<class Policy > | |
| Policy::Result | convertToDisplayImpl (const KoColor &srcColor, bool alreadyInDestinationF32=false) const |
| Q_PRIVATE_SLOT (m_d, void selectPaintingColorSpace()) | |
| Q_PRIVATE_SLOT (m_d, void slotCanvasResourceChanged(int key, const QVariant &v)) | |
| Q_PRIVATE_SLOT (m_d, void slotUpdateCurrentNodeColorSpace()) | |
| KoColor | toKoColor (const QColor &c) |
Private Attributes | |
| const QScopedPointer< Private > | m_d |
Special helper class that provides primitives for converting colors when displaying. We have at least 3 color spaces:
1) Image color space (any: RGB, CMYK, Lab, etc) 2) Display color space (a limited RGB color space) 3) Color selectors color space (the one where color selectors generate their HSV-based colors. Right now it is sRGB.
KoColor may be in any of these color spaces. QColor should always be in the display color space only.
Definition at line 37 of file kis_display_color_converter.h.
| using KisDisplayColorConverter::ConversionOptions = std::pair<KoColorConversionTransformation::Intent, KoColorConversionTransformation::ConversionFlags> |
Definition at line 98 of file kis_display_color_converter.h.
| KisDisplayColorConverter::KisDisplayColorConverter | ( | ) |
Definition at line 244 of file kis_display_color_converter.cpp.
References KoColorSpaceRegistry::instance(), m_d, KoColorSpaceRegistry::p709SRGBProfile(), KoColorSpaceRegistry::rgb8(), and setDisplayFilter().
| KisDisplayColorConverter::KisDisplayColorConverter | ( | KoCanvasResourceProvider * | resourceManager, |
| QObject * | parent ) |
Definition at line 230 of file kis_display_color_converter.cpp.
References connect(), KisConfigNotifier::instance(), KoColorSpaceRegistry::instance(), m_d, KoColorSpaceRegistry::p709SRGBProfile(), and setDisplayFilter().
|
override |
Definition at line 255 of file kis_display_color_converter.cpp.
| KoColor KisDisplayColorConverter::applyDisplayFiltering | ( | const KoColor & | srcColor, |
| const KoID & | bitDepthId ) const |
Definition at line 487 of file kis_display_color_converter.cpp.
References KoColor::convertTo(), KoColor::data(), KIS_ASSERT_RECOVER, m_d, and KoColor::setProfile().
| void KisDisplayColorConverter::applyDisplayFilteringF32 | ( | KisFixedPaintDeviceSP | device, |
| const KoColorSpace * | dstColorSpace ) const |
Apply display filtering and convert device into dstColorSpace on exiting the function. The conversion can actually change the bit-depth of the device if necessary
This method is optimized for the case when device is already in 32f version of the painting color space.
Definition at line 607 of file kis_display_color_converter.cpp.
References KisFixedPaintDevice::bounds(), KoColorSpace::colorDepthId(), KoColorSpace::colorModelId(), KisFixedPaintDevice::colorSpace(), KisFixedPaintDevice::convertTo(), KisFixedPaintDevice::data(), Float32BitsColorDepthID, KIS_ASSERT_RECOVER_RETURN, KIS_SAFE_ASSERT_RECOVER_RETURN, m_d, RGBAColorModelID, and KisFixedPaintDevice::setProfile().
| KoColor KisDisplayColorConverter::approximateFromRenderedQColor | ( | const QColor & | c | ) | const |
Definition at line 518 of file kis_display_color_converter.cpp.
References m_d.
| bool KisDisplayColorConverter::canSkipDisplayConversion | ( | const KoColorSpace * | cs | ) | const |
Definition at line 506 of file kis_display_color_converter.cpp.
References KoColorSpace::colorModelId(), m_d, KoColorSpace::profile(), RGBAColorModelID, and KoColorProfile::uniqueId().
| KisDisplayColorConverter::ConversionOptions KisDisplayColorConverter::conversionOptions | ( | ) | const |
Definition at line 454 of file kis_display_color_converter.cpp.
References m_d.
|
private |
| KisDisplayConfig KisDisplayColorConverter::displayConfig | ( | ) | const |
Definition at line 439 of file kis_display_color_converter.cpp.
References m_d.
|
signal |
| QSharedPointer< KisDisplayFilter > KisDisplayColorConverter::displayFilter | ( | ) | const |
Definition at line 444 of file kis_display_color_converter.cpp.
References m_d.
| KoColorDisplayRendererInterface * KisDisplayColorConverter::displayRendererInterface | ( | ) | const |
Definition at line 275 of file kis_display_color_converter.cpp.
References m_d.
|
static |
Definition at line 270 of file kis_display_color_converter.cpp.
| KoColor KisDisplayColorConverter::fromHsiF | ( | qreal | h, |
| qreal | s, | ||
| qreal | i ) |
Definition at line 740 of file kis_display_color_converter.cpp.
References HSIToRGB(), and m_d.
| KoColor KisDisplayColorConverter::fromHslF | ( | qreal | h, |
| qreal | s, | ||
| qreal | l, | ||
| qreal | a = 1.0 ) |
Definition at line 704 of file kis_display_color_converter.cpp.
| KoColor KisDisplayColorConverter::fromHsv | ( | int | h, |
| int | s, | ||
| int | v, | ||
| int | a = 255 ) const |
Definition at line 659 of file kis_display_color_converter.cpp.
| KoColor KisDisplayColorConverter::fromHsvF | ( | qreal | h, |
| qreal | s, | ||
| qreal | v, | ||
| qreal | a = 1.0 ) |
| KoColor KisDisplayColorConverter::fromHsyF | ( | qreal | h, |
| qreal | s, | ||
| qreal | y, | ||
| qreal | R = 0.2126, | ||
| qreal | G = 0.7152, | ||
| qreal | B = 0.0722, | ||
| qreal | gamma = 2.2 ) |
Definition at line 763 of file kis_display_color_converter.cpp.
References B, KoColorProfile::delinearizeFloatValueFast(), G, HSYToRGB(), KoColorSpaceRegistry::instance(), m_d, KoColorSpace::profile(), R, and KoColorSpaceRegistry::rgb8().
| void KisDisplayColorConverter::getHsiF | ( | const KoColor & | srcColor, |
| qreal * | h, | ||
| qreal * | s, | ||
| qreal * | i ) |
Definition at line 753 of file kis_display_color_converter.cpp.
References m_d, and RGBToHSI().
| void KisDisplayColorConverter::getHslF | ( | const KoColor & | srcColor, |
| qreal * | h, | ||
| qreal * | s, | ||
| qreal * | l, | ||
| qreal * | a = 0 ) |
Definition at line 716 of file kis_display_color_converter.cpp.
References m_d.
| void KisDisplayColorConverter::getHsvF | ( | const KoColor & | srcColor, |
| qreal * | h, | ||
| qreal * | s, | ||
| qreal * | v, | ||
| qreal * | a = 0 ) |
Definition at line 680 of file kis_display_color_converter.cpp.
| void KisDisplayColorConverter::getHsyF | ( | const KoColor & | srcColor, |
| qreal * | h, | ||
| qreal * | s, | ||
| qreal * | y, | ||
| qreal | R = 0.2126, | ||
| qreal | G = 0.7152, | ||
| qreal | B = 0.0722, | ||
| qreal | gamma = 2.2 ) |
Definition at line 775 of file kis_display_color_converter.cpp.
References B, G, KoColorSpaceRegistry::instance(), KoColorProfile::linearizeFloatValueFast(), m_d, KoColorSpace::profile(), R, KoColorSpaceRegistry::rgb8(), and RGBToHSY().
| KisMultiSurfaceDisplayConfig KisDisplayColorConverter::multiSurfaceDisplayConfig | ( | ) | const |
Definition at line 449 of file kis_display_color_converter.cpp.
References m_d.
| const KoColorSpace * KisDisplayColorConverter::nodeColorSpace | ( | ) | const |
Definition at line 397 of file kis_display_color_converter.cpp.
References m_d.
| const KoColorSpace * KisDisplayColorConverter::paintingColorSpace | ( | ) | const |
Definition at line 388 of file kis_display_color_converter.cpp.
References KoColorSpaceRegistry::instance(), KIS_ASSERT_RECOVER, m_d, and KoColorSpaceRegistry::rgb8().
|
private |
| void KisDisplayColorConverter::setDisplayFilter | ( | QSharedPointer< KisDisplayFilter > | displayFilter | ) |
Definition at line 412 of file kis_display_color_converter.cpp.
References KoColor::convertTo(), KoColor::data(), displayFilter(), and m_d.
| void KisDisplayColorConverter::setImage | ( | KisImageSP | image | ) |
| void KisDisplayColorConverter::setImageColorSpace | ( | const KoColorSpace * | cs | ) |
Definition at line 259 of file kis_display_color_converter.cpp.
References KoColorSpace::colorModelId(), KoColorSpaceRegistry::instance(), m_d, KoColorSpaceRegistry::p709SRGBProfile(), KoColorSpace::profile(), and RGBAColorModelID.
| void KisDisplayColorConverter::setMultiSurfaceDisplayConfig | ( | const KisMultiSurfaceDisplayConfig & | config | ) |
|
private |
| QColor KisDisplayColorConverter::toQColor | ( | const KoColor & | c, |
| bool | proofToPaintColors = false ) const |
Definition at line 459 of file kis_display_color_converter.cpp.
References KoColor::colorSpace(), KoColor::convertTo(), KoColor::data(), KIS_ASSERT_RECOVER, m_d, p, and KoColor::setProfile().
| QImage KisDisplayColorConverter::toQImage | ( | const KoColorSpace * | srcColorSpace, |
| const quint8 * | data, | ||
| QSize | size, | ||
| bool | proofPaintColors = false ) const |
Definition at line 563 of file kis_display_color_converter.cpp.
References KoColorSpace::convertPixelsTo(), KoColorSpace::convertToQImage(), m_d, paintingColorSpace(), and KoColorSpace::pixelSize().
| QImage KisDisplayColorConverter::toQImage | ( | KisPaintDeviceSP | srcDevice, |
| bool | proofPaintColors = false ) const |
Converts the exactBounds() (!) of the srcDevice into QImage properly rendered into display RGB space. Please note that the offset of the image in QImage is always zero for efficiency reasons.
Definition at line 523 of file kis_display_color_converter.cpp.
References bounds, KisPaintDevice::colorSpace(), KisPaintDevice::convertTo(), KisPaintDevice::convertToQImage(), KisPaintDevice::exactBounds(), KIS_ASSERT_RECOVER, m_d, KisSequentialIteratorBase< IteratorPolicy, SourcePolicy, ProgressPolicy >::nConseqPixels(), KisSequentialIteratorBase< IteratorPolicy, SourcePolicy, ProgressPolicy >::nextPixels(), paintingColorSpace(), KisSequentialIteratorBase< IteratorPolicy, SourcePolicy, ProgressPolicy >::rawData(), and KisPaintDevice::setProfile().
|
private |
Definition at line 118 of file kis_display_color_converter.h.