18 #ifndef _MAGICKCORE_QUANTUM_H
19 #define _MAGICKCORE_QUANTUM_H
25 #if defined(__cplusplus) || defined(c_plusplus)
29 #define RoundToQuantum(quantum) ClampToQuantum(quantum)
90 #if defined(MAGICKCORE_HDRI_SUPPORT)
97 return((
Quantum) (quantum+0.5f));
101 #if (MAGICKCORE_QUANTUM_DEPTH == 8)
102 static inline unsigned char ScaleQuantumToChar(
const Quantum quantum)
104 #if !defined(MAGICKCORE_HDRI_SUPPORT)
105 return((
unsigned char) quantum);
109 if (quantum >= 255.0)
111 return((
unsigned char) (quantum+0.5));
114 #elif (MAGICKCORE_QUANTUM_DEPTH == 16)
115 static inline unsigned char ScaleQuantumToChar(
const Quantum quantum)
117 #if !defined(MAGICKCORE_HDRI_SUPPORT)
118 return((
unsigned char) (((quantum+128UL)-((quantum+128UL) >> 8)) >> 8));
122 if ((quantum/257.0) >= 255.0)
124 return((
unsigned char) (quantum/257.0+0.5));
127 #elif (MAGICKCORE_QUANTUM_DEPTH == 32)
128 static inline unsigned char ScaleQuantumToChar(
const Quantum quantum)
130 #if !defined(MAGICKCORE_HDRI_SUPPORT)
136 if ((quantum/16843009.0) >= 255.0)
138 return((
unsigned char) (quantum/16843009.0+0.5));
141 #elif (MAGICKCORE_QUANTUM_DEPTH == 64)
142 static inline unsigned char ScaleQuantumToChar(
const Quantum quantum)
144 #if !defined(MAGICKCORE_HDRI_SUPPORT)
145 return((
unsigned char) (quantum/72340172838076673.0+0.5));
149 if ((quantum/72340172838076673.0) >= 255.0)
151 return((
unsigned char) (quantum/72340172838076673.0+0.5));
194 #if defined(__cplusplus) || defined(c_plusplus)
QuantumFormatType
Definition: quantum.h:45
MagickExport void SetQuantumImageType(Image *, const QuantumType)
#define MagickULLConstant(c)
Definition: magick-type.h:39
MagickExport MagickBooleanType SetQuantumFormat(const Image *, QuantumInfo *, const QuantumFormatType)
MagickExport QuantumType GetQuantumType(Image *, ExceptionInfo *)
Definition: quantum.c:521
Definition: exception.h:102
MagickExport QuantumInfo * DestroyQuantumInfo(QuantumInfo *)
Definition: quantum.c:217
MagickExport size_t ImportQuantumPixels(Image *, CacheView *, const QuantumInfo *, const QuantumType, const unsigned char *, ExceptionInfo *)
MagickExport void SetQuantumMinIsWhite(QuantumInfo *, const MagickBooleanType)
Definition: cache-view.c:65
float MagickRealType
Definition: magick-type.h:79
static Quantum ClampToQuantum(const MagickRealType quantum)
Definition: quantum.h:88
EndianType
Definition: quantum.h:31
size_t quantum
Definition: quantum-private.h:45
MagickExport MagickBooleanType SetQuantumDepth(const Image *, QuantumInfo *, const size_t)
#define IsNaN(a)
Definition: image-private.h:29
MagickBooleanType
Definition: magick-type.h:214
MagickExport unsigned char * GetQuantumPixels(const QuantumInfo *)
Definition: quantum.c:489
MagickExport size_t GetQuantumExtent(const Image *, const QuantumInfo *, const QuantumType)
Definition: quantum-private.h:42
MagickExport void SetQuantumScale(QuantumInfo *, const double)
Definition: quantum.c:1006
Definition: magick-type.h:216
unsigned short Quantum
Definition: magick-type.h:96
MagickExport MagickBooleanType SetQuantumEndian(const Image *, QuantumInfo *, const EndianType)
MagickExport void SetQuantumQuantum(QuantumInfo *, const size_t)
MagickExport QuantumFormatType GetQuantumFormat(const QuantumInfo *)
Definition: quantum.c:387
MagickExport void GetQuantumInfo(const ImageInfo *, QuantumInfo *)
MagickExport MagickBooleanType SetQuantumPad(const Image *, QuantumInfo *, const size_t)
Definition: quantum.c:903
QuantumType
Definition: quantum.h:53
#define MagickExport
Definition: method-attribute.h:98
MagickExport EndianType GetQuantumEndian(const QuantumInfo *)
Definition: quantum.c:358
MagickExport void SetQuantumPack(QuantumInfo *, const MagickBooleanType)
QuantumAlphaType
Definition: quantum.h:38
MagickExport void SetQuantumAlphaType(QuantumInfo *, const QuantumAlphaType)
MagickExport QuantumInfo * AcquireQuantumInfo(const ImageInfo *, Image *)
#define QuantumRange
Definition: magick-type.h:97
MagickExport size_t ExportQuantumPixels(const Image *, const CacheView *, const QuantumInfo *, const QuantumType, unsigned char *, ExceptionInfo *)