MagickCore
6.9.10
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:2114
static MagickBooleanType ClassifyImageColors(CubeInfo *, const Image *, ExceptionInfo *)
Definition: quantize.c:728
NodeInfo nodes[NodesInAList]
Definition: histogram.c:94
#define QuantumScale
Definition: magick-type.h:120
#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:2992
MagickExport QuantizeInfo * DestroyQuantizeInfo(QuantizeInfo *quantize_info)
Definition: quantize.c:1350
ErrorInfo error
Definition: image.h:258
MagickExport MagickBooleanType RemapImage(const QuantizeInfo *quantize_info, Image *image, const Image *remap_image)
Definition: quantize.c:3071
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:2893
NodeInfo * nodes
Definition: quantize.c:244
MagickExport MagickBooleanType PosterizeImageChannel(Image *image, const ChannelType channel, const size_t levels, const MagickBooleanType dither)
Definition: quantize.c:2294
size_t colors
Definition: histogram.c:112
static double ConstrainPixelIntensity(double x)
Definition: quantize.c:3214
MagickExport MagickBooleanType PosterizeImage(Image *, const size_t, const MagickBooleanType)
MagickExport MemoryInfo * AcquireVirtualMemory(const size_t count, const size_t quantum)
Definition: memory.c:593
@ DirectClass
Definition: magick-type.h:187
@ UndefinedDitherMethod
Definition: quantize.h:29
ssize_t x
Definition: histogram.c:106
@ BlueChannel
Definition: magick-type.h:165
#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:1648
Definition: histogram.c:91
@ UndefinedColorspace
Definition: colorspace.h:27
@ RedChannel
Definition: magick-type.h:160
MagickBooleanType dither
Definition: image.h:415
static NodeInfo * GetNodeInfo(CubeInfo *, const size_t, const size_t, NodeInfo *)
Definition: quantize.c:2039
#define SetPixelOpacity(pixel, value)
Definition: pixel-accessor.h:81
const MagickExport char * GetImageOption(const ImageInfo *image_info, const char *key)
Definition: option.c:1949
ChannelType
Definition: magick-type.h:157
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:171
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:1447
MagickExport QuantizeInfo * DestroyQuantizeInfo(QuantizeInfo *)
Definition: quantize.c:1350
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:1267
static MagickBooleanType IssRGBCompatibleColorspace(const ColorspaceType colorspace)
Definition: colorspace-private.h:121
#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:2845
MagickBooleanType measure_error
Definition: quantize.h:50
MagickExport size_t GetNumberColors(const Image *image, FILE *file, ExceptionInfo *exception)
Definition: histogram.c:1171
size_t columns
Definition: image.h:174
MagickExport MagickBooleanType AcquireImageColormap(Image *image, const size_t colors)
Definition: colormap.c:102
#define SetPixelGreen(pixel, value)
Definition: pixel-accessor.h:77
@ SouthGravity
Definition: geometry.h:89
size_t MagickSizeType
Definition: magick-type.h:136
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:2700
static CubeInfo * GetCubeInfo(const QuantizeInfo *, const size_t, const size_t)
Definition: quantize.c:1934
#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:479
Definition: cache-view.c:65
#define MaxNodes
Definition: quantize.c:213
@ EastGravity
Definition: geometry.h:87
MagickExport void GetQuantizeInfo(QuantizeInfo *quantize_info)
Definition: quantize.c:2227
#define ThrowBinaryImageException(severity, tag, context)
Definition: exception-private.h:35
MagickExport MagickBooleanType SyncImage(Image *image)
Definition: image.c:3690
MagickRealType pruning_threshold
Definition: quantize.c:270
void * client_data
Definition: image.h:267
@ MagickTrue
Definition: magick-type.h:194
static Quantum PixelPacketIntensity(const PixelPacket *pixel)
Definition: pixel-accessor.h:219
MagickBooleanType dither
Definition: quantize.h:44
#define IsNaN(a)
Definition: magick-type.h:214
#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:2274
static Quantum ClampToQuantum(const MagickRealType quantum)
Definition: quantum.h:88
MagickExport MagickBooleanType CompressImageColormap(Image *)
@ WestGravity
Definition: geometry.h:85
MagickSizeType span
Definition: quantize.c:313
@ TraceEvent
Definition: log.h:38
MagickExport MagickBooleanType QuantizeImage(const QuantizeInfo *quantize_info, Image *image)
Definition: quantize.c:2592
MagickExport void * AcquireMagickMemory(const size_t size)
Definition: memory.c:473
#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:1388
size_t free_nodes
Definition: histogram.c:113
static DoublePixelPacket ** AcquirePixelThreadSet(const size_t count)
Definition: quantize.c:1401
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:100
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:77
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:29
DoublePixelPacket target
Definition: quantize.c:266
ColorspaceType
Definition: colorspace.h:25
double red
Definition: pixel.h:87
@ OpacityChannel
Definition: magick-type.h:168
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:35
static MagickBooleanType SetGrayscaleImage(Image *)
Definition: quantize.c:3243
@ BilevelType
Definition: image.h:52
@ MagickFalse
Definition: magick-type.h:193
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:427
#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:450
#define GetPixelOpacity(pixel)
Definition: pixel-accessor.h:49
Nodes * node_queue
Definition: histogram.c:119
MagickExport Image * GetNextImageInList(const Image *images)
Definition: list.c:771
double green
Definition: pixel.h:88
NodeInfo * root
Definition: histogram.c:103
@ DefaultChannels
Definition: magick-type.h:181
MagickExport QuantizeInfo * CloneQuantizeInfo(const QuantizeInfo *quantize_info)
Definition: quantize.c:1008
static void PruneChild(CubeInfo *cube_info, const NodeInfo *node_info)
Definition: quantize.c:2444
Quantum opacity
Definition: pixel.h:146
MagickExport MagickBooleanType IsPaletteImage(const Image *image, ExceptionInfo *exception)
Definition: histogram.c:982
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 size_t DefineImageColormap(Image *, CubeInfo *, NodeInfo *)
Definition: quantize.c:1200
static ssize_t CacheOffset(CubeInfo *cube_info, const DoublePixelPacket *pixel)
Definition: quantize.c:1428
static int MagickRealTypeCompare(const void *error_p, const void *error_q)
Definition: quantize.c:2977
#define QuantumRange
Definition: magick-type.h:86
@ CMYKColorspace
Definition: colorspace.h:39
MagickExport MagickProgressMonitor SetImageProgressMonitor(Image *image, const MagickProgressMonitor progress_monitor, void *client_data)
Definition: monitor.c:194
size_t rows
Definition: image.h:175
const MagickExport 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
Quantum green
Definition: pixel.h:144
MagickExport void GetQuantizeInfo(QuantizeInfo *)
Definition: quantize.c:2227
struct _QuantizeInfo QuantizeInfo
DitherMethod dither_method
Definition: quantize.h:56
MagickExport size_t GetImageListLength(const Image *images)
Definition: list.c:696
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:1737
MagickExport void * GetVirtualMemoryBlob(const MemoryInfo *memory_info)
Definition: memory.c:971
MagickRealType weights[ErrorQueueLength]
Definition: quantize.c:294
MagickExport MemoryInfo * RelinquishVirtualMemory(MemoryInfo *memory_info)
Definition: memory.c:1144
size_t signature
Definition: image.h:307
MagickBooleanType
Definition: magick-type.h:191
@ LinearGRAYColorspace
Definition: colorspace.h:62
static void PruneToCubeDepth(CubeInfo *, const NodeInfo *)
Definition: quantize.c:2545
MagickExport QuantizeInfo * AcquireQuantizeInfo(const ImageInfo *)
MagickExport MagickBooleanType CompressImageColormap(Image *image)
Definition: quantize.c:1152
ssize_t transparent_index
Definition: quantize.c:260
MagickExport void * RelinquishMagickMemory(void *memory)
Definition: memory.c:1077
Definition: exception.h:102
MagickExport MagickBooleanType RemapImages(const QuantizeInfo *, Image *, const Image *)
Definition: quantize.c:3135
#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:125
static void PruneLevel(CubeInfo *, const NodeInfo *)
Definition: quantize.c:2500
@ GRAYColorspace
Definition: colorspace.h:29
static void ClosestColor(const Image *, CubeInfo *, const NodeInfo *)
Definition: quantize.c:1057
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:715
@ PseudoClass
Definition: magick-type.h:188
DoublePixelPacket error[ErrorQueueLength]
Definition: quantize.c:291
ColorspaceType colorspace
Definition: quantize.h:47
MagickExport MagickBooleanType TransformImageColorspace(Image *image, const ColorspaceType colorspace)
Definition: colorspace.c:1448
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:466
size_t signature
Definition: quantize.h:53
MagickExport MagickBooleanType RemapImages(const QuantizeInfo *quantize_info, Image *images, const Image *remap_image)
Definition: quantize.c:3135
static MagickBooleanType DitherImage(Image *, CubeInfo *)
Definition: quantize.c:1862
#define MagickEpsilon
Definition: magick-type.h:115
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:1068
#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:3223
MagickExport QuantizeInfo * AcquireQuantizeInfo(const ImageInfo *image_info)
Definition: quantize.c:363
#define GetPixelGreen(pixel)
Definition: pixel-accessor.h:43
MagickExport MagickBooleanType SetImageMonochrome(Image *image, ExceptionInfo *exception)
Definition: colorspace.c:1361
MagickRealType next_threshold
Definition: quantize.c:271
#define MaxMap
Definition: magick-type.h:78
Definition: histogram.c:73
MagickExport MagickBooleanType LogMagickEvent(const LogEventType type, const char *module, const char *function, const size_t line, const char *format,...)
Definition: log.c:1399
NodeInfo * next_node
Definition: quantize.c:279
@ ForgetGravity
Definition: geometry.h:81
#define CacheShift
Definition: quantize.c:208
const MagickExport char * GetImageArtifact(const Image *image, const char *artifact)
Definition: artifact.c:266
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:30
@ NoDitherMethod
Definition: quantize.h:30
@ NorthGravity
Definition: geometry.h:83
@ MagickDitherOptions
Definition: option.h:49
static void DestroyCubeInfo(CubeInfo *)
Definition: quantize.c:1304
@ GreenChannel
Definition: magick-type.h:163
static double StringToDoubleInterval(const char *string, const double interval)
Definition: string-private.h:48
MagickRealType distance
Definition: quantize.c:269
MagickExport QuantizeInfo * CloneQuantizeInfo(const QuantizeInfo *)
MagickExport MagickSizeType GetMagickResourceLimit(const ResourceType type)
Definition: resource.c:771
#define ThrowBinaryException(severity, tag, context)
Definition: exception-private.h:29
DitherMethod
Definition: quantize.h:27
MagickExport void * AcquireQuantumMemory(const size_t count, const size_t quantum)
Definition: memory.c:544
unsigned short Quantum
Definition: magick-type.h:85
MagickExport MagickBooleanType PosterizeImage(Image *image, const size_t levels, const MagickBooleanType dither)
Definition: quantize.c:2284
ssize_t MagickOffsetType
Definition: magick-type.h:135
static int GetOpenMPThreadId(void)
Definition: thread-private.h:120