PCL
|
Conversion of pixel values between ICC profile color spaces. More...
#include <ICCProfileTransformation.h>
Public Types | |
using | profile_list = Array< ICCProfile::handle > |
using | rendering_intent = ICCRenderingIntent::value_type |
using | transformation_handle = void * |
Protected Member Functions | |
void | Apply (pcl::DImage &) const override |
void | Apply (pcl::Image &) const override |
void | Apply (pcl::UInt16Image &) const override |
void | Apply (pcl::UInt32Image &) const override |
void | Apply (pcl::UInt8Image &) const override |
Protected Member Functions inherited from pcl::ImageTransformation | |
virtual void | Apply (pcl::ComplexImage &image) const |
virtual void | Apply (pcl::DComplexImage &image) const |
ICCProfileTransformation is a portable color transformation based on ICC color profiles. This class is a high-level interface to the color management functionality implemented in the PixInsight core application.
ICCProfileTransformation implements simple profile-to-profile color transformations, multiprofile transformations, and device proofing transformations with out-of-gamut checks.
Definition at line 94 of file ICCProfileTransformation.h.
Represents a list of handles to open ICC profiles.
Definition at line 111 of file ICCProfileTransformation.h.
using pcl::ICCProfileTransformation::rendering_intent = ICCRenderingIntent::value_type |
Represents an ICC rendering intent.
Definition at line 101 of file ICCProfileTransformation.h.
using pcl::ICCProfileTransformation::transformation_handle = void* |
Represents an opaque handle to a server-side ICC transformation.
Definition at line 106 of file ICCProfileTransformation.h.
|
default |
Constructs an empty ICCPRofileTransformation object.
|
inline |
Move constructor.
Definition at line 121 of file ICCProfileTransformation.h.
|
delete |
Copy constructor. This constructor is disabled because ICC color profile transformations are unique objects.
|
inlineoverride |
Destroys an ICCPRofileTransformation object.
Definition at line 180 of file ICCProfileTransformation.h.
void pcl::ICCProfileTransformation::Add | ( | const ICCProfile & | profile | ) |
Adds the specified ICC profile to this ICC profile transformation.
void pcl::ICCProfileTransformation::Add | ( | const ICCProfile::handle | profileHandle | ) |
Adds an already open ICC profile profileHandle to this ICC profile transformation.
void pcl::ICCProfileTransformation::Add | ( | const String & | profilePath | ) |
Loads an ICC profile from a file at profilePath and adds it to this ICC profile transformation.
|
overrideprotectedvirtual |
Applies this transformation to a 64-bit floating point image.
Reimplemented from pcl::ImageTransformation.
|
overrideprotectedvirtual |
Applies this transformation to a 32-bit floating point image.
Reimplemented from pcl::ImageTransformation.
|
overrideprotectedvirtual |
Applies this transformation to a 16-bit unsigned integer image.
Reimplemented from pcl::ImageTransformation.
|
overrideprotectedvirtual |
Applies this transformation to a 32-bit unsigned integer image.
Reimplemented from pcl::ImageTransformation.
|
overrideprotectedvirtual |
Applies this transformation to an 8-bit unsigned integer image.
Reimplemented from pcl::ImageTransformation.
void pcl::ICCProfileTransformation::Clear | ( | ) |
Resets this ICCProfileTransformation object to a default state.
The list of ICC profiles is cleared and the underlying transformation and all associated data structures are destroyed.
|
inline |
Forces the immediate creation (or re-creation) of the underlying low-level transformation.
You normally shouldn't need to call this member function, since ICCProfileTransformation automatically creates the necessary low-level transformations at the points they are required.
Definition at line 406 of file ICCProfileTransformation.h.
|
inline |
Disables or enables black point compensation for this ICC profile transformation.
This is a convenience member function, equivalent to EnableBlackPointCompensation( !disable )
Definition at line 274 of file ICCProfileTransformation.h.
|
inline |
Disables or enables usage of high-resolution CLUT tables for this ICC profile transformation.
This is a convenience member function, equivalent to EnableHighResolutionCLUT( !disable )
Definition at line 348 of file ICCProfileTransformation.h.
|
inline |
Disables or enables usage of low-resolution color lookup tables (CLUTs) in this ICC color transformation.
This is a convenience member function, equivalent to EnableLowResolutionCLUT( !disable )
Definition at line 385 of file ICCProfileTransformation.h.
|
inline |
Enables or disables black point compensation for this ICC profile transformation.
When not enabled explicitly with this function, no black point compensation is applied by default.
Definition at line 261 of file ICCProfileTransformation.h.
|
inline |
Enables or disables usage of high-resolution CLUT tables for this ICC profile transformation.
Definition at line 334 of file ICCProfileTransformation.h.
|
inline |
Enables or disables usage of low-resolution color lookup tables (CLUTs) in this ICC color transformation.
Definition at line 371 of file ICCProfileTransformation.h.
|
inline |
Enables or disables enforcement of floating point computations for this ICC profile transformation.
Definition at line 298 of file ICCProfileTransformation.h.
|
inline |
Returns true iff this ICC profile transformation forces the use of floating point operations for computation of transformed pixel samples of all numerical data types.
When this option is disabled (which is its default state), 16-bit integer arithmetics will be used for 8-bit and 16-bit integer images. Floating point will always be used for the rest of images, irrespective of the state of this option, in order to preserve numerical accuracy.
Definition at line 289 of file ICCProfileTransformation.h.
|
inline |
Returns true iff this object represents a device proofing transformation.
Definition at line 393 of file ICCProfileTransformation.h.
|
inline |
Returns true iff the starting ICC profile in this transformation is a RGB profile.
Definition at line 436 of file ICCProfileTransformation.h.
|
inline |
Returns true iff the target (last) ICC profile in this transformation is a RGB profile.
Definition at line 445 of file ICCProfileTransformation.h.
|
inline |
Returns true iff this object represents a valid color space transformation based on ICC color profiles.
For this member function to return true, the underlying low-level transformation should have been created, either implicitly by using this object to apply a color transformation, or explicitly by calling Create().
Definition at line 211 of file ICCProfileTransformation.h.
|
delete |
Copy assignment. This operator is disabled because ICC color profile transformations are unique objects.
|
inline |
Move assignment operator. Returns a reference to this object.
Definition at line 144 of file ICCProfileTransformation.h.
|
inline |
Returns a reference to the immutable list of ICC profiles in this ICC profile transformation.
Definition at line 220 of file ICCProfileTransformation.h.
|
inline |
Disables or enables enforcement of floating point computations for this ICC profile transformation.
This is a convenience member function, equivalent to ForceFloatingPointTransformation( !relax )
Definition at line 311 of file ICCProfileTransformation.h.
|
inline |
Returns the ICC rendering intent for this ICC profile transformation.
Definition at line 228 of file ICCProfileTransformation.h.
|
inline |
Sets the ICC rendering intent for this ICC profile transformation.
When no intent is set explicitly with this function, the default rendering intent is ICCRenderingIntent::Perceptual.
Definition at line 239 of file ICCProfileTransformation.h.
|
inline |
Returns true iff this ICC profile transformation applies a black point compensation algorithm.
Definition at line 249 of file ICCProfileTransformation.h.
|
inline |
Returns true iff this ICC profile transformation uses high-resolution color lookup tables (CLUTs) for precalculation of device link functions.
Disabling high-resolution CLUTs may provide a (usually small) speed improvement.
By default, ICCProfileTransformation uses high-resolution CLUTs.
Definition at line 325 of file ICCProfileTransformation.h.
|
inline |
Returns true iff this ICC profile transformation uses low-resolution color lookup tables (CLUTs) for precalculation of device link functions.
Enabling low-resolution CLUTs may provide a (usually small) speed improvement.
By default, ICCProfileTransformation uses high-resolution CLUTs.
Definition at line 362 of file ICCProfileTransformation.h.