18 #ifndef _MAGICKCORE_QUANTUM_H
19 #define _MAGICKCORE_QUANTUM_H
21 #if defined(__cplusplus) || defined(c_plusplus)
28 #define RoundToQuantum(quantum) ClampToQuantum(quantum)
89 #if defined(MAGICKCORE_HDRI_SUPPORT)
100 #if (MAGICKCORE_QUANTUM_DEPTH == 8)
101 static inline unsigned char ScaleQuantumToChar(
const Quantum quantum)
103 #if !defined(MAGICKCORE_HDRI_SUPPORT)
104 return((
unsigned char) quantum);
108 if (quantum >= 255.0)
110 return((
unsigned char) (quantum+0.5));
113 #elif (MAGICKCORE_QUANTUM_DEPTH == 16)
114 static inline unsigned char ScaleQuantumToChar(
const Quantum quantum)
116 #if !defined(MAGICKCORE_HDRI_SUPPORT)
117 return((
unsigned char) (((quantum+128UL)-((quantum+128UL) >> 8)) >> 8));
121 if ((quantum/257.0) >= 255.0)
123 return((
unsigned char) (quantum/257.0+0.5));
126 #elif (MAGICKCORE_QUANTUM_DEPTH == 32)
127 static inline unsigned char ScaleQuantumToChar(
const Quantum quantum)
129 #if !defined(MAGICKCORE_HDRI_SUPPORT)
135 if ((quantum/16843009.0) >= 255.0)
137 return((
unsigned char) (quantum/16843009.0+0.5));
140 #elif (MAGICKCORE_QUANTUM_DEPTH == 64)
141 static inline unsigned char ScaleQuantumToChar(
const Quantum quantum)
143 #if !defined(MAGICKCORE_HDRI_SUPPORT)
144 return((
unsigned char) (quantum/72340172838076673.0+0.5));
148 if ((quantum/72340172838076673.0) >= 255.0)
150 return((
unsigned char) (quantum/72340172838076673.0+0.5));
193 #if defined(__cplusplus) || defined(c_plusplus)