MagickCore  6.9.10
Convert, Edit, Or Compose Bitmap Images
histogram.h
Go to the documentation of this file.
1 /*
2  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
3  dedicated to making software imaging solutions freely available.
4 
5  You may not use this file except in compliance with the License.
6  obtain a copy of the License at
7 
8  https://imagemagick.org/script/license.php
9 
10  Unless required by applicable law or agreed to in writing, software
11  distributed under the License is distributed on an "AS IS" BASIS,
12  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  See the License for the specific language governing permissions and
14  limitations under the License.
15 
16  MagickCore histogram methods.
17 */
18 #ifndef MAGICKCORE_HISTOGRAM_H
19 #define MAGICKCORE_HISTOGRAM_H
20 
21 #if defined(__cplusplus) || defined(c_plusplus)
22 extern "C" {
23 #endif
24 
25 typedef struct _ColorPacket
26 {
29 
32 
36 
38  *GetImageHistogram(const Image *,size_t *,ExceptionInfo *);
39 
40 extern MagickExport Image
42 
47  MinMaxStretchImage(Image *,const ChannelType,const double,const double);
48 
49 extern MagickExport size_t
50  GetNumberColors(const Image *,FILE *,ExceptionInfo *);
51 
52 #if defined(__cplusplus) || defined(c_plusplus)
53 }
54 #endif
55 
56 #endif
_Image::colorspace
ColorspaceType colorspace
Definition: image.h:158
_Nodes::nodes
NodeInfo nodes[NodesInAList]
Definition: histogram.c:94
MagickExport
#define MagickExport
Definition: method-attribute.h:80
ConcatenateColorComponent
MagickExport void ConcatenateColorComponent(const MagickPixelPacket *pixel, const ChannelType channel, const ComplianceType compliance, char *tuple)
Definition: color.c:1125
_Image::debug
MagickBooleanType debug
Definition: image.h:290
_Image::filename
char filename[MaxTextExtent]
Definition: image.h:278
_Image::progress_monitor
MagickProgressMonitor progress_monitor
Definition: image.h:264
_Nodes::next
struct _Nodes * next
Definition: histogram.c:96
CloneImage
MagickExport Image * CloneImage(const Image *image, const size_t columns, const size_t rows, const MagickBooleanType detach, ExceptionInfo *exception)
Definition: image.c:788
_Image::matte
MagickBooleanType matte
Definition: image.h:171
SetImageProgress
MagickExport MagickBooleanType SetImageProgress(const Image *image, const char *tag, const MagickOffsetType offset, const MagickSizeType extent)
Definition: monitor.c:136
_CubeInfo::colors
size_t colors
Definition: histogram.c:112
_ColorPacket
Definition: histogram.h:26
SyncChannels
@ SyncChannels
Definition: magick-type.h:180
_MagickPixelPacket::red
MagickRealType red
Definition: pixel.h:122
DirectClass
@ DirectClass
Definition: magick-type.h:187
_CubeInfo::x
ssize_t x
Definition: histogram.c:106
BlueChannel
@ BlueChannel
Definition: magick-type.h:165
Nodes
struct _Nodes Nodes
GetMagickModule
#define GetMagickModule()
Definition: log.h:29
DestroyCacheView
MagickExport CacheView * DestroyCacheView(CacheView *cache_view)
Definition: cache-view.c:256
GetMagickPixelPacket
MagickExport void GetMagickPixelPacket(const Image *image, MagickPixelPacket *pixel)
Definition: pixel.c:2242
_NodeInfo::extent
size_t extent
Definition: histogram.c:82
DefineImageHistogram
static void DefineImageHistogram(const Image *image, NodeInfo *node_info, ColorPacket **histogram)
Definition: histogram.c:345
_NodeInfo::level
size_t level
Definition: histogram.c:88
_Nodes
Definition: histogram.c:92
MagickStatusType
unsigned int MagickStatusType
Definition: magick-type.h:127
RedChannel
@ RedChannel
Definition: magick-type.h:160
statistic.h
ChannelType
ChannelType
Definition: magick-type.h:158
MagickCoreSignature
#define MagickCoreSignature
Definition: method-attribute.h:86
GetCacheViewVirtualIndexQueue
MagickExport const IndexPacket * GetCacheViewVirtualIndexQueue(const CacheView *cache_view)
Definition: cache-view.c:638
GetColorTuple
MagickExport void GetColorTuple(const MagickPixelPacket *pixel, const MagickBooleanType hex, char *tuple)
Definition: color.c:1534
ResizeQuantumMemory
MagickExport void * ResizeQuantumMemory(void *memory, const size_t count, const size_t quantum)
Definition: memory.c:1316
histogram.h
IndexChannel
@ IndexChannel
Definition: magick-type.h:171
_ColorPacket::count
MagickSizeType count
Definition: histogram.h:34
magick_restrict
#define magick_restrict
Definition: MagickCore.h:41
SVGCompliance
@ SVGCompliance
Definition: color.h:33
UniqueColorsToImage
static void UniqueColorsToImage(Image *unique_image, CacheView *unique_view, CubeInfo *cube_info, const NodeInfo *node_info, ExceptionInfo *exception)
Definition: histogram.c:1288
GetNumberColors
MagickExport size_t GetNumberColors(const Image *image, FILE *file, ExceptionInfo *exception)
Definition: histogram.c:1171
_Image::columns
size_t columns
Definition: image.h:174
NodeInfo
struct _NodeInfo NodeInfo
MagickSizeType
size_t MagickSizeType
Definition: magick-type.h:136
IndexPacket
Quantum IndexPacket
Definition: pixel.h:129
CheckImageColors
static MagickBooleanType CheckImageColors(const Image *image, ExceptionInfo *exception, size_t max_colors)
Definition: histogram.c:649
ResourceLimitError
@ ResourceLimitError
Definition: exception.h:55
_PixelPacket::blue
Quantum blue
Definition: pixel.h:143
_CacheView
Definition: cache-view.c:66
string_.h
MaximumUniqueColors
#define MaximumUniqueColors
enhance.h
MagickTrue
@ MagickTrue
Definition: magick-type.h:194
QueueCacheViewAuthenticPixels
MagickExport PixelPacket * QueueCacheViewAuthenticPixels(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:883
semaphore.h
GetPixelIndex
#define GetPixelIndex(indexes)
Definition: pixel-accessor.h:44
SyncCacheViewAuthenticPixels
MagickExport MagickBooleanType SyncCacheViewAuthenticPixels(CacheView *magick_restrict cache_view, ExceptionInfo *exception)
Definition: cache-view.c:1000
GetNodeInfo
static NodeInfo * GetNodeInfo(CubeInfo *, const size_t)
Definition: histogram.c:594
_MagickPixelPacket::blue
MagickRealType blue
Definition: pixel.h:124
CopyMagickString
MagickExport size_t CopyMagickString(char *destination, const char *source, const size_t length)
Definition: string.c:752
ClampToQuantum
static Quantum ClampToQuantum(const MagickRealType quantum)
Definition: quantum.h:88
_CubeInfo::progress
MagickOffsetType progress
Definition: histogram.c:109
hashmap.h
TraceEvent
@ TraceEvent
Definition: log.h:38
AcquireMagickMemory
MagickExport void * AcquireMagickMemory(const size_t size)
Definition: memory.c:473
LevelImageChannel
MagickExport MagickBooleanType LevelImageChannel(Image *image, const ChannelType channel, const double black_point, const double white_point, const double gamma)
Definition: enhance.c:2954
EvaluateImageTag
#define EvaluateImageTag
IdentifyPaletteImage
MagickExport MagickBooleanType IdentifyPaletteImage(const Image *image, ExceptionInfo *exception)
Definition: histogram.c:780
HistogramImageTag
#define HistogramImageTag
FormatLocaleFile
MagickExport ssize_t FormatLocaleFile(FILE *file, const char *magick_restrict format,...)
Definition: locale.c:407
_CubeInfo::free_nodes
size_t free_nodes
Definition: histogram.c:113
GetCubeInfo
static CubeInfo * GetCubeInfo(void)
Definition: histogram.c:488
_Image
Definition: image.h:153
_CubeInfo
Definition: histogram.c:101
GetCacheViewAuthenticIndexQueue
MagickExport IndexPacket * GetCacheViewAuthenticIndexQueue(CacheView *cache_view)
Definition: cache-view.c:564
QueryMagickColorname
MagickExport MagickBooleanType QueryMagickColorname(const Image *image, const MagickPixelPacket *color, const ComplianceType compliance, char *name, ExceptionInfo *exception)
Definition: color.c:2983
UniqueImageColors
MagickExport Image * UniqueImageColors(const Image *, ExceptionInfo *)
Definition: histogram.c:1354
X11Compliance
@ X11Compliance
Definition: color.h:34
MinMaxStretchImage
MagickExport MagickBooleanType MinMaxStretchImage(Image *, const ChannelType, const double, const double)
Definition: histogram.c:1043
_NodeInfo::child
struct _NodeInfo * child[16]
Definition: histogram.c:75
_MagickPixelPacket::colorspace
ColorspaceType colorspace
Definition: pixel.h:110
_MagickPixelPacket
Definition: pixel.h:105
IsHistogramImage
MagickExport MagickBooleanType IsHistogramImage(const Image *, ExceptionInfo *)
_NodeInfo::list
ColorPacket * list
Definition: histogram.c:79
OpacityChannel
@ OpacityChannel
Definition: magick-type.h:168
_Image::colors
size_t colors
Definition: image.h:177
GetImageChannelRange
MagickExport MagickBooleanType GetImageChannelRange(const Image *image, const ChannelType channel, double *minima, double *maxima, ExceptionInfo *exception)
Definition: statistic.c:2229
quantize.h
_Image::exception
ExceptionInfo exception
Definition: image.h:287
NodesInAList
#define NodesInAList
Definition: histogram.c:68
splay-tree.h
MagickFalse
@ MagickFalse
Definition: magick-type.h:193
MagickProgressMonitor
MagickBooleanType(* MagickProgressMonitor)(const char *, const MagickOffsetType, const MagickSizeType, void *)
Definition: monitor.h:26
pixel-private.h
image.h
_CubeInfo::node_queue
Nodes * node_queue
Definition: histogram.c:119
_CubeInfo::root
NodeInfo * root
Definition: histogram.c:103
DestroyColorCube
static void DestroyColorCube(const Image *, NodeInfo *)
Definition: histogram.c:447
registry.h
MaxTreeDepth
#define MaxTreeDepth
Definition: histogram.c:67
IsPaletteImage
MagickExport MagickBooleanType IsPaletteImage(const Image *image, ExceptionInfo *exception)
Definition: histogram.c:982
color-private.h
MinMaxStretchImage
MagickExport MagickBooleanType MinMaxStretchImage(Image *image, const ChannelType channel, const double black_value, const double white_value)
Definition: histogram.c:1043
UniqueImageColors
MagickExport Image * UniqueImageColors(const Image *image, ExceptionInfo *exception)
Definition: histogram.c:1354
_PixelPacket::red
Quantum red
Definition: pixel.h:145
CMYKColorspace
@ CMYKColorspace
Definition: colorspace.h:39
_Image::rows
size_t rows
Definition: image.h:175
_PixelPacket::green
Quantum green
Definition: pixel.h:144
cache-view.h
SetMagickPixelPacket
static void SetMagickPixelPacket(const Image *image, const PixelPacket *color, const IndexPacket *index, MagickPixelPacket *pixel)
Definition: pixel-private.h:78
_NodeInfo::number_unique
MagickSizeType number_unique
Definition: histogram.c:85
GetImageHistogram
MagickExport ColorPacket * GetImageHistogram(const Image *image, size_t *number_colors, ExceptionInfo *exception)
Definition: histogram.c:536
IsPaletteImage
MagickExport MagickBooleanType IsPaletteImage(const Image *, ExceptionInfo *)
_Image::signature
size_t signature
Definition: image.h:307
MagickBooleanType
MagickBooleanType
Definition: magick-type.h:192
ConcatenateMagickString
MagickExport size_t ConcatenateMagickString(char *destination, const char *source, const size_t length)
Definition: string.c:424
IsMagickColorEqual
static MagickBooleanType IsMagickColorEqual(const MagickPixelPacket *p, const MagickPixelPacket *q)
Definition: color-private.h:63
RelinquishMagickMemory
MagickExport void * RelinquishMagickMemory(void *memory)
Definition: memory.c:1077
_ExceptionInfo
Definition: exception.h:103
GetNumberColors
MagickExport size_t GetNumberColors(const Image *, FILE *, ExceptionInfo *)
Definition: histogram.c:1171
ColorToNodeId
static size_t ColorToNodeId(const Image *image, const MagickPixelPacket *pixel, size_t index)
Definition: histogram.c:162
studio.h
_Image::storage_class
ClassType storage_class
Definition: image.h:155
_CubeInfo::node_info
NodeInfo * node_info
Definition: histogram.c:116
monitor-private.h
prepress.h
AcquireVirtualCacheView
MagickExport CacheView * AcquireVirtualCacheView(const Image *image, ExceptionInfo *exception)
Definition: cache-view.c:153
PseudoClass
@ PseudoClass
Definition: magick-type.h:188
DestroyCubeInfo
static CubeInfo * DestroyCubeInfo(const Image *image, CubeInfo *cube_info)
Definition: histogram.c:402
DestroyImage
MagickExport Image * DestroyImage(Image *image)
Definition: image.c:1187
GetImageHistogram
MagickExport ColorPacket * GetImageHistogram(const Image *, size_t *, ExceptionInfo *)
Definition: histogram.c:536
IsHistogramImage
MagickExport MagickBooleanType IsHistogramImage(const Image *image, ExceptionInfo *exception)
Definition: histogram.c:816
memory_.h
_MagickPixelPacket::matte
MagickBooleanType matte
Definition: pixel.h:113
_ColorPacket::pixel
PixelPacket pixel
Definition: histogram.h:28
MagickEpsilon
#define MagickEpsilon
Definition: magick-type.h:115
exception-private.h
ThrowMagickException
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
exception.h
SetImageStorageClass
MagickExport MagickBooleanType SetImageStorageClass(Image *image, const ClassType storage_class)
Definition: image.c:2610
CubeInfo
struct _CubeInfo CubeInfo
UniqueColorsImageTag
#define UniqueColorsImageTag
HistogramCompare
static int HistogramCompare(const void *x, const void *y)
Definition: histogram.c:1150
list.h
_NodeInfo
Definition: histogram.c:74
LogMagickEvent
MagickExport MagickBooleanType LogMagickEvent(const LogEventType type, const char *module, const char *function, const size_t line, const char *format,...)
Definition: log.c:1399
MaxTextExtent
#define MaxTextExtent
Definition: method-attribute.h:89
GetCacheViewVirtualPixels
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
InheritException
MagickExport void InheritException(ExceptionInfo *exception, const ExceptionInfo *relative)
Definition: exception.c:633
IdentifyPaletteImage
MagickExport MagickBooleanType IdentifyPaletteImage(const Image *, ExceptionInfo *)
_MagickPixelPacket::opacity
MagickRealType opacity
Definition: pixel.h:125
ColorPacket
struct _ColorPacket ColorPacket
_MagickPixelPacket::green
MagickRealType green
Definition: pixel.h:123
GreenChannel
@ GreenChannel
Definition: magick-type.h:163
ClassifyImageColors
static CubeInfo * ClassifyImageColors(const Image *image, ExceptionInfo *exception)
Definition: histogram.c:178
_PixelPacket
Definition: pixel.h:132
AcquireQuantumMemory
MagickExport void * AcquireQuantumMemory(const size_t count, const size_t quantum)
Definition: memory.c:544
MagickOffsetType
ssize_t MagickOffsetType
Definition: magick-type.h:135
_ColorPacket::index
IndexPacket index
Definition: histogram.h:31