MagickCore
6.9.11-59
Convert, Edit, Or Compose Bitmap Images
|
Go to the documentation of this file.
18 #ifndef MAGICKCORE_QUANTUM_PRIVATE_H
19 #define MAGICKCORE_QUANTUM_PRIVATE_H
26 #if defined(__cplusplus) || defined(c_plusplus)
107 ((one << (
MagickMin(depth,max_depth)-1))-1)));
112 #define ExponentBias (127-15)
113 #define ExponentMask 0x7c00
114 #define ExponentShift 23
115 #define SignBitShift 31
116 #define SignificandShift 13
117 #define SignificandMask 0x00000400
119 typedef union _SinglePrecision
146 sign_bit=(
unsigned int) ((half >> 15) & 0x00000001);
147 exponent=(
unsigned int) ((half >> 10) & 0x0000001f);
148 significand=(
unsigned int) (half & 0x000003ff);
151 if (significand == 0)
171 if (significand != 0)
181 map.fixed_point=value;
182 return(map.single_precision);
198 quantum=(
unsigned int) pixel;
201 *pixels++=(
unsigned char) (quantum);
202 *pixels++=(
unsigned char) (quantum >> 8);
203 *pixels++=(
unsigned char) (quantum >> 16);
204 *pixels++=(
unsigned char) (quantum >> 24);
207 *pixels++=(
unsigned char) (quantum >> 24);
208 *pixels++=(
unsigned char) (quantum >> 16);
209 *pixels++=(
unsigned char) (quantum >> 8);
210 *pixels++=(
unsigned char) (quantum);
223 *pixels++=(
unsigned char) (quantum);
224 *pixels++=(
unsigned char) (quantum >> 8);
227 *pixels++=(
unsigned char) (quantum >> 8);
228 *pixels++=(
unsigned char) (quantum);
249 quantum=((
unsigned int) *pixels++);
250 quantum|=((
unsigned int) *pixels++ << 8);
251 quantum|=((
unsigned int) *pixels++ << 16);
252 quantum|=((
unsigned int) *pixels++ << 24);
256 quantum=((
unsigned int) *pixels++ << 24);
257 quantum|=((
unsigned int) *pixels++ << 16);
258 quantum|=((
unsigned int) *pixels++ << 8);
259 quantum|=((
unsigned int) *pixels++);
273 quantum=(
unsigned int) *pixels++;
274 quantum|=(
unsigned int) (*pixels++ << 8);
275 *pixel=(
unsigned short) (quantum & 0xffff);
278 quantum=(
unsigned int) (*pixels++ << 8);
279 quantum|=(
unsigned int) *pixels++;
280 *pixel=(
unsigned short) (quantum & 0xffff);
299 quantum.unsigned_value=((
unsigned int) *pixels++);
300 quantum.unsigned_value|=((
unsigned int) *pixels++ << 8);
301 quantum.unsigned_value|=((
unsigned int) *pixels++ << 16);
302 quantum.unsigned_value|=((
unsigned int) *pixels++ << 24);
303 *pixel=quantum.float_value;
306 quantum.unsigned_value=((
unsigned int) *pixels++ << 24);
307 quantum.unsigned_value|=((
unsigned int) *pixels++ << 16);
308 quantum.unsigned_value|=((
unsigned int) *pixels++ << 8);
309 quantum.unsigned_value|=((
unsigned int) *pixels++);
310 *pixel=quantum.float_value;
319 #if !defined(MAGICKCORE_HDRI_SUPPORT)
331 #if !defined(MAGICKCORE_HDRI_SUPPORT)
334 if ((
IsNaN(quantum) != 0) || (quantum <= 0.0))
342 #if (MAGICKCORE_QUANTUM_DEPTH == 8)
343 static inline Quantum ScaleCharToQuantum(
const unsigned char value)
348 static inline Quantum ScaleLongToQuantum(
const unsigned int value)
350 #if !defined(MAGICKCORE_HDRI_SUPPORT)
351 return((
Quantum) ((value)/16843009UL));
353 return((
Quantum) (value/16843009.0));
363 #if !defined(MAGICKCORE_HDRI_SUPPORT)
370 static inline unsigned int ScaleQuantumToLong(
const Quantum quantum)
372 #if !defined(MAGICKCORE_HDRI_SUPPORT)
373 return((
unsigned int) (16843009UL*quantum));
375 if ((
IsNaN(quantum) != 0) || (quantum <= 0.0))
377 if ((16843009.0*quantum) >= 4294967295.0)
378 return(4294967295UL);
379 return((
unsigned int) (16843009.0*quantum+0.5));
383 static inline unsigned int ScaleQuantumToMap(
const Quantum quantum)
386 return((
unsigned int)
MaxMap);
387 #if !defined(MAGICKCORE_HDRI_SUPPORT)
388 return((
unsigned int) quantum);
390 if ((
IsNaN(quantum) != 0) || (quantum <= 0.0))
392 return((
unsigned int) (quantum+0.5));
396 static inline unsigned short ScaleQuantumToShort(
const Quantum quantum)
398 #if !defined(MAGICKCORE_HDRI_SUPPORT)
399 return((
unsigned short) (257UL*quantum));
401 if ((
IsNaN(quantum) != 0) || (quantum <= 0.0))
403 if ((257.0*quantum) >= 65535.0)
405 return((
unsigned short) (257.0*quantum+0.5));
409 static inline Quantum ScaleShortToQuantum(
const unsigned short value)
411 #if !defined(MAGICKCORE_HDRI_SUPPORT)
412 return((
Quantum) ((value+128U)/257U));
414 return((
Quantum) (value/257.0));
417 #elif (MAGICKCORE_QUANTUM_DEPTH == 16)
418 static inline Quantum ScaleCharToQuantum(
const unsigned char value)
420 #if !defined(MAGICKCORE_HDRI_SUPPORT)
421 return((
Quantum) (257U*value));
423 return((
Quantum) (257.0*value));
427 static inline Quantum ScaleLongToQuantum(
const unsigned int value)
429 #if !defined(MAGICKCORE_HDRI_SUPPORT)
432 return((
Quantum) (value/65537.0));
442 #if !defined(MAGICKCORE_HDRI_SUPPORT)
449 static inline unsigned int ScaleQuantumToLong(
const Quantum quantum)
451 #if !defined(MAGICKCORE_HDRI_SUPPORT)
452 return((
unsigned int) (65537UL*quantum));
454 if ((
IsNaN(quantum) != 0) || (quantum <= 0.0))
456 if ((65537.0*quantum) >= 4294967295.0)
458 return((
unsigned int) (65537.0*quantum+0.5));
462 static inline unsigned int ScaleQuantumToMap(
const Quantum quantum)
465 return((
unsigned int)
MaxMap);
466 #if !defined(MAGICKCORE_HDRI_SUPPORT)
467 return((
unsigned int) quantum);
469 if ((
IsNaN(quantum) != 0) || (quantum <= 0.0))
471 return((
unsigned int) (quantum+0.5));
475 static inline unsigned short ScaleQuantumToShort(
const Quantum quantum)
477 #if !defined(MAGICKCORE_HDRI_SUPPORT)
478 return((
unsigned short) quantum);
480 if ((
IsNaN(quantum) != 0) || (quantum <= 0.0))
482 if (quantum >= 65535.0)
484 return((
unsigned short) (quantum+0.5));
488 static inline Quantum ScaleShortToQuantum(
const unsigned short value)
492 #elif (MAGICKCORE_QUANTUM_DEPTH == 32)
493 static inline Quantum ScaleCharToQuantum(
const unsigned char value)
495 #if !defined(MAGICKCORE_HDRI_SUPPORT)
496 return((
Quantum) (16843009UL*value));
498 return((
Quantum) (16843009.0*value));
502 static inline Quantum ScaleLongToQuantum(
const unsigned int value)
513 #if !defined(MAGICKCORE_HDRI_SUPPORT)
514 return((
Quantum) (65537.0*value+0.5));
516 return((
Quantum) (65537.0*value));
520 static inline unsigned int ScaleQuantumToLong(
const Quantum quantum)
522 #if !defined(MAGICKCORE_HDRI_SUPPORT)
523 return((
unsigned int) quantum);
525 if ((
IsNaN(quantum) != 0) || (quantum <= 0.0))
527 if ((quantum) >= 4294967295.0)
529 return((
unsigned int) (quantum+0.5));
533 static inline unsigned int ScaleQuantumToMap(
const Quantum quantum)
536 return((
unsigned int)
MaxMap);
537 #if !defined(MAGICKCORE_HDRI_SUPPORT)
541 if ((
IsNaN(quantum) != 0) || (quantum <= 0.0))
543 return((
unsigned int) (quantum/65537.0+0.5));
547 static inline unsigned short ScaleQuantumToShort(
const Quantum quantum)
549 #if !defined(MAGICKCORE_HDRI_SUPPORT)
553 if ((
IsNaN(quantum) != 0) || (quantum <= 0.0))
555 if ((quantum/65537.0) >= 65535.0)
557 return((
unsigned short) (quantum/65537.0+0.5));
561 static inline Quantum ScaleShortToQuantum(
const unsigned short value)
563 #if !defined(MAGICKCORE_HDRI_SUPPORT)
564 return((
Quantum) (65537UL*value));
566 return((
Quantum) (65537.0*value));
569 #elif (MAGICKCORE_QUANTUM_DEPTH == 64)
570 static inline Quantum ScaleCharToQuantum(
const unsigned char value)
572 return((
Quantum) (72340172838076673.0*value));
575 static inline Quantum ScaleLongToQuantum(
const unsigned int value)
577 return((
Quantum) (4294967297.0*value));
586 return((
Quantum) (281479271743489.0*value));
589 static inline unsigned int ScaleQuantumToLong(
const Quantum quantum)
591 return((
unsigned int) (quantum/4294967297.0+0.5));
594 static inline unsigned int ScaleQuantumToMap(
const Quantum quantum)
596 if ((
IsNaN(quantum) != 0) || (quantum <= 0.0))
598 if ((quantum/281479271743489.0) >=
MaxMap)
599 return((
unsigned int)
MaxMap);
600 return((
unsigned int) (quantum/281479271743489.0+0.5));
603 static inline unsigned short ScaleQuantumToShort(
const Quantum quantum)
605 if ((
IsNaN(quantum) != 0) || (quantum <= 0.0))
607 if ((quantum/281479271743489.0) >= 65535.0)
609 return((
unsigned short) (quantum/281479271743489.0+0.5));
612 static inline Quantum ScaleShortToQuantum(
const unsigned short value)
614 return((
Quantum) (281479271743489.0*value));
620 typedef union _SinglePrecision
649 map.single_precision=value;
650 sign_bit=(map.fixed_point >> 16) & 0x00008000;
652 significand=map.fixed_point & 0x007fffff;
659 return((
unsigned short) sign_bit);
660 significand=significand | 0x00800000;
661 shift=(int) (14-exponent);
662 significand=(
unsigned int) ((significand+((1 << (shift-1))-1)+
663 ((significand >> shift) & 0x01)) >> shift);
664 return((
unsigned short) (sign_bit | significand));
669 if (significand == 0)
674 half=(
unsigned short) (sign_bit | significand |
679 significand=significand+((significand >>
SignificandShift) & 0x01)+0x00000fff;
680 if ((significand & 0x00800000) != 0)
697 for (i=0; i < 10; i++)
701 half=(
unsigned short) (sign_bit | (exponent << 10) |
706 #if defined(__cplusplus) || defined(c_plusplus)
ColorspaceType colorspace
Definition: image.h:158
static void ExportCMYKOQuantum(const Image *image, QuantumInfo *quantum_info, const MagickSizeType number_pixels, const PixelPacket *magick_restrict p, const IndexPacket *magick_restrict indexes, unsigned char *magick_restrict q, ExceptionInfo *exception)
Definition: quantum-export.c:1765
#define QuantumScale
Definition: magick-type.h:124
#define MagickExport
Definition: method-attribute.h:80
static unsigned short SinglePrecisionToHalf(const float value)
Definition: quantum-private.h:618
MagickBooleanType debug
Definition: image.h:290
char filename[MaxTextExtent]
Definition: image.h:278
#define TransparentOpacity
Definition: image.h:28
static const unsigned char * PushQuantumLongPixel(QuantumInfo *quantum_info, const unsigned char *magick_restrict pixels, unsigned int *quantum)
Definition: quantum-import.c:271
#define OpaqueOpacity
Definition: image.h:27
static unsigned char * PopQuantumPixel(QuantumInfo *quantum_info, const QuantumAny pixel, unsigned char *magick_restrict pixels)
Definition: quantum-export.c:177
@ IndexAlphaQuantum
Definition: quantum.h:65
static void ExportAlphaQuantum(QuantumInfo *quantum_info, const MagickSizeType number_pixels, const PixelPacket *magick_restrict p, unsigned char *magick_restrict q)
Definition: quantum-export.c:242
size_t extent
Definition: quantum-private.h:76
MagickExport PixelPacket * GetAuthenticPixelQueue(const Image *image)
Definition: cache.c:1557
#define GetMagickModule()
Definition: log.h:29
static unsigned char * PopLongPixel(const EndianType endian, const unsigned int pixel, unsigned char *magick_restrict pixels)
Definition: quantum-private.h:192
#define SetPixelBlack(indexes, value)
Definition: pixel-accessor.h:70
size_t number_threads
Definition: quantum-private.h:70
@ RedQuantum
Definition: quantum.h:69
#define SetPixelOpacity(pixel, value)
Definition: pixel-accessor.h:81
QuantumAlphaType
Definition: quantum.h:39
static const unsigned char * PushDoublePixel(const QuantumInfo *quantum_info, const unsigned char *magick_restrict pixels, double *pixel)
Definition: quantum-import.c:122
#define MagickCoreSignature
Definition: method-attribute.h:86
MagickExport const IndexPacket * GetCacheViewVirtualIndexQueue(const CacheView *cache_view)
Definition: cache-view.c:638
size_t depth
Definition: image.h:176
@ CorruptImageError
Definition: exception.h:60
#define GetPixelBlack(indexes)
Definition: pixel-accessor.h:37
static MagickRealType GetPixelLuma(const Image *magick_restrict image, const PixelPacket *magick_restrict pixel)
Definition: pixel-accessor.h:138
size_t pad
Definition: quantum-private.h:60
#define magick_restrict
Definition: MagickCore.h:41
static unsigned char * PopFloatPixel(QuantumInfo *quantum_info, const float pixel, unsigned char *magick_restrict pixels)
Definition: quantum-export.c:149
static void ExportRGBQuantum(QuantumInfo *quantum_info, const MagickSizeType number_pixels, const PixelPacket *magick_restrict p, unsigned char *magick_restrict q)
Definition: quantum-export.c:3049
static void ImportGrayAlphaQuantum(QuantumInfo *quantum_info, const MagickSizeType number_pixels, const unsigned char *magick_restrict p, PixelPacket *magick_restrict q)
Definition: quantum-import.c:2589
static void ImportRGBOQuantum(QuantumInfo *quantum_info, const MagickSizeType number_pixels, const unsigned char *magick_restrict p, PixelPacket *magick_restrict q)
Definition: quantum-import.c:4134
static void ExportBGROQuantum(QuantumInfo *quantum_info, const MagickSizeType number_pixels, const PixelPacket *magick_restrict p, unsigned char *magick_restrict q)
Definition: quantum-export.c:878
#define SetPixelRed(pixel, value)
Definition: pixel-accessor.h:82
static void ImportBGROQuantum(QuantumInfo *quantum_info, const MagickSizeType number_pixels, const unsigned char *magick_restrict p, PixelPacket *magick_restrict q)
Definition: quantum-import.c:1005
#define SetPixelRGBO(pixel, packet)
Definition: pixel-accessor.h:96
size_t columns
Definition: image.h:174
#define SetPixelGreen(pixel, value)
Definition: pixel-accessor.h:77
@ GrayQuantum
Definition: quantum.h:63
@ AlphaQuantum
Definition: quantum.h:56
@ BGROQuantum
Definition: quantum.h:82
@ BGRQuantum
Definition: quantum.h:81
size_t MagickSizeType
Definition: magick-type.h:140
Quantum IndexPacket
Definition: pixel.h:129
size_t signature
Definition: quantum-private.h:88
#define GetPixelRed(pixel)
Definition: pixel-accessor.h:50
static unsigned char * PopQuantumLongPixel(QuantumInfo *quantum_info, const size_t pixel, unsigned char *magick_restrict pixels)
Definition: quantum-export.c:210
static void ExportCMYKAQuantum(const Image *image, QuantumInfo *quantum_info, const MagickSizeType number_pixels, const PixelPacket *magick_restrict p, const IndexPacket *magick_restrict indexes, unsigned char *magick_restrict q, ExceptionInfo *exception)
Definition: quantum-export.c:1598
static Quantum ScaleAnyToQuantum(const QuantumAny quantum, const QuantumAny range)
Definition: quantum-private.h:314
MagickExport IndexPacket * GetAuthenticIndexQueue(const Image *image)
Definition: cache.c:1334
static void ImportBlueQuantum(QuantumInfo *quantum_info, const MagickSizeType number_pixels, const unsigned char *magick_restrict p, PixelPacket *magick_restrict q)
Definition: quantum-import.c:1387
Definition: cache-view.c:66
struct _QuantumState QuantumState
static unsigned char * PopCharPixel(const unsigned char pixel, unsigned char *magick_restrict pixels)
Definition: quantum-private.h:185
@ GreenQuantum
Definition: quantum.h:64
@ YellowQuantum
Definition: quantum.h:74
@ CMYKQuantum
Definition: quantum.h:60
static const unsigned char * PushCharPixel(const unsigned char *magick_restrict pixels, unsigned char *magick_restrict pixel)
Definition: quantum-private.h:232
@ MagickTrue
Definition: magick-type.h:205
static void ExportOpacityQuantum(QuantumInfo *quantum_info, const MagickSizeType number_pixels, const PixelPacket *magick_restrict p, unsigned char *magick_restrict q)
Definition: quantum-export.c:2843
static void ImportRGBQuantum(QuantumInfo *quantum_info, const MagickSizeType number_pixels, const unsigned char *magick_restrict p, PixelPacket *magick_restrict q)
Definition: quantum-import.c:3559
MagickPrivate void ResetQuantumState(QuantumInfo *)
Definition: quantum.c:578
#define IsNaN(a)
Definition: magick-type.h:225
#define GetPixelAlpha(pixel)
Definition: pixel-accessor.h:36
#define GetPixelIndex(indexes)
Definition: pixel-accessor.h:44
@ RGBAQuantum
Definition: quantum.h:70
static Quantum ClampToQuantum(const MagickRealType quantum)
Definition: quantum.h:88
MagickExport MagickSizeType GetCacheViewExtent(const CacheView *cache_view)
Definition: cache-view.c:395
EndianType
Definition: quantum.h:32
@ CbYCrYQuantum
Definition: quantum.h:77
static void ExportBGRAQuantum(QuantumInfo *quantum_info, const MagickSizeType number_pixels, const PixelPacket *magick_restrict p, unsigned char *magick_restrict q)
Definition: quantum-export.c:636
static void ExportCMYKQuantum(const Image *image, QuantumInfo *quantum_info, const MagickSizeType number_pixels, const PixelPacket *magick_restrict p, const IndexPacket *magick_restrict indexes, unsigned char *magick_restrict q, ExceptionInfo *exception)
Definition: quantum-export.c:1451
QuantumFormatType format
Definition: quantum-private.h:52
static void ExportIndexAlphaQuantum(const Image *image, QuantumInfo *quantum_info, const MagickSizeType number_pixels, const PixelPacket *magick_restrict p, const IndexPacket *magick_restrict indexes, unsigned char *magick_restrict q, ExceptionInfo *exception)
Definition: quantum-export.c:2644
static void ExportBlackQuantum(const Image *image, QuantumInfo *quantum_info, const MagickSizeType number_pixels, const PixelPacket *magick_restrict p, const IndexPacket *magick_restrict indexes, unsigned char *magick_restrict q, ExceptionInfo *exception)
Definition: quantum-export.c:1118
Definition: quantum-private.h:46
@ TraceEvent
Definition: log.h:38
static void ImportGreenQuantum(QuantumInfo *quantum_info, const MagickSizeType number_pixels, const unsigned char *magick_restrict p, PixelPacket *magick_restrict q)
Definition: quantum-import.c:2843
MagickSizeType QuantumAny
Definition: magick-type.h:161
static const unsigned char * PushFloatPixel(const EndianType endian, const unsigned char *magick_restrict pixels, MagickFloatType *magick_restrict pixel)
Definition: quantum-private.h:284
PixelPacket * colormap
Definition: image.h:180
MagickExport const PixelPacket * GetVirtualPixelQueue(const Image *image)
Definition: cache.c:3384
static void ExportGrayAlphaQuantum(const Image *image, QuantumInfo *quantum_info, const MagickSizeType number_pixels, const PixelPacket *magick_restrict p, unsigned char *magick_restrict q)
Definition: quantum-export.c:2186
@ FloatingPointQuantumFormat
Definition: quantum.h:48
Definition: semaphore.c:61
static const unsigned char * PushQuantumPixel(QuantumInfo *quantum_info, const unsigned char *magick_restrict pixels, unsigned int *quantum)
Definition: quantum-import.c:242
EndianType endian
Definition: image.h:229
#define SetPixelAlpha(pixel, value)
Definition: pixel-accessor.h:67
MagickExport IndexPacket * GetCacheViewAuthenticIndexQueue(CacheView *cache_view)
Definition: cache-view.c:564
@ CyanQuantum
Definition: quantum.h:61
static MagickSizeType GetQuantumRange(const size_t depth)
Definition: quantum-private.h:94
static void ExportCbYCrYQuantum(QuantumInfo *quantum_info, const MagickSizeType number_pixels, const PixelPacket *magick_restrict p, unsigned char *magick_restrict q)
Definition: quantum-export.c:1332
@ ImageError
Definition: exception.h:69
static const unsigned char * PushLongPixel(const EndianType endian, const unsigned char *magick_restrict pixels, unsigned int *magick_restrict pixel)
Definition: quantum-private.h:240
@ CbYCrAQuantum
Definition: quantum.h:79
static const unsigned char * PushShortPixel(const EndianType endian, const unsigned char *magick_restrict pixels, unsigned short *magick_restrict pixel)
Definition: quantum-private.h:264
@ AssociatedQuantumAlpha
Definition: quantum.h:41
static void ImportAlphaQuantum(QuantumInfo *quantum_info, const MagickSizeType number_pixels, const unsigned char *magick_restrict p, PixelPacket *magick_restrict q)
Definition: quantum-import.c:301
static void ImportCbYCrYQuantum(const Image *image, QuantumInfo *quantum_info, const MagickSizeType number_pixels, const unsigned char *magick_restrict p, PixelPacket *magick_restrict q)
Definition: quantum-import.c:1516
double maximum
Definition: quantum-private.h:56
static unsigned char * PopShortPixel(const EndianType endian, const unsigned short pixel, unsigned char *magick_restrict pixels)
Definition: quantum-private.h:214
#define SetPixelBlue(pixel, value)
Definition: pixel-accessor.h:71
float MagickFloatType
Definition: magick-type.h:46
@ MagentaQuantum
Definition: quantum.h:67
static void ImportCMYKOQuantum(const Image *image, QuantumInfo *quantum_info, const MagickSizeType number_pixels, const unsigned char *magick_restrict p, PixelPacket *magick_restrict q, IndexPacket *magick_restrict indexes, ExceptionInfo *exception)
Definition: quantum-import.c:1997
#define MagickPrivate
Definition: method-attribute.h:81
@ MagickFalse
Definition: magick-type.h:204
static float ScaleFloatPixel(const QuantumInfo *quantum_info, const unsigned char *quantum)
Definition: quantum-import.c:161
static void ExportBlueQuantum(QuantumInfo *quantum_info, const MagickSizeType number_pixels, const PixelPacket *magick_restrict p, unsigned char *magick_restrict q)
Definition: quantum-export.c:1229
static void ImportBGRQuantum(QuantumInfo *quantum_info, const MagickSizeType number_pixels, const unsigned char *magick_restrict p, PixelPacket *magick_restrict q)
Definition: quantum-import.c:430
#define GetPixelBlue(pixel)
Definition: pixel-accessor.h:38
@ BlueQuantum
Definition: quantum.h:58
MagickBooleanType min_is_white
Definition: quantum-private.h:63
#define GetPixelOpacity(pixel)
Definition: pixel-accessor.h:49
MagickExport MagickSizeType GetImageExtent(const Image *image)
Definition: cache.c:1723
const unsigned int * mask
Definition: quantum-private.h:42
MemoryInfo ** pixels
Definition: quantum-private.h:73
static IndexPacket PushColormapIndex(const Image *image, const size_t index, MagickBooleanType *range_exception)
Definition: quantum-import.c:113
@ BGRAQuantum
Definition: quantum.h:71
static void ImportIndexAlphaQuantum(const Image *image, QuantumInfo *quantum_info, const MagickSizeType number_pixels, const unsigned char *magick_restrict p, PixelPacket *magick_restrict q, IndexPacket *magick_restrict indexes, ExceptionInfo *exception)
Definition: quantum-import.c:3193
@ SignedQuantumFormat
Definition: quantum.h:49
@ CMYKAQuantum
Definition: quantum.h:59
static double PerceptibleReciprocal(const double x)
Definition: pixel-accessor.h:124
#define QuantumRange
Definition: magick-type.h:90
@ CMYKColorspace
Definition: colorspace.h:39
QuantumState state
Definition: quantum-private.h:82
MagickExport const IndexPacket * GetVirtualIndexQueue(const Image *image)
Definition: cache.c:2819
size_t bits
Definition: quantum-private.h:39
MagickExport size_t ImportQuantumPixels(Image *image, CacheView *image_view, const QuantumInfo *quantum_info, const QuantumType quantum_type, const unsigned char *magick_restrict pixels, ExceptionInfo *exception)
Definition: quantum-import.c:4383
QuantumType
Definition: quantum.h:54
static void ImportCMYKQuantum(const Image *image, QuantumInfo *quantum_info, const MagickSizeType number_pixels, const unsigned char *magick_restrict p, PixelPacket *magick_restrict q, IndexPacket *magick_restrict indexes, ExceptionInfo *exception)
Definition: quantum-import.c:1608
SemaphoreInfo * semaphore
Definition: quantum-private.h:85
size_t signature
Definition: image.h:307
MagickBooleanType
Definition: magick-type.h:203
static void ImportIndexQuantum(const Image *image, QuantumInfo *quantum_info, const MagickSizeType number_pixels, const unsigned char *magick_restrict p, PixelPacket *magick_restrict q, IndexPacket *magick_restrict indexes, ExceptionInfo *exception)
Definition: quantum-import.c:2972
@ CMYKOQuantum
Definition: quantum.h:80
@ LSBEndian
Definition: quantum.h:34
Definition: exception.h:103
static QuantumAny ScaleQuantumToAny(const Quantum quantum, const QuantumAny range)
Definition: quantum-private.h:328
#define SetPixelIndex(indexes, value)
Definition: pixel-accessor.h:78
ClassType storage_class
Definition: image.h:155
@ GrayAlphaQuantum
Definition: quantum.h:62
static void ExportRedQuantum(QuantumInfo *quantum_info, const MagickSizeType number_pixels, const PixelPacket *magick_restrict p, unsigned char *magick_restrict q)
Definition: quantum-export.c:2946
static void ImportRGBAQuantum(QuantumInfo *quantum_info, const MagickSizeType number_pixels, const unsigned char *magick_restrict p, PixelPacket *magick_restrict q)
Definition: quantum-import.c:3885
MagickDoubleType MagickRealType
Definition: magick-type.h:129
static void ExportBGRQuantum(QuantumInfo *quantum_info, const MagickSizeType number_pixels, const PixelPacket *magick_restrict p, unsigned char *magick_restrict q)
Definition: quantum-export.c:353
MagickExport unsigned char * GetQuantumPixels(const QuantumInfo *quantum_info)
Definition: quantum.c:490
EndianType endian
Definition: quantum-private.h:79
@ PseudoClass
Definition: magick-type.h:199
static void ExportRGBOQuantum(QuantumInfo *quantum_info, const MagickSizeType number_pixels, const PixelPacket *magick_restrict p, unsigned char *magick_restrict q)
Definition: quantum-export.c:3577
@ BlackQuantum
Definition: quantum.h:57
static void ExportGrayQuantum(const Image *image, QuantumInfo *quantum_info, const MagickSizeType number_pixels, const PixelPacket *magick_restrict p, unsigned char *magick_restrict q)
Definition: quantum-export.c:1932
static void ExportGreenQuantum(QuantumInfo *quantum_info, const MagickSizeType number_pixels, const PixelPacket *magick_restrict p, unsigned char *magick_restrict q)
Definition: quantum-export.c:2390
QuantumAlphaType alpha_type
Definition: quantum-private.h:67
@ RGBOQuantum
Definition: quantum.h:72
@ RGBQuantum
Definition: quantum.h:73
MagickExport MagickBooleanType ThrowMagickException(ExceptionInfo *exception, const char *module, const char *function, const size_t line, const ExceptionType severity, const char *tag, const char *format,...)
Definition: exception.c:1149
QuantumFormatType
Definition: quantum.h:46
static void ImportGrayQuantum(const Image *image, QuantumInfo *quantum_info, const MagickSizeType number_pixels, const unsigned char *magick_restrict p, PixelPacket *magick_restrict q)
Definition: quantum-import.c:2200
#define MagickULLConstant(c)
Definition: magick-type.h:39
size_t quantum
Definition: quantum-private.h:49
MagickExport const PixelPacket * GetCacheViewVirtualPixelQueue(const CacheView *cache_view)
Definition: cache-view.c:677
MagickExport size_t ExportQuantumPixels(const Image *image, const CacheView *image_view, const QuantumInfo *quantum_info, const QuantumType quantum_type, unsigned char *magick_restrict pixels, ExceptionInfo *exception)
Definition: quantum-export.c:3817
#define GetPixelGreen(pixel)
Definition: pixel-accessor.h:43
static void ImportRedQuantum(QuantumInfo *quantum_info, const MagickSizeType number_pixels, const unsigned char *magick_restrict p, PixelPacket *magick_restrict q)
Definition: quantum-import.c:3430
#define MaxMap
Definition: magick-type.h:82
unsigned int pixel
Definition: quantum-private.h:36
static float HalfToSinglePrecision(const unsigned short half)
Definition: quantum-private.h:110
static void ExportIndexQuantum(const Image *image, QuantumInfo *quantum_info, const MagickSizeType number_pixels, const PixelPacket *magick_restrict p, const IndexPacket *magick_restrict indexes, unsigned char *magick_restrict q, ExceptionInfo *exception)
Definition: quantum-export.c:2493
MagickExport MagickBooleanType LogMagickEvent(const LogEventType type, const char *module, const char *function, const size_t line, const char *format,...)
Definition: log.c:1420
static const unsigned char * PushQuantumFloat24Pixel(const QuantumInfo *quantum_info, const unsigned char *magick_restrict pixels, float *pixel)
Definition: quantum-import.c:202
static void ImportCMYKAQuantum(const Image *image, QuantumInfo *quantum_info, const MagickSizeType number_pixels, const unsigned char *magick_restrict p, PixelPacket *magick_restrict q, IndexPacket *magick_restrict indexes, ExceptionInfo *exception)
Definition: quantum-import.c:1794
size_t depth
Definition: quantum-private.h:48
Definition: quantum-private.h:31
double minimum
Definition: quantum-private.h:55
MagickExport size_t GetQuantumExtent(const Image *image, const QuantumInfo *quantum_info, const QuantumType quantum_type)
Definition: quantum.c:307
static const unsigned char * PushQuantumFloatPixel(const QuantumInfo *quantum_info, const unsigned char *magick_restrict pixels, float *pixel)
Definition: quantum-import.c:177
double inverse_scale
Definition: quantum-private.h:33
@ CbYCrQuantum
Definition: quantum.h:78
double scale
Definition: quantum-private.h:57
static void ExportRGBAQuantum(QuantumInfo *quantum_info, const MagickSizeType number_pixels, const PixelPacket *magick_restrict p, unsigned char *magick_restrict q)
Definition: quantum-export.c:3335
#define MagickMin(x, y)
Definition: image-private.h:37
@ IndexQuantum
Definition: quantum.h:66
MagickExport PixelPacket * GetCacheViewAuthenticPixelQueue(CacheView *cache_view)
Definition: cache-view.c:601
static void ImportBGRAQuantum(QuantumInfo *quantum_info, const MagickSizeType number_pixels, const unsigned char *magick_restrict p, PixelPacket *magick_restrict q)
Definition: quantum-import.c:756
static unsigned char * PopDoublePixel(QuantumInfo *quantum_info, const double pixel, unsigned char *magick_restrict pixels)
Definition: quantum-export.c:114
@ OpacityQuantum
Definition: quantum.h:68
static void ImportBlackQuantum(const Image *image, QuantumInfo *quantum_info, const MagickSizeType number_pixels, const unsigned char *magick_restrict p, PixelPacket *magick_restrict q, IndexPacket *magick_restrict indexes, ExceptionInfo *exception)
Definition: quantum-import.c:1254
unsigned short Quantum
Definition: magick-type.h:89
MagickBooleanType pack
Definition: quantum-private.h:64