MagickCore
6.9.11-60
Convert, Edit, Or Compose Bitmap Images
|
Go to the documentation of this file.
18 #ifndef MAGICKCORE_QUANTIZE_H
19 #define MAGICKCORE_QUANTIZE_H
23 #if defined(__cplusplus) || defined(c_plusplus)
78 #if defined(__cplusplus) || defined(c_plusplus)
ColorspaceType colorspace
Definition: image.h:158
MagickExport MagickBooleanType GetImageQuantizeError(Image *image)
Definition: quantize.c:2117
static MagickBooleanType ClassifyImageColors(CubeInfo *, const Image *, ExceptionInfo *)
Definition: quantize.c:731
NodeInfo nodes[NodesInAList]
Definition: histogram.c:94
#define QuantumScale
Definition: magick-type.h:124
#define MagickExport
Definition: method-attribute.h:80
MagickBooleanType debug
Definition: image.h:290
char filename[MaxTextExtent]
Definition: image.h:278
MagickProgressMonitor progress_monitor
Definition: image.h:264
@ FloydSteinbergDitherMethod
Definition: quantize.h:32
struct _Nodes * next
Definition: histogram.c:96
struct _CubeInfo CubeInfo
static void ReduceImageColors(const Image *, CubeInfo *)
Definition: quantize.c:2984
MagickExport QuantizeInfo * DestroyQuantizeInfo(QuantizeInfo *quantize_info)
Definition: quantize.c:1355
ErrorInfo error
Definition: image.h:258
MagickExport MagickBooleanType RemapImage(const QuantizeInfo *quantize_info, Image *image, const Image *remap_image)
Definition: quantize.c:3063
MagickBooleanType matte
Definition: image.h:171
MagickExport MagickBooleanType SetImageProgress(const Image *image, const char *tag, const MagickOffsetType offset, const MagickSizeType extent)
Definition: monitor.c:136
#define OpaqueOpacity
Definition: image.h:27
MemoryInfo * memory_info
Definition: quantize.c:285
MagickOffsetType offset
Definition: quantize.c:310
static void Reduce(CubeInfo *cube_info, const NodeInfo *node_info)
Definition: quantize.c:2885
NodeInfo * nodes
Definition: quantize.c:244
MagickExport MagickBooleanType PosterizeImageChannel(Image *image, const ChannelType channel, const size_t levels, const MagickBooleanType dither)
Definition: quantize.c:2297
size_t colors
Definition: histogram.c:112
MagickExport MagickBooleanType PosterizeImage(Image *, const size_t, const MagickBooleanType)
MagickExport MemoryInfo * AcquireVirtualMemory(const size_t count, const size_t quantum)
Definition: memory.c:705
@ DirectClass
Definition: magick-type.h:198
@ UndefinedDitherMethod
Definition: quantize.h:29
ssize_t x
Definition: histogram.c:106
@ BlueChannel
Definition: magick-type.h:176
#define GetMagickModule()
Definition: log.h:29
MagickExport CacheView * DestroyCacheView(CacheView *cache_view)
Definition: cache-view.c:256
size_t level
Definition: histogram.c:88
static void Riemersma(Image *image, CacheView *image_view, CubeInfo *cube_info, const size_t level, const unsigned int direction)
Definition: quantize.c:1653
Definition: histogram.c:92
@ UndefinedColorspace
Definition: colorspace.h:27
@ RedChannel
Definition: magick-type.h:171
MagickBooleanType dither
Definition: image.h:415
static NodeInfo * GetNodeInfo(CubeInfo *, const size_t, const size_t, NodeInfo *)
Definition: quantize.c:2042
#define SetPixelOpacity(pixel, value)
Definition: pixel-accessor.h:81
ChannelType
Definition: magick-type.h:169
size_t total_colors
Definition: image.h:252
#define MagickCoreSignature
Definition: method-attribute.h:86
size_t nodes
Definition: quantize.c:274
#define PosterizeImageTag
#define GreenShift(pixel)
size_t color_number
Definition: quantize.c:276
static MagickRealType GetPixelLuma(const Image *magick_restrict image, const PixelPacket *magick_restrict pixel)
Definition: pixel-accessor.h:138
@ IndexChannel
Definition: magick-type.h:182
MagickExport PixelPacket * GetCacheViewAuthenticPixels(CacheView *cache_view, const ssize_t x, const ssize_t y, const size_t columns, const size_t rows, ExceptionInfo *exception)
Definition: cache-view.c:473
static MagickBooleanType FloydSteinbergDither(Image *image, CubeInfo *cube_info)
Definition: quantize.c:1452
MagickExport QuantizeInfo * DestroyQuantizeInfo(QuantizeInfo *)
Definition: quantize.c:1355
double normalized_mean_error
Definition: color.h:68
#define magick_restrict
Definition: MagickCore.h:41
size_t id
Definition: quantize.c:237
MagickExport MagickBooleanType SetImageGray(Image *image, ExceptionInfo *exception)
Definition: colorspace.c:1328
static MagickBooleanType IssRGBCompatibleColorspace(const ColorspaceType colorspace)
Definition: colorspace-private.h:132
#define SetPixelRed(pixel, value)
Definition: pixel-accessor.h:82
double mean_error_per_pixel
Definition: color.h:67
static size_t QuantizeErrorFlatten(const CubeInfo *cube_info, const NodeInfo *node_info, const ssize_t offset, MagickRealType *quantize_error)
Definition: quantize.c:2837
MagickBooleanType measure_error
Definition: quantize.h:50
MagickExport size_t GetNumberColors(const Image *image, FILE *file, ExceptionInfo *exception)
Definition: histogram.c:1201
size_t columns
Definition: image.h:174
MagickExport MagickBooleanType AcquireImageColormap(Image *image, const size_t colors)
Definition: colormap.c:103
#define SetPixelGreen(pixel, value)
Definition: pixel-accessor.h:77
@ SouthGravity
Definition: geometry.h:90
size_t MagickSizeType
Definition: magick-type.h:140
Quantum IndexPacket
Definition: pixel.h:129
ImageType type
Definition: image.h:334
@ sRGBColorspace
Definition: colorspace.h:40
QuantizeInfo * quantize_info
Definition: quantize.c:297
#define GetPixelRed(pixel)
Definition: pixel-accessor.h:50
MagickExport MagickBooleanType QuantizeImages(const QuantizeInfo *quantize_info, Image *images)
Definition: quantize.c:2692
static CubeInfo * GetCubeInfo(const QuantizeInfo *, const size_t, const size_t)
Definition: quantize.c:1938
#define SetPixelRgb(pixel, packet)
Definition: pixel-accessor.h:83
@ ResourceLimitError
Definition: exception.h:55
Quantum blue
Definition: pixel.h:143
struct _NodeInfo NodeInfo
static MagickBooleanType AssignImageColors(Image *, CubeInfo *)
Definition: quantize.c:477
Definition: cache-view.c:66
#define MaxNodes
Definition: quantize.c:213
@ EastGravity
Definition: geometry.h:88
MagickExport void GetQuantizeInfo(QuantizeInfo *quantize_info)
Definition: quantize.c:2230
#define ThrowBinaryImageException(severity, tag, context)
Definition: exception-private.h:35
MagickExport MagickBooleanType SyncImage(Image *image)
Definition: image.c:3676
MagickRealType pruning_threshold
Definition: quantize.c:270
void * client_data
Definition: image.h:267
@ MagickTrue
Definition: magick-type.h:205
static Quantum PixelPacketIntensity(const PixelPacket *pixel)
Definition: pixel-accessor.h:219
MagickBooleanType dither
Definition: quantize.h:44
#define IsNaN(a)
Definition: magick-type.h:225
#define GetPixelAlpha(pixel)
Definition: pixel-accessor.h:36
#define GetPixelIndex(indexes)
Definition: pixel-accessor.h:44
MagickExport MagickBooleanType SyncCacheViewAuthenticPixels(CacheView *magick_restrict cache_view, ExceptionInfo *exception)
Definition: cache-view.c:1000
double blue
Definition: pixel.h:89
static double MagickRound(double x)
Definition: quantize.c:2277
static Quantum ClampToQuantum(const MagickRealType quantum)
Definition: quantum.h:88
MagickExport MagickBooleanType CompressImageColormap(Image *)
@ WestGravity
Definition: geometry.h:86
MagickSizeType span
Definition: quantize.c:313
@ TraceEvent
Definition: log.h:38
MagickExport MagickBooleanType QuantizeImage(const QuantizeInfo *quantize_info, Image *image)
Definition: quantize.c:2595
MagickExport void * AcquireMagickMemory(const size_t size)
Definition: memory.c:552
#define NodesInAList
Definition: quantize.c:215
PixelPacket * colormap
Definition: image.h:180
double opacity
Definition: pixel.h:90
static DoublePixelPacket ** DestroyPixelThreadSet(DoublePixelPacket **pixels)
Definition: quantize.c:1393
size_t free_nodes
Definition: histogram.c:113
static DoublePixelPacket ** AcquirePixelThreadSet(const size_t count)
Definition: quantize.c:1406
static Quantum ClampPixel(const MagickRealType value)
Definition: pixel-accessor.h:111
ssize_t y
Definition: quantize.c:304
struct _NodeInfo * parent
Definition: quantize.c:222
Definition: histogram.c:101
MagickExport IndexPacket * GetCacheViewAuthenticIndexQueue(CacheView *cache_view)
Definition: cache-view.c:564
struct _NodeInfo * child[16]
Definition: histogram.c:75
#define MaxColormapSize
Definition: magick-type.h:81
MagickExport CacheView * AcquireAuthenticCacheView(const Image *image, ExceptionInfo *exception)
Definition: cache-view.c:111
MagickSizeType transparent_pixels
Definition: quantize.c:263
MagickExport MagickBooleanType QuantizeImage(const QuantizeInfo *, Image *)
DoublePixelPacket total_color
Definition: quantize.c:230
#define MagickMax(x, y)
Definition: image-private.h:36
DoublePixelPacket target
Definition: quantize.c:266
ColorspaceType
Definition: colorspace.h:26
double red
Definition: pixel.h:87
@ OpacityChannel
Definition: magick-type.h:179
size_t colors
Definition: image.h:177
ExceptionInfo exception
Definition: image.h:287
size_t color_number
Definition: quantize.c:236
#define SetPixelBlue(pixel, value)
Definition: pixel-accessor.h:71
@ RiemersmaDitherMethod
Definition: quantize.h:31
Definition: quantize.h:36
static MagickBooleanType SetGrayscaleImage(Image *)
Definition: quantize.c:3229
@ BilevelType
Definition: image.h:52
@ MagickFalse
Definition: magick-type.h:204
size_t tree_depth
Definition: quantize.h:41
double index
Definition: pixel.h:91
MagickBooleanType(* MagickProgressMonitor)(const char *, const MagickOffsetType, const MagickSizeType, void *)
Definition: monitor.h:26
MagickExport MagickBooleanType PosterizeImageChannel(Image *, const ChannelType, const size_t, const MagickBooleanType)
size_t maximum_colors
Definition: quantize.c:257
static void AssociateAlphaPixel(const CubeInfo *cube_info, const PixelPacket *pixel, DoublePixelPacket *alpha_pixel)
Definition: quantize.c:425
#define GetPixelBlue(pixel)
Definition: pixel-accessor.h:38
#define AlphaShift(pixel)
static size_t ColorToNodeId(const CubeInfo *cube_info, const DoublePixelPacket *pixel, size_t index)
Definition: quantize.c:448
#define GetPixelOpacity(pixel)
Definition: pixel-accessor.h:49
Nodes * node_queue
Definition: histogram.c:119
MagickExport Image * GetNextImageInList(const Image *images)
Definition: list.c:784
double green
Definition: pixel.h:88
NodeInfo * root
Definition: histogram.c:103
@ DefaultChannels
Definition: magick-type.h:192
MagickExport QuantizeInfo * CloneQuantizeInfo(const QuantizeInfo *quantize_info)
Definition: quantize.c:1015
static void PruneChild(CubeInfo *cube_info, const NodeInfo *node_info)
Definition: quantize.c:2447
Quantum opacity
Definition: pixel.h:146
MagickExport MagickBooleanType IsPaletteImage(const Image *image, ExceptionInfo *exception)
Definition: histogram.c:1011
MagickBooleanType verbose
Definition: image.h:435
size_t depth
Definition: quantize.c:307
Quantum red
Definition: pixel.h:145
static double PerceptibleReciprocal(const double x)
Definition: pixel-accessor.h:124
static ssize_t CacheOffset(CubeInfo *cube_info, const DoublePixelPacket *pixel)
Definition: quantize.c:1433
static int MagickRealTypeCompare(const void *error_p, const void *error_q)
Definition: quantize.c:2969
#define QuantumRange
Definition: magick-type.h:90
@ CMYKColorspace
Definition: colorspace.h:39
MagickExport MagickProgressMonitor SetImageProgressMonitor(Image *image, const MagickProgressMonitor progress_monitor, void *client_data)
Definition: monitor.c:194
static void DefineImageColormap(Image *, CubeInfo *, NodeInfo *)
Definition: quantize.c:1206
size_t rows
Definition: image.h:175
Quantum green
Definition: pixel.h:144
MagickExport void GetQuantizeInfo(QuantizeInfo *)
Definition: quantize.c:2230
struct _QuantizeInfo QuantizeInfo
DitherMethod dither_method
Definition: quantize.h:56
MagickExport size_t GetImageListLength(const Image *images)
Definition: list.c:709
MagickSizeType number_unique
Definition: histogram.c:85
#define MaxTreeDepth
Definition: quantize.c:214
static MagickBooleanType RiemersmaDither(Image *, CacheView *, CubeInfo *, const unsigned int)
Definition: quantize.c:1742
MagickExport void * GetVirtualMemoryBlob(const MemoryInfo *memory_info)
Definition: memory.c:1090
MagickRealType weights[ErrorQueueLength]
Definition: quantize.c:294
MagickExport MemoryInfo * RelinquishVirtualMemory(MemoryInfo *memory_info)
Definition: memory.c:1229
size_t signature
Definition: image.h:307
MagickBooleanType
Definition: magick-type.h:203
@ LinearGRAYColorspace
Definition: colorspace.h:62
static void PruneToCubeDepth(CubeInfo *, const NodeInfo *)
Definition: quantize.c:2548
MagickExport QuantizeInfo * AcquireQuantizeInfo(const ImageInfo *)
MagickExport MagickBooleanType CompressImageColormap(Image *image)
Definition: quantize.c:1159
ssize_t transparent_index
Definition: quantize.c:260
MagickExport void * RelinquishMagickMemory(void *memory)
Definition: memory.c:1162
Definition: exception.h:103
MagickExport MagickBooleanType RemapImages(const QuantizeInfo *, Image *, const Image *)
Definition: quantize.c:3127
#define SetPixelIndex(indexes, value)
Definition: pixel-accessor.h:78
ClassType storage_class
Definition: image.h:155
MagickExport ssize_t ParseCommandOption(const CommandOption option, const MagickBooleanType list, const char *options)
Definition: option.c:2586
MagickDoubleType MagickRealType
Definition: magick-type.h:129
MagickExport const char * GetImageArtifact(const Image *image, const char *artifact)
Definition: artifact.c:266
static void PruneLevel(CubeInfo *, const NodeInfo *)
Definition: quantize.c:2503
@ GRAYColorspace
Definition: colorspace.h:29
static void ClosestColor(const Image *, CubeInfo *, const NodeInfo *)
Definition: quantize.c:1064
MagickExport CacheView * AcquireVirtualCacheView(const Image *image, ExceptionInfo *exception)
Definition: cache-view.c:153
@ GrayscaleType
Definition: image.h:53
#define PosterizePixel(pixel)
static void SetAssociatedAlpha(const Image *image, CubeInfo *cube_info)
Definition: quantize.c:718
@ PseudoClass
Definition: magick-type.h:199
DoublePixelPacket error[ErrorQueueLength]
Definition: quantize.c:291
MagickExport const char * GetImageOption(const ImageInfo *image_info, const char *key)
Definition: option.c:1949
ColorspaceType colorspace
Definition: quantize.h:47
MagickExport MagickBooleanType TransformImageColorspace(Image *image, const ColorspaceType colorspace)
Definition: colorspace.c:1509
MagickExport MagickBooleanType GetImageQuantizeError(Image *)
@ ThreadResource
Definition: resource_.h:33
size_t number_colors
Definition: quantize.h:38
MagickExport MagickBooleanType RemapImage(const QuantizeInfo *, Image *, const Image *)
MagickExport MagickBooleanType QuantizeImages(const QuantizeInfo *, Image *)
static MagickBooleanType IsSameColor(const Image *image, const PixelPacket *p, const PixelPacket *q)
Definition: quantize.c:464
size_t signature
Definition: quantize.h:53
MagickExport MagickBooleanType RemapImages(const QuantizeInfo *quantize_info, Image *images, const Image *remap_image)
Definition: quantize.c:3127
static MagickBooleanType DitherImage(Image *, CubeInfo *)
Definition: quantize.c:1867
#define MagickEpsilon
Definition: magick-type.h:119
MagickBooleanType associate_alpha
Definition: quantize.c:300
ssize_t * cache
Definition: quantize.c:288
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
#define ThrowFatalException(severity, tag)
Definition: exception-private.h:42
#define ErrorQueueLength
Definition: quantize.c:212
static int IntensityCompare(const void *x, const void *y)
Definition: quantize.c:3206
MagickExport QuantizeInfo * AcquireQuantizeInfo(const ImageInfo *image_info)
Definition: quantize.c:361
#define GetPixelGreen(pixel)
Definition: pixel-accessor.h:43
MagickExport MagickBooleanType SetImageMonochrome(Image *image, ExceptionInfo *exception)
Definition: colorspace.c:1422
MagickRealType next_threshold
Definition: quantize.c:271
#define MaxMap
Definition: magick-type.h:82
Definition: histogram.c:74
MagickExport MagickBooleanType LogMagickEvent(const LogEventType type, const char *module, const char *function, const size_t line, const char *format,...)
Definition: log.c:1420
NodeInfo * next_node
Definition: quantize.c:279
MagickExport const PixelPacket * GetCacheViewVirtualPixels(const CacheView *cache_view, const ssize_t x, const ssize_t y, const size_t columns, const size_t rows, ExceptionInfo *exception)
Definition: cache-view.c:723
@ ForgetGravity
Definition: geometry.h:82
#define CacheShift
Definition: quantize.c:208
double normalized_maximum_error
Definition: color.h:69
@ ResourceLimitFatalError
Definition: exception.h:78
MagickRealType quantize_error
Definition: quantize.c:233
#define MagickMin(x, y)
Definition: image-private.h:37
@ NoDitherMethod
Definition: quantize.h:30
@ NorthGravity
Definition: geometry.h:84
@ MagickDitherOptions
Definition: option.h:49
static void DestroyCubeInfo(CubeInfo *)
Definition: quantize.c:1309
@ GreenChannel
Definition: magick-type.h:174
static double StringToDoubleInterval(const char *string, const double interval)
Definition: string-private.h:88
MagickRealType distance
Definition: quantize.c:269
MagickExport QuantizeInfo * CloneQuantizeInfo(const QuantizeInfo *)
MagickExport MagickSizeType GetMagickResourceLimit(const ResourceType type)
Definition: resource.c:842
#define ThrowBinaryException(severity, tag, context)
Definition: exception-private.h:29
DitherMethod
Definition: quantize.h:28
MagickExport void * AcquireQuantumMemory(const size_t count, const size_t quantum)
Definition: memory.c:665
unsigned short Quantum
Definition: magick-type.h:89
MagickExport MagickBooleanType PosterizeImage(Image *image, const size_t levels, const MagickBooleanType dither)
Definition: quantize.c:2287
ssize_t MagickOffsetType
Definition: magick-type.h:139
static int GetOpenMPThreadId(void)
Definition: thread-private.h:120