18 #ifndef MAGICKCORE_QUANTUM_H 19 #define MAGICKCORE_QUANTUM_H 25 #if defined(__cplusplus) || defined(c_plusplus) 87 #if defined(MAGICKCORE_HDRI_SUPPORT) 98 #if (MAGICKCORE_QUANTUM_DEPTH == 8) 99 static inline unsigned char ScaleQuantumToChar(
const Quantum quantum)
101 #if !defined(MAGICKCORE_HDRI_SUPPORT) 102 return((
unsigned char)
quantum);
108 return((
unsigned char) (
quantum+0.5));
111 #elif (MAGICKCORE_QUANTUM_DEPTH == 16) 112 static inline unsigned char ScaleQuantumToChar(
const Quantum quantum)
114 #if !defined(MAGICKCORE_HDRI_SUPPORT) 115 return((
unsigned char) (((
quantum+128UL)-((
quantum+128UL) >> 8)) >> 8));
121 return((
unsigned char) (
quantum/257.0+0.5));
124 #elif (MAGICKCORE_QUANTUM_DEPTH == 32) 125 static inline unsigned char ScaleQuantumToChar(
const Quantum quantum)
127 #if !defined(MAGICKCORE_HDRI_SUPPORT) 133 if ((
quantum/16843009.0) >= 255.0)
135 return((
unsigned char) (
quantum/16843009.0+0.5));
138 #elif (MAGICKCORE_QUANTUM_DEPTH == 64) 139 static inline unsigned char ScaleQuantumToChar(
const Quantum quantum)
141 #if !defined(MAGICKCORE_HDRI_SUPPORT) 142 return((
unsigned char) (
quantum/72340172838076673.0+0.5));
146 if ((
quantum/72340172838076673.0) >= 255.0)
148 return((
unsigned char) (
quantum/72340172838076673.0+0.5));
191 #if defined(__cplusplus) || defined(c_plusplus) #define magick_restrict
Definition: MagickCore.h:41
MagickDoubleType MagickRealType
Definition: magick-type.h:124
QuantumFormatType
Definition: quantum.h:43
MagickExport size_t ImportQuantumPixels(const Image *, CacheView *, QuantumInfo *, const QuantumType, const unsigned char *magick_restrict, ExceptionInfo *)
MagickExport void SetQuantumImageType(Image *, const QuantumType)
#define MagickULLConstant(c)
Definition: magick-type.h:40
MagickExport MagickBooleanType SetQuantumFormat(const Image *, QuantumInfo *, const QuantumFormatType)
MagickExport QuantumType GetQuantumType(Image *, ExceptionInfo *)
Definition: quantum.c:523
Definition: exception.h:101
MagickExport QuantumInfo * DestroyQuantumInfo(QuantumInfo *)
Definition: quantum.c:213
MagickExport void SetQuantumMinIsWhite(QuantumInfo *, const MagickBooleanType)
Definition: cache-view.c:65
static Quantum ClampToQuantum(const MagickRealType quantum)
Definition: quantum.h:85
EndianType
Definition: quantum.h:29
size_t quantum
Definition: quantum-private.h:48
MagickExport MagickBooleanType SetQuantumDepth(const Image *, QuantumInfo *, const size_t)
MagickBooleanType
Definition: magick-type.h:169
MagickExport size_t ExportQuantumPixels(const Image *, CacheView *, QuantumInfo *, const QuantumType, unsigned char *magick_restrict, ExceptionInfo *)
MagickExport unsigned char * GetQuantumPixels(const QuantumInfo *)
Definition: quantum.c:489
MagickExport size_t GetQuantumExtent(const Image *, const QuantumInfo *, const QuantumType)
Definition: quantum-private.h:45
#define IsNaN(a)
Definition: magick-type.h:192
MagickExport void SetQuantumScale(QuantumInfo *, const double)
Definition: quantum.c:1012
unsigned short Quantum
Definition: magick-type.h:86
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:909
QuantumType
Definition: quantum.h:51
#define MagickExport
Definition: method-attribute.h:80
MagickExport EndianType GetQuantumEndian(const QuantumInfo *)
Definition: quantum.c:358
MagickExport void SetQuantumPack(QuantumInfo *, const MagickBooleanType)
QuantumAlphaType
Definition: quantum.h:36
MagickExport void SetQuantumAlphaType(QuantumInfo *, const QuantumAlphaType)
MagickExport QuantumInfo * AcquireQuantumInfo(const ImageInfo *, Image *)
#define QuantumRange
Definition: magick-type.h:87