|
Krita Source Code Documentation
|
Functions | |
| KoColorTransformation * | createPerChannelTransformationFromTransfers (const KoColorSpace *cs, const QVector< QVector< quint16 > > &transfers, const QList< bool > &transferIsIdentity) |
| Create a composed per channel transformation object from the set of given transfers. | |
| int | findChannel (const QVector< VirtualChannelInfo > &virtualChannels, const VirtualChannelInfo::Type &channelType) |
| QVector< VirtualChannelInfo > | getVirtualChannels (const KoColorSpace *cs, int maxChannels, bool supportsLightness, bool supportsHue, bool supportsSaturation) |
| KoColorTransformation * KisMultiChannelUtils::createPerChannelTransformationFromTransfers | ( | const KoColorSpace * | cs, |
| const QVector< QVector< quint16 > > & | transfers, | ||
| const QList< bool > & | transferIsIdentity ) |
Create a composed per channel transformation object from the set of given transfers.
| cs | a colorspace |
| transfers | A collection of transfer luts |
| transferIsIdentity | A collection of bools that indicate if the corresponding transfer has no effect (maps the input to itself) |
TODO: What about the order of channels? (DK)
Virtual channels are sorted in display order, does Lcms accepts transforms in display order? Why on Earth it works?! Is it documented anywhere?
Sometimes the realTransfers are too low, this often happens with faulty config, which in turn leads to trouble when creating a transform.
createPerChannelAdjustment() expects alpha channel to be the last channel in the list, so just it here
createPerChannelAdjustment() expects alpha channel to be the last channel in the list, so just it here
Definition at line 105 of file kis_multichannel_utils.cpp.
References VirtualChannelInfo::ALL_COLORS, KoColorSpace::channelCount(), KoColorSpace::createBrightnessContrastAdjustment(), KoColorSpace::createColorTransformation(), KoCompositeColorTransformation::createOptimizedCompositeTransform(), KoColorSpace::createPerChannelAdjustment(), getVirtualChannels(), KisHSVCurve::Hue, VirtualChannelInfo::HUE, KIS_ASSERT_RECOVER_NOOP, VirtualChannelInfo::LIGHTNESS, KoColorSpace::lumaCoefficients, VirtualChannelInfo::REAL, KisHSVCurve::Saturation, and VirtualChannelInfo::SATURATION.
| int KisMultiChannelUtils::findChannel | ( | const QVector< VirtualChannelInfo > & | virtualChannels, |
| const VirtualChannelInfo::Type & | channelType ) |
Definition at line 94 of file kis_multichannel_utils.cpp.
| QVector< VirtualChannelInfo > KisMultiChannelUtils::getVirtualChannels | ( | const KoColorSpace * | cs, |
| int | maxChannels = -1, | ||
| bool | supportsLightness = true, | ||
| bool | supportsHue = true, | ||
| bool | supportSaturation = true ) |
Get a list of adjustable channels for the color space. If maxChannels is non-negative, the number of channels is capped to the number. This is useful configurations from older documents (created in versions which supported fewer channels).
This is the extremely old version of the filter (< Krita 3.0). It has the following curves layout: R, G, B, A.
This is the old version of the filter (Krita [3.0, 5.0]). It has the following channel layout: RGBA, R, G, B, A, Lightness.
Starting Krita 5.1.0 Krita started to use the latest layout: RGBA, R, G, B, A, Hue, Saturation, Lightness
Definition at line 23 of file kis_multichannel_utils.cpp.
References VirtualChannelInfo::ALL_COLORS, AlphaColorModelID, KoColorSpace::channels, KoColorSpace::colorModelId(), KoChannelInfo::displayOrderSorted(), KoChannelInfo::displayPosition(), KoChannelInfo::displayPositionToChannelIndex(), GrayAColorModelID, GrayColorModelID, VirtualChannelInfo::HUE, LABAColorModelID, VirtualChannelInfo::LIGHTNESS, VirtualChannelInfo::REAL, and VirtualChannelInfo::SATURATION.