PCL
ImageRenderingModes.h
Go to the documentation of this file.
1
// ____ ______ __
2
// / __ \ / ____// /
3
// / /_/ // / / /
4
// / ____// /___ / /___ PixInsight Class Library
5
// /_/ \____//_____/ PCL 2.7.0
6
// ----------------------------------------------------------------------------
7
// pcl/ImageRenderingModes.h - Released 2024-06-18T15:48:54Z
8
// ----------------------------------------------------------------------------
9
// This file is part of the PixInsight Class Library (PCL).
10
// PCL is a multiplatform C++ framework for development of PixInsight modules.
11
//
12
// Copyright (c) 2003-2024 Pleiades Astrophoto S.L. All Rights Reserved.
13
//
14
// Redistribution and use in both source and binary forms, with or without
15
// modification, is permitted provided that the following conditions are met:
16
//
17
// 1. All redistributions of source code must retain the above copyright
18
// notice, this list of conditions and the following disclaimer.
19
//
20
// 2. All redistributions in binary form must reproduce the above copyright
21
// notice, this list of conditions and the following disclaimer in the
22
// documentation and/or other materials provided with the distribution.
23
//
24
// 3. Neither the names "PixInsight" and "Pleiades Astrophoto", nor the names
25
// of their contributors, may be used to endorse or promote products derived
26
// from this software without specific prior written permission. For written
27
// permission, please contact info@pixinsight.com.
28
//
29
// 4. All products derived from this software, in any form whatsoever, must
30
// reproduce the following acknowledgment in the end-user documentation
31
// and/or other materials provided with the product:
32
//
33
// "This product is based on software from the PixInsight project, developed
34
// by Pleiades Astrophoto and its contributors (https://pixinsight.com/)."
35
//
36
// Alternatively, if that is where third-party acknowledgments normally
37
// appear, this acknowledgment must be reproduced in the product itself.
38
//
39
// THIS SOFTWARE IS PROVIDED BY PLEIADES ASTROPHOTO AND ITS CONTRIBUTORS
40
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
41
// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
42
// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PLEIADES ASTROPHOTO OR ITS
43
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
44
// EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, BUSINESS
45
// INTERRUPTION; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; AND LOSS OF USE,
46
// DATA OR PROFITS) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
47
// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
48
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
49
// POSSIBILITY OF SUCH DAMAGE.
50
// ----------------------------------------------------------------------------
51
52
#ifndef __PCL_ImageRenderingModes_h
53
#define __PCL_ImageRenderingModes_h
54
56
57
#include <
pcl/Defs.h
>
58
59
#include <
pcl/Flags.h
>
60
61
namespace
pcl
62
{
63
64
// ----------------------------------------------------------------------------
65
95
namespace
DisplayChannel
96
{
97
enum
value_type
98
{
99
Invalid = -1,
100
RGBK = 0,
// Composite RGB or Gray (normal display mode)
101
Red,
// Red channel as grayscale
102
Green,
// Green channel as grayscale
103
Blue,
// Blue channel as grayscale
104
CIE_L,
// CIE L*
105
Lightness = CIE_L,
// Lightness = CIE L*
106
Luminance = CIE_L,
// ### Deprecated - retained for compatibility -> suppress in PCL 2.0
107
ChrominanceRG,
// Chrominance, CIE a*,b* as red+green composite
108
ChrominanceLFixed,
// Chrominance, CIE L* fixed to 0.5
109
CIE_a,
// CIE a*
110
CIE_b,
// CIE b*
111
CIE_c,
// CIE c*
112
CIE_h,
// CIE h*
113
CIE_X,
// CIE X
114
CIE_Y,
// CIE Y
115
CIE_Z,
// CIE Z
116
Hue,
// Hue from the HSV/HSI spaces
117
SaturationHSV,
// Saturation from HSV
118
SaturationHSI,
// Saturation from HSI
119
Value,
// Value from HSV (V = Max(R,G,B))
120
Intensity,
// Intensity from HSI (I = 0.5*(Min(R,G,B) + Max(R,G,B)))
121
Alpha
// First alpha channel (the rest as Alpha+n)
122
};
123
124
inline
bool
IsLuminanceOrChrominance( value_type c )
125
{
126
return
c >= Lightness && c < Hue;
127
}
128
}
129
130
// ----------------------------------------------------------------------------
131
161
namespace
MaskMode
162
{
163
enum
value_type
164
{
165
Replace,
// Replaces the image by the mask
166
Multiply,
// Multiplies the image by the mask (PI's traditional mode)
167
OverlayRed,
// Red mask
168
OverlayGreen,
// Green mask
169
OverlayBlue,
// Blue mask
170
OverlayYellow,
// Yellow mask (red+green)
171
OverlayMagenta,
// Magenta mask (red+blue)
172
OverlayCyan,
// Cyan mask (green+blue)
173
OverlayOrange,
// Orange mask (red + 1/2*green)
174
OverlayViolet,
// Violet mask (1/2*red + blue)
175
176
NumberOfModes,
177
178
Default = OverlayRed
179
};
180
};
181
182
// ----------------------------------------------------------------------------
183
184
}
// pcl
185
186
#endif
// __PCL_ImageRenderingModes_h
187
188
// ----------------------------------------------------------------------------
189
// EOF pcl/ImageRenderingModes.h - Released 2024-06-18T15:48:54Z
Defs.h
Flags.h
pcl
PCL root namespace.
Definition:
AbstractImage.h:77
ImageRenderingModes.h
Generated on Wed Jul 3 2024 16:34:47 for PCL by
1.9.1