PCL
pcl::ICCProfileTransformation Class Reference

Conversion of pixel values between ICC profile color spaces. More...

#include <ICCProfileTransformation.h>

+ Inheritance diagram for pcl::ICCProfileTransformation:

Public Types

using profile_list = Array< ICCProfile::handle >
 
using rendering_intent = ICCRenderingIntent::value_type
 
using transformation_handle = void *
 

Public Member Functions

 ICCProfileTransformation ()=default
 
 ICCProfileTransformation (const ICCProfileTransformation &)=delete
 
 ICCProfileTransformation (ICCProfileTransformation &&x)
 
 ~ICCProfileTransformation () override
 
void Add (const ICCProfile &profile)
 
void Add (const ICCProfile::handle profileHandle)
 
void Add (const String &profilePath)
 
void Clear ()
 
void Create ()
 
void DisableBlackPointCompensation (bool disable=true)
 
void DisableHighResolutionCLUT (bool disable=true)
 
void DisableLowResolutionCLUT (bool disable=true)
 
void EnableBlackPointCompensation (bool enable=true)
 
void EnableHighResolutionCLUT (bool enable=true)
 
void EnableLowResolutionCLUT (bool enable=true)
 
void ForceFloatingPointTransformation (bool force=true)
 
bool ForcesFloatingPointTransformation () const
 
bool IsProofingTransformation () const
 
bool IsSourceRGBProfile () const
 
bool IsTargetRGBProfile () const
 
bool IsValid () const
 
ICCProfileTransformationoperator= (const ICCProfileTransformation &)=delete
 
ICCProfileTransformationoperator= (ICCProfileTransformation &&x)
 
const profile_listProfiles () const
 
void RelaxFloatingPointTransformation (bool relax=true)
 
rendering_intent RenderingIntent () const
 
void SetRenderingIntent (rendering_intent i)
 
bool UsingBlackPointCompensation () const
 
bool UsingHighResolutionCLUT () const
 
bool UsingLowResolutionCLUT () const
 
- Public Member Functions inherited from pcl::ImageTransformation
 ImageTransformation ()=default
 
 ImageTransformation (const ImageTransformation &)=default
 
virtual ~ImageTransformation ()
 
template<class P >
GenericImage< P > & operator>> (GenericImage< P > &image) const
 
ImageVariantoperator>> (ImageVariant &image) const
 
- Public Member Functions inherited from pcl::ParallelProcess
 ParallelProcess ()=default
 
 ParallelProcess (const ParallelProcess &)=default
 
virtual ~ParallelProcess ()
 
void DisableParallelProcessing (bool disable=true) noexcept
 
void EnableParallelProcessing (bool enable=true, int maxProcessors=0) noexcept
 
bool IsParallelProcessingEnabled () const noexcept
 
int MaxProcessors () const noexcept
 
ParallelProcessoperator= (const ParallelProcess &)=default
 
void SetMaxProcessors (int maxProcessors) noexcept
 
void Swap (ParallelProcess &process) noexcept
 

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
 

Detailed Description

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.

See also
ICCProfile, ImageTransformation

Definition at line 94 of file ICCProfileTransformation.h.

Member Typedef Documentation

◆ profile_list

Represents a list of handles to open ICC profiles.

Definition at line 111 of file ICCProfileTransformation.h.

◆ rendering_intent

using pcl::ICCProfileTransformation::rendering_intent = ICCRenderingIntent::value_type

Represents an ICC rendering intent.

Definition at line 101 of file ICCProfileTransformation.h.

◆ transformation_handle

Represents an opaque handle to a server-side ICC transformation.

Definition at line 106 of file ICCProfileTransformation.h.

Constructor & Destructor Documentation

◆ ICCProfileTransformation() [1/3]

pcl::ICCProfileTransformation::ICCProfileTransformation ( )
default

Constructs an empty ICCPRofileTransformation object.

◆ ICCProfileTransformation() [2/3]

pcl::ICCProfileTransformation::ICCProfileTransformation ( ICCProfileTransformation &&  x)
inline

Move constructor.

Definition at line 121 of file ICCProfileTransformation.h.

◆ ICCProfileTransformation() [3/3]

pcl::ICCProfileTransformation::ICCProfileTransformation ( const ICCProfileTransformation )
delete

Copy constructor. This constructor is disabled because ICC color profile transformations are unique objects.

◆ ~ICCProfileTransformation()

pcl::ICCProfileTransformation::~ICCProfileTransformation ( )
inlineoverride

Destroys an ICCPRofileTransformation object.

Definition at line 180 of file ICCProfileTransformation.h.

Member Function Documentation

◆ Add() [1/3]

void pcl::ICCProfileTransformation::Add ( const ICCProfile profile)

Adds the specified ICC profile to this ICC profile transformation.

◆ Add() [2/3]

void pcl::ICCProfileTransformation::Add ( const ICCProfile::handle  profileHandle)

Adds an already open ICC profile profileHandle to this ICC profile transformation.

◆ Add() [3/3]

void pcl::ICCProfileTransformation::Add ( const String profilePath)

Loads an ICC profile from a file at profilePath and adds it to this ICC profile transformation.

◆ Apply() [1/5]

void pcl::ICCProfileTransformation::Apply ( pcl::DImage image) const
overrideprotectedvirtual

Applies this transformation to a 64-bit floating point image.

Reimplemented from pcl::ImageTransformation.

◆ Apply() [2/5]

void pcl::ICCProfileTransformation::Apply ( pcl::Image image) const
overrideprotectedvirtual

Applies this transformation to a 32-bit floating point image.

Reimplemented from pcl::ImageTransformation.

◆ Apply() [3/5]

void pcl::ICCProfileTransformation::Apply ( pcl::UInt16Image image) const
overrideprotectedvirtual

Applies this transformation to a 16-bit unsigned integer image.

Reimplemented from pcl::ImageTransformation.

◆ Apply() [4/5]

void pcl::ICCProfileTransformation::Apply ( pcl::UInt32Image image) const
overrideprotectedvirtual

Applies this transformation to a 32-bit unsigned integer image.

Reimplemented from pcl::ImageTransformation.

◆ Apply() [5/5]

void pcl::ICCProfileTransformation::Apply ( pcl::UInt8Image image) const
overrideprotectedvirtual

Applies this transformation to an 8-bit unsigned integer image.

Reimplemented from pcl::ImageTransformation.

◆ Clear()

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.

◆ Create()

void pcl::ICCProfileTransformation::Create ( )
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.

◆ DisableBlackPointCompensation()

void pcl::ICCProfileTransformation::DisableBlackPointCompensation ( bool  disable = true)
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.

◆ DisableHighResolutionCLUT()

void pcl::ICCProfileTransformation::DisableHighResolutionCLUT ( bool  disable = true)
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.

◆ DisableLowResolutionCLUT()

void pcl::ICCProfileTransformation::DisableLowResolutionCLUT ( bool  disable = true)
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.

◆ EnableBlackPointCompensation()

void pcl::ICCProfileTransformation::EnableBlackPointCompensation ( bool  enable = true)
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.

◆ EnableHighResolutionCLUT()

void pcl::ICCProfileTransformation::EnableHighResolutionCLUT ( bool  enable = true)
inline

Enables or disables usage of high-resolution CLUT tables for this ICC profile transformation.

Definition at line 334 of file ICCProfileTransformation.h.

◆ EnableLowResolutionCLUT()

void pcl::ICCProfileTransformation::EnableLowResolutionCLUT ( bool  enable = true)
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.

◆ ForceFloatingPointTransformation()

void pcl::ICCProfileTransformation::ForceFloatingPointTransformation ( bool  force = true)
inline

Enables or disables enforcement of floating point computations for this ICC profile transformation.

Definition at line 298 of file ICCProfileTransformation.h.

◆ ForcesFloatingPointTransformation()

bool pcl::ICCProfileTransformation::ForcesFloatingPointTransformation ( ) const
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.

◆ IsProofingTransformation()

bool pcl::ICCProfileTransformation::IsProofingTransformation ( ) const
inline

Returns true iff this object represents a device proofing transformation.

Definition at line 393 of file ICCProfileTransformation.h.

◆ IsSourceRGBProfile()

bool pcl::ICCProfileTransformation::IsSourceRGBProfile ( ) const
inline

Returns true iff the starting ICC profile in this transformation is a RGB profile.

Definition at line 436 of file ICCProfileTransformation.h.

◆ IsTargetRGBProfile()

bool pcl::ICCProfileTransformation::IsTargetRGBProfile ( ) const
inline

Returns true iff the target (last) ICC profile in this transformation is a RGB profile.

Definition at line 445 of file ICCProfileTransformation.h.

◆ IsValid()

bool pcl::ICCProfileTransformation::IsValid ( ) const
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.

◆ operator=() [1/2]

ICCProfileTransformation& pcl::ICCProfileTransformation::operator= ( const ICCProfileTransformation )
delete

Copy assignment. This operator is disabled because ICC color profile transformations are unique objects.

◆ operator=() [2/2]

ICCProfileTransformation& pcl::ICCProfileTransformation::operator= ( ICCProfileTransformation &&  x)
inline

Move assignment operator. Returns a reference to this object.

Definition at line 144 of file ICCProfileTransformation.h.

◆ Profiles()

const profile_list& pcl::ICCProfileTransformation::Profiles ( ) const
inline

Returns a reference to the immutable list of ICC profiles in this ICC profile transformation.

Definition at line 220 of file ICCProfileTransformation.h.

◆ RelaxFloatingPointTransformation()

void pcl::ICCProfileTransformation::RelaxFloatingPointTransformation ( bool  relax = true)
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.

◆ RenderingIntent()

rendering_intent pcl::ICCProfileTransformation::RenderingIntent ( ) const
inline

Returns the ICC rendering intent for this ICC profile transformation.

Definition at line 228 of file ICCProfileTransformation.h.

◆ SetRenderingIntent()

void pcl::ICCProfileTransformation::SetRenderingIntent ( rendering_intent  i)
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.

◆ UsingBlackPointCompensation()

bool pcl::ICCProfileTransformation::UsingBlackPointCompensation ( ) const
inline

Returns true iff this ICC profile transformation applies a black point compensation algorithm.

Definition at line 249 of file ICCProfileTransformation.h.

◆ UsingHighResolutionCLUT()

bool pcl::ICCProfileTransformation::UsingHighResolutionCLUT ( ) const
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.

◆ UsingLowResolutionCLUT()

bool pcl::ICCProfileTransformation::UsingLowResolutionCLUT ( ) const
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.


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