quantize.c File Reference

#include "magick/studio.h"
#include "magick/cache-view.h"
#include "magick/color.h"
#include "magick/color-private.h"
#include "magick/colorspace.h"
#include "magick/enhance.h"
#include "magick/exception.h"
#include "magick/exception-private.h"
#include "magick/histogram.h"
#include "magick/image.h"
#include "magick/image-private.h"
#include "magick/list.h"
#include "magick/memory_.h"
#include "magick/monitor.h"
#include "magick/monitor-private.h"
#include "magick/option.h"
#include "magick/pixel-private.h"
#include "magick/quantize.h"
#include "magick/quantum.h"
#include "magick/string_.h"
Include dependency graph for quantize.c:

Go to the source code of this file.

Data Structures

struct  _RealPixelPacket
struct  _NodeInfo
struct  _Nodes
struct  _CubeInfo

Defines

#define CacheShift   2
#define ErrorQueueLength   16
#define MaxNodes   266817
#define MaxTreeDepth   8
#define NodesInAList   1920
#define AssignImageTag   "Assign/Image"
#define ClassifyImageTag   "Classify/Image"
#define DitherImageTag   "Dither/Image"
#define DitherImageTag   "Dither/Image"
#define ReduceImageTag   "Reduce/Image"

Typedefs

typedef struct _RealPixelPacket RealPixelPacket
typedef struct _NodeInfo NodeInfo
typedef struct _Nodes Nodes
typedef struct _CubeInfo CubeInfo

Functions

static CubeInfoGetCubeInfo (const QuantizeInfo *, const unsigned long, const unsigned long)
static NodeInfoGetNodeInfo (CubeInfo *, const unsigned long, const unsigned long, NodeInfo *)
static MagickBooleanType AssignImageColors (Image *, CubeInfo *)
static MagickBooleanType ClassifyImageColors (CubeInfo *, const Image *, ExceptionInfo *)
static MagickBooleanType DitherImage (Image *, CubeInfo *)
static MagickBooleanType SetGrayscaleImage (Image *)
static unsigned long DefineImageColormap (Image *, CubeInfo *, NodeInfo *)
static void ClosestColor (const Image *, CubeInfo *, const NodeInfo *)
static void DestroyCubeInfo (CubeInfo *)
static void PruneLevel (const Image *, CubeInfo *, const NodeInfo *)
static void PruneToCubeDepth (const Image *, CubeInfo *, const NodeInfo *)
static void ReduceImageColors (const Image *, CubeInfo *)
MagickExport QuantizeInfoAcquireQuantizeInfo (const ImageInfo *image_info)
static void AssociateAlphaPixel (const CubeInfo *cube_info, const PixelPacket *pixel, RealPixelPacket *alpha_pixel)
static Quantum ClipToQuantum (const MagickRealType value)
static unsigned long ColorToNodeId (const CubeInfo *cube_info, const RealPixelPacket *pixel, unsigned long index)
static MagickBooleanType IsSameColor (const Image *image, const PixelPacket *p, const PixelPacket *q)
static void SetAssociatedAlpha (const Image *image, CubeInfo *cube_info)
MagickExport QuantizeInfoCloneQuantizeInfo (const QuantizeInfo *quantize_info)
MagickExport MagickBooleanType CompressImageColormap (Image *image)
MagickExport QuantizeInfoDestroyQuantizeInfo (QuantizeInfo *quantize_info)
static MagickBooleanType FloydSteinbergDither (Image *image, CubeInfo *cube_info)
static MagickBooleanType RiemersmaDither (Image *, CacheView *, CubeInfo *, const unsigned int)
static void Riemersma (Image *image, CacheView *image_view, CubeInfo *cube_info, const unsigned long level, const unsigned int direction)
static long MagickMax (const long x, const long y)
static long MagickMin (const long x, const long y)
MagickExport MagickBooleanType GetImageQuantizeError (Image *image)
MagickExport void GetQuantizeInfo (QuantizeInfo *quantize_info)
MagickExport MagickBooleanType PosterizeImage (Image *image, const unsigned long levels, const MagickBooleanType dither)
static void PruneChild (const Image *image, CubeInfo *cube_info, const NodeInfo *node_info)
MagickExport MagickBooleanType QuantizeImage (const QuantizeInfo *quantize_info, Image *image)
MagickExport MagickBooleanType QuantizeImages (const QuantizeInfo *quantize_info, Image *images)
static void Reduce (const Image *image, CubeInfo *cube_info, const NodeInfo *node_info)
MagickExport MagickBooleanType RemapImage (const QuantizeInfo *quantize_info, Image *image, const Image *remap_image)
MagickExport MagickBooleanType RemapImages (const QuantizeInfo *quantize_info, Image *images, const Image *remap_image)
static int IntensityCompare (const void *x, const void *y)

Define Documentation

#define AssignImageTag   "Assign/Image"
#define CacheShift   2

Definition at line 201 of file quantize.c.

Referenced by FloydSteinbergDither(), GetCubeInfo(), and RiemersmaDither().

#define ClassifyImageTag   "Classify/Image"

Referenced by ClassifyImageColors().

#define DitherImageTag   "Dither/Image"
#define DitherImageTag   "Dither/Image"
#define ErrorQueueLength   16

Definition at line 202 of file quantize.c.

Referenced by DitherImage(), GetCubeInfo(), and RiemersmaDither().

#define MaxNodes   266817

Definition at line 203 of file quantize.c.

Referenced by ClassifyImageColors().

#define MaxTreeDepth   8

Definition at line 204 of file quantize.c.

#define NodesInAList   1920

Definition at line 205 of file quantize.c.

#define ReduceImageTag   "Reduce/Image"

Referenced by ReduceImageColors().


Typedef Documentation

typedef struct _CubeInfo CubeInfo
typedef struct _NodeInfo NodeInfo
typedef struct _Nodes Nodes

Function Documentation

MagickExport QuantizeInfo* AcquireQuantizeInfo ( const ImageInfo image_info  ) 
static MagickBooleanType AssignImageColors ( Image image,
CubeInfo cube_info 
) [static]
static void AssociateAlphaPixel ( const CubeInfo cube_info,
const PixelPacket pixel,
RealPixelPacket alpha_pixel 
) [inline, static]
static MagickBooleanType ClassifyImageColors ( CubeInfo cube_info,
const Image image,
ExceptionInfo exception 
)
static Quantum ClipToQuantum ( const MagickRealType  value  )  [inline, static]

Definition at line 445 of file quantize.c.

References QuantumRange.

Referenced by ColorToNodeId(), FloydSteinbergDither(), and RiemersmaDither().

MagickExport QuantizeInfo* CloneQuantizeInfo ( const QuantizeInfo quantize_info  ) 
static void ClosestColor ( const Image image,
CubeInfo cube_info,
const NodeInfo node_info 
) [static]
static unsigned long ColorToNodeId ( const CubeInfo cube_info,
const RealPixelPacket pixel,
unsigned long  index 
) [inline, static]
MagickExport MagickBooleanType CompressImageColormap ( Image image  ) 
static unsigned long DefineImageColormap ( Image image,
CubeInfo cube_info,
NodeInfo node_info 
) [static]
static void DestroyCubeInfo ( CubeInfo cube_info  ) 
MagickExport QuantizeInfo* DestroyQuantizeInfo ( QuantizeInfo quantize_info  ) 
static MagickBooleanType DitherImage ( Image image,
CubeInfo cube_info 
)
static MagickBooleanType FloydSteinbergDither ( Image image,
CubeInfo cube_info 
) [static]
static CubeInfo * GetCubeInfo ( const QuantizeInfo quantize_info,
const unsigned long  depth,
const unsigned long  maximum_colors 
) [static]
MagickExport MagickBooleanType GetImageQuantizeError ( Image image  ) 
static NodeInfo * GetNodeInfo ( CubeInfo cube_info,
const unsigned long  id,
const unsigned long  level,
NodeInfo parent 
) [static]
MagickExport void GetQuantizeInfo ( QuantizeInfo quantize_info  ) 
static int IntensityCompare ( const void *  x,
const void *  y 
) [static]

Definition at line 2958 of file quantize.c.

References PixelIntensityToQuantum().

Referenced by SetGrayscaleImage().

static MagickBooleanType IsSameColor ( const Image image,
const PixelPacket p,
const PixelPacket q 
) [inline, static]
static long MagickMax ( const long  x,
const long  y 
) [inline, static]

Definition at line 1740 of file quantize.c.

Referenced by DitherImage(), and PosterizeImage().

static long MagickMin ( const long  x,
const long  y 
) [inline, static]

Definition at line 1747 of file quantize.c.

Referenced by PosterizeImage().

MagickExport MagickBooleanType PosterizeImage ( Image image,
const unsigned long  levels,
const MagickBooleanType  dither 
)
static void PruneChild ( const Image image,
CubeInfo cube_info,
const NodeInfo node_info 
) [static]
static void PruneLevel ( const Image image,
CubeInfo cube_info,
const NodeInfo node_info 
)
static void PruneToCubeDepth ( const Image image,
CubeInfo cube_info,
const NodeInfo node_info 
)
MagickExport MagickBooleanType QuantizeImage ( const QuantizeInfo quantize_info,
Image image 
)
MagickExport MagickBooleanType QuantizeImages ( const QuantizeInfo quantize_info,
Image images 
)
static void Reduce ( const Image image,
CubeInfo cube_info,
const NodeInfo node_info 
) [static]
static void ReduceImageColors ( const Image image,
CubeInfo cube_info 
)
MagickExport MagickBooleanType RemapImage ( const QuantizeInfo quantize_info,
Image image,
const Image remap_image 
)
MagickExport MagickBooleanType RemapImages ( const QuantizeInfo quantize_info,
Image images,
const Image remap_image 
)
static void Riemersma ( Image image,
CacheView image_view,
CubeInfo cube_info,
const unsigned long  level,
const unsigned int  direction 
) [static]

Definition at line 1519 of file quantize.c.

References EastGravity, NorthGravity, RiemersmaDither(), SouthGravity, and WestGravity.

Referenced by DitherImage().

static MagickBooleanType RiemersmaDither ( Image image,
CacheView image_view,
CubeInfo cube_info,
const unsigned int  direction 
) [static]
static void SetAssociatedAlpha ( const Image image,
CubeInfo cube_info 
) [inline, static]
static MagickBooleanType SetGrayscaleImage ( Image image  ) 

Generated on 19 Nov 2009 for MagickCore by  doxygen 1.6.1