MagickCore  6.9.12-38
Convert, Edit, Or Compose Bitmap Images
histogram.h
Go to the documentation of this file.
1 /*
2  Copyright 1999-2021 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. You may
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:1152
_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:771
TransparentOpacity
#define TransparentOpacity
Definition: image.h:28
_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
OpaqueOpacity
#define OpaqueOpacity
Definition: image.h:27
_CubeInfo::colors
size_t colors
Definition: histogram.c:112
_ColorPacket
Definition: histogram.h:26
SyncChannels
@ SyncChannels
Definition: magick-type.h:187
_MagickPixelPacket::red
MagickRealType red
Definition: pixel.h:122
DirectClass
@ DirectClass
Definition: magick-type.h:194
_CubeInfo::x
ssize_t x
Definition: histogram.c:106
BlueChannel
@ BlueChannel
Definition: magick-type.h:172
magick_unreferenced
#define magick_unreferenced(x)
Definition: method-attribute.h:106
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:2233
_NodeInfo::extent
size_t extent
Definition: histogram.c:82
DefineImageHistogram
static void DefineImageHistogram(const Image *image, NodeInfo *node_info, ColorPacket **histogram)
Definition: histogram.c:374
_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:167
statistic.h
ChannelType
ChannelType
Definition: magick-type.h:165
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:1512
ResizeQuantumMemory
MagickExport void * ResizeQuantumMemory(void *memory, const size_t count, const size_t quantum)
Definition: memory.c:1458
histogram.h
IndexChannel
@ IndexChannel
Definition: magick-type.h:178
_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:1320
GetNumberColors
MagickExport size_t GetNumberColors(const Image *image, FILE *file, ExceptionInfo *exception)
Definition: histogram.c:1203
_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:678
IsMagickColorMatch
static MagickBooleanType IsMagickColorMatch(const MagickPixelPacket *p, const MagickPixelPacket *q)
Definition: histogram.c:178
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:201
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
_MagickPixelPacket::index
MagickRealType index
Definition: pixel.h:126
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:623
_MagickPixelPacket::blue
MagickRealType blue
Definition: pixel.h:124
ClampToQuantum
static Quantum ClampToQuantum(const MagickRealType quantum)
Definition: quantum.h:88
_CubeInfo::progress
MagickOffsetType progress
Definition: histogram.c:109
hashmap.h
NoCompliance
@ NoCompliance
Definition: color.h:31
TraceEvent
@ TraceEvent
Definition: log.h:38
AcquireMagickMemory
MagickExport void * AcquireMagickMemory(const size_t size)
Definition: memory.c:552
LevelImageChannel
MagickExport MagickBooleanType LevelImageChannel(Image *image, const ChannelType channel, const double black_point, const double white_point, const double gamma)
Definition: enhance.c:2961
EvaluateImageTag
#define EvaluateImageTag
IdentifyPaletteImage
MagickExport MagickBooleanType IdentifyPaletteImage(const Image *image, ExceptionInfo *exception)
Definition: histogram.c:811
HistogramImageTag
#define HistogramImageTag
FormatLocaleFile
MagickExport ssize_t FormatLocaleFile(FILE *file, const char *magick_restrict format,...)
Definition: locale.c:402
_CubeInfo::free_nodes
size_t free_nodes
Definition: histogram.c:113
ConcatenateMagickString
MagickExport size_t ConcatenateMagickString(char *magick_restrict destination, const char *magick_restrict source, const size_t length)
Definition: string.c:426
GetCubeInfo
static CubeInfo * GetCubeInfo(void)
Definition: histogram.c:517
_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:3081
UniqueImageColors
MagickExport Image * UniqueImageColors(const Image *, ExceptionInfo *)
Definition: histogram.c:1386
MinMaxStretchImage
MagickExport MagickBooleanType MinMaxStretchImage(Image *, const ChannelType, const double, const double)
Definition: histogram.c:1075
_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:175
_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:2234
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:200
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:476
registry.h
MaxTreeDepth
#define MaxTreeDepth
Definition: histogram.c:67
IsPaletteImage
MagickExport MagickBooleanType IsPaletteImage(const Image *image, ExceptionInfo *exception)
Definition: histogram.c:1013
color-private.h
MinMaxStretchImage
MagickExport MagickBooleanType MinMaxStretchImage(Image *image, const ChannelType channel, const double black_value, const double white_value)
Definition: histogram.c:1075
UniqueImageColors
MagickExport Image * UniqueImageColors(const Image *image, ExceptionInfo *exception)
Definition: histogram.c:1386
_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:565
IsPaletteImage
MagickExport MagickBooleanType IsPaletteImage(const Image *, ExceptionInfo *)
_Image::signature
size_t signature
Definition: image.h:307
MagickBooleanType
MagickBooleanType
Definition: magick-type.h:199
RelinquishMagickMemory
MagickExport void * RelinquishMagickMemory(void *memory)
Definition: memory.c:1162
_ExceptionInfo
Definition: exception.h:103
GetNumberColors
MagickExport size_t GetNumberColors(const Image *, FILE *, ExceptionInfo *)
Definition: histogram.c:1203
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
MagickRealType
MagickDoubleType MagickRealType
Definition: magick-type.h:125
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:195
DestroyCubeInfo
static CubeInfo * DestroyCubeInfo(const Image *image, CubeInfo *cube_info)
Definition: histogram.c:431
DestroyImage
MagickExport Image * DestroyImage(Image *image)
Definition: image.c:1177
GetImageHistogram
MagickExport ColorPacket * GetImageHistogram(const Image *, size_t *, ExceptionInfo *)
Definition: histogram.c:565
IsHistogramImage
MagickExport MagickBooleanType IsHistogramImage(const Image *image, ExceptionInfo *exception)
Definition: histogram.c:847
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:1149
exception.h
SetImageStorageClass
MagickExport MagickBooleanType SetImageStorageClass(Image *image, const ClassType storage_class)
Definition: image.c:2601
CubeInfo
struct _CubeInfo CubeInfo
UniqueColorsImageTag
#define UniqueColorsImageTag
CopyMagickString
MagickExport size_t CopyMagickString(char *magick_restrict destination, const char *magick_restrict source, const size_t length)
Definition: string.c:764
HistogramCompare
static int HistogramCompare(const void *x, const void *y)
Definition: histogram.c:1182
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:1420
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
AbsolutePixelValue
static MagickRealType AbsolutePixelValue(const MagickRealType x)
Definition: pixel-accessor.h:106
InheritException
MagickExport void InheritException(ExceptionInfo *exception, const ExceptionInfo *relative)
Definition: exception.c:692
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:170
ClassifyImageColors
static CubeInfo * ClassifyImageColors(const Image *image, ExceptionInfo *exception)
Definition: histogram.c:207
_PixelPacket
Definition: pixel.h:132
AcquireQuantumMemory
MagickExport void * AcquireQuantumMemory(const size_t count, const size_t quantum)
Definition: memory.c:665
MagickOffsetType
ssize_t MagickOffsetType
Definition: magick-type.h:135
_ColorPacket::index
IndexPacket index
Definition: histogram.h:31