Static build of Imagemagick 7.0.5-5

This commit is contained in:
2019-06-12 22:16:24 -07:00
parent 1d2e696b27
commit 870382a304
201 changed files with 29283 additions and 0 deletions

View File

@@ -0,0 +1,171 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore Application Programming Interface declarations.
*/
#ifndef MAGICKCORE_CORE_H
#define MAGICKCORE_CORE_H
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
#if !defined(MAGICKCORE_CONFIG_H)
# define MAGICKCORE_CONFIG_H
# if !defined(vms) && !defined(macintosh)
# include "MagickCore/magick-config.h"
# else
# include "magick-config.h"
# endif
#if defined(_magickcore_const) && !defined(const)
# define const _magickcore_const
#endif
#if defined(_magickcore_inline) && !defined(inline)
# define inline _magickcore_inline
#endif
#if !defined(magick_restrict)
# if !defined(_magickcore_restrict)
# define magick_restrict restrict
# else
# define magick_restrict _magickcore_restrict
# endif
#endif
# if defined(__cplusplus) || defined(c_plusplus)
# undef inline
# endif
#endif
#if __cplusplus > 199711L
#define register
#endif
#define MAGICKCORE_CHECK_VERSION(major,minor,micro) \
((MAGICKCORE_MAJOR_VERSION > (major)) || \
((MAGICKCORE_MAJOR_VERSION == (major)) && \
(MAGICKCORE_MINOR_VERSION > (minor))) || \
((MAGICKCORE_MAJOR_VERSION == (major)) && \
(MAGICKCORE_MINOR_VERSION == (minor)) && \
(MAGICKCORE_MICRO_VERSION >= (micro))))
#include <stdio.h>
#include <stdarg.h>
#include <stdlib.h>
#include <math.h>
#include <sys/types.h>
#include <time.h>
#if defined(WIN32) || defined(WIN64)
# define MAGICKCORE_WINDOWS_SUPPORT
#else
# define MAGICKCORE_POSIX_SUPPORT
#endif
#include "MagickCore/method-attribute.h"
#if defined(MAGICKCORE_NAMESPACE_PREFIX)
# include "MagickCore/methods.h"
#endif
#include "MagickCore/magick-type.h"
#include "MagickCore/animate.h"
#include "MagickCore/annotate.h"
#include "MagickCore/artifact.h"
#include "MagickCore/attribute.h"
#include "MagickCore/blob.h"
#include "MagickCore/cache.h"
#include "MagickCore/cache-view.h"
#include "MagickCore/channel.h"
#include "MagickCore/cipher.h"
#include "MagickCore/client.h"
#include "MagickCore/coder.h"
#include "MagickCore/color.h"
#include "MagickCore/colorspace.h"
#include "MagickCore/colormap.h"
#include "MagickCore/compare.h"
#include "MagickCore/composite.h"
#include "MagickCore/compress.h"
#include "MagickCore/configure.h"
#include "MagickCore/constitute.h"
#include "MagickCore/decorate.h"
#include "MagickCore/delegate.h"
#include "MagickCore/deprecate.h"
#include "MagickCore/display.h"
#include "MagickCore/distort.h"
#include "MagickCore/distribute-cache.h"
#include "MagickCore/draw.h"
#include "MagickCore/effect.h"
#include "MagickCore/enhance.h"
#include "MagickCore/exception.h"
#include "MagickCore/feature.h"
#include "MagickCore/fourier.h"
#include "MagickCore/fx.h"
#include "MagickCore/gem.h"
#include "MagickCore/geometry.h"
#include "MagickCore/histogram.h"
#include "MagickCore/identify.h"
#include "MagickCore/image.h"
#include "MagickCore/image-view.h"
#include "MagickCore/layer.h"
#include "MagickCore/linked-list.h"
#include "MagickCore/list.h"
#include "MagickCore/locale_.h"
#include "MagickCore/log.h"
#include "MagickCore/magic.h"
#include "MagickCore/magick.h"
#include "MagickCore/matrix.h"
#include "MagickCore/memory_.h"
#include "MagickCore/module.h"
#include "MagickCore/mime.h"
#include "MagickCore/monitor.h"
#include "MagickCore/montage.h"
#include "MagickCore/morphology.h"
#include "MagickCore/opencl.h"
#include "MagickCore/option.h"
#include "MagickCore/paint.h"
#include "MagickCore/pixel.h"
#include "MagickCore/pixel-accessor.h"
#include "MagickCore/policy.h"
#include "MagickCore/prepress.h"
#include "MagickCore/profile.h"
#include "MagickCore/property.h"
#include "MagickCore/quantize.h"
#include "MagickCore/quantum.h"
#include "MagickCore/registry.h"
#include "MagickCore/random_.h"
#include "MagickCore/resample.h"
#include "MagickCore/resize.h"
#include "MagickCore/resource_.h"
#include "MagickCore/segment.h"
#include "MagickCore/shear.h"
#include "MagickCore/signature.h"
#include "MagickCore/splay-tree.h"
#include "MagickCore/stream.h"
#include "MagickCore/statistic.h"
#include "MagickCore/string_.h"
#include "MagickCore/timer.h"
#include "MagickCore/token.h"
#include "MagickCore/transform.h"
#include "MagickCore/threshold.h"
#include "MagickCore/type.h"
#include "MagickCore/utility.h"
#include "MagickCore/version.h"
#include "MagickCore/vision.h"
#include "MagickCore/xml-tree.h"
#include "MagickCore/xwindow.h"
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,32 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore methods to interactively animate an image sequence.
*/
#ifndef MAGICKCORE_ANIMATE_H
#define MAGICKCORE_ANIMATE_H
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
extern MagickExport MagickBooleanType
AnimateImages(const ImageInfo *,Image *,ExceptionInfo *);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,41 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore image annotation methods.
*/
#ifndef MAGICKCORE_ANNOTATE_H
#define MAGICKCORE_ANNOTATE_H
#include "MagickCore/draw.h"
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
extern MagickExport MagickBooleanType
AnnotateImage(Image *,const DrawInfo *,ExceptionInfo *),
GetMultilineTypeMetrics(Image *,const DrawInfo *,TypeMetric *,
ExceptionInfo *),
GetTypeMetrics(Image *,const DrawInfo *,TypeMetric *,ExceptionInfo *);
extern MagickExport ssize_t
FormatMagickCaption(Image *,DrawInfo *,const MagickBooleanType,TypeMetric *,
char **,ExceptionInfo *);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,46 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore artifact methods.
*/
#ifndef MAGICKCORE_ARTIFACT_H
#define MAGICKCORE_ARTIFACT_H
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
extern MagickExport char
*RemoveImageArtifact(Image *,const char *);
extern MagickExport const char
*GetNextImageArtifact(const Image *),
*GetImageArtifact(const Image *,const char *);
extern MagickExport MagickBooleanType
CloneImageArtifacts(Image *,const Image *),
DefineImageArtifact(Image *,const char *),
DeleteImageArtifact(Image *,const char *),
SetImageArtifact(Image *,const char *,const char *);
extern MagickExport void
DestroyImageArtifacts(Image *),
ResetImageArtifactIterator(const Image *);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,52 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore methods to set or get image attributes.
*/
#ifndef MAGICKCORE_ATTRIBUTE_H
#define MAGICKCORE_ATTRIBUTE_H
#include "MagickCore/image.h"
#include "MagickCore/exception.h"
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
extern MagickExport ImageType
GetImageType(const Image *),
IdentifyImageGray(const Image *,ExceptionInfo *),
IdentifyImageType(const Image *,ExceptionInfo *);
extern MagickExport MagickBooleanType
IdentifyImageMonochrome(const Image *,ExceptionInfo *),
IsImageGray(const Image *),
IsImageMonochrome(const Image *),
IsImageOpaque(const Image *,ExceptionInfo *),
SetImageDepth(Image *,const size_t,ExceptionInfo *),
SetImageType(Image *,const ImageType,ExceptionInfo *);
extern MagickExport RectangleInfo
GetImageBoundingBox(const Image *,ExceptionInfo *exception);
extern MagickExport size_t
GetImageDepth(const Image *,ExceptionInfo *),
GetImageQuantumDepth(const Image *,const MagickBooleanType);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,98 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore Binary Large OBjects methods.
*/
#ifndef MAGICKCORE_BLOB_H
#define MAGICKCORE_BLOB_H
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
#define MagickMaxBufferExtent 81920
typedef enum
{
ReadMode,
WriteMode,
IOMode
} MapMode;
typedef ssize_t
(*CustomStreamHandler)(const unsigned char *,const size_t,const void *);
typedef size_t
(*CustomStreamSeeker)(const MagickOffsetType,const int,const void *);
typedef MagickOffsetType
(*CustomStreamTeller)(const void *);
typedef struct _CustomStreamInfo
CustomStreamInfo;
#include "MagickCore/image.h"
#include "MagickCore/stream.h"
extern MagickExport CustomStreamInfo
*AcquireCustomStreamInfo(ExceptionInfo *),
*DestroyCustomStreamInfo(CustomStreamInfo *);
extern MagickExport FILE
*GetBlobFileHandle(const Image *);
extern MagickExport Image
*BlobToImage(const ImageInfo *,const void *,const size_t,ExceptionInfo *),
*PingBlob(const ImageInfo *,const void *,const size_t,ExceptionInfo *),
*CustomStreamToImage(const ImageInfo *,ExceptionInfo *);
extern MagickExport MagickBooleanType
BlobToFile(char *,const void *,const size_t,ExceptionInfo *),
FileToImage(Image *,const char *,ExceptionInfo *),
GetBlobError(const Image *),
ImageToFile(Image *,char *,ExceptionInfo *),
InjectImageBlob(const ImageInfo *,Image *,Image *,const char *,
ExceptionInfo *),
IsBlobExempt(const Image *),
IsBlobSeekable(const Image *),
IsBlobTemporary(const Image *);
extern MagickExport MagickSizeType
GetBlobSize(const Image *);
extern MagickExport StreamHandler
GetBlobStreamHandler(const Image *);
extern MagickExport void
*GetBlobStreamData(const Image *),
DestroyBlob(Image *),
DuplicateBlob(Image *,const Image *),
*FileToBlob(const char *,const size_t,size_t *,ExceptionInfo *),
*ImageToBlob(const ImageInfo *,Image *,size_t *,ExceptionInfo *),
ImageToCustomStream(const ImageInfo *,Image *,ExceptionInfo *),
*ImagesToBlob(const ImageInfo *,Image *,size_t *,ExceptionInfo *),
ImagesToCustomStream(const ImageInfo *,Image *,ExceptionInfo *),
SetBlobExempt(Image *,const MagickBooleanType),
SetCustomStreamData(CustomStreamInfo *,void *),
SetCustomStreamReader(CustomStreamInfo *,CustomStreamHandler),
SetCustomStreamSeeker(CustomStreamInfo *,CustomStreamSeeker),
SetCustomStreamTeller(CustomStreamInfo *,CustomStreamTeller),
SetCustomStreamWriter(CustomStreamInfo *,CustomStreamHandler);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,106 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore cache view methods.
*/
#ifndef MAGICKCORE_CACHE_VIEW_H
#define MAGICKCORE_CACHE_VIEW_H
#include "MagickCore/pixel.h"
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
typedef enum
{
UndefinedVirtualPixelMethod,
BackgroundVirtualPixelMethod,
DitherVirtualPixelMethod,
EdgeVirtualPixelMethod,
MirrorVirtualPixelMethod,
RandomVirtualPixelMethod,
TileVirtualPixelMethod,
TransparentVirtualPixelMethod,
MaskVirtualPixelMethod,
BlackVirtualPixelMethod,
GrayVirtualPixelMethod,
WhiteVirtualPixelMethod,
HorizontalTileVirtualPixelMethod,
VerticalTileVirtualPixelMethod,
HorizontalTileEdgeVirtualPixelMethod,
VerticalTileEdgeVirtualPixelMethod,
CheckerTileVirtualPixelMethod
} VirtualPixelMethod;
typedef struct _CacheView
CacheView;
extern MagickExport CacheView
*AcquireAuthenticCacheView(const Image *,ExceptionInfo *),
*AcquireVirtualCacheView(const Image *,ExceptionInfo *),
*CloneCacheView(const CacheView *),
*DestroyCacheView(CacheView *);
extern MagickExport ClassType
GetCacheViewStorageClass(const CacheView *);
extern MagickExport ColorspaceType
GetCacheViewColorspace(const CacheView *);
extern MagickExport const Image
*GetCacheViewImage(const CacheView *);
extern MagickExport const Quantum
*GetCacheViewVirtualPixels(const CacheView *,const ssize_t,const ssize_t,
const size_t,const size_t,ExceptionInfo *) magick_hot_spot,
*GetCacheViewVirtualPixelQueue(const CacheView *) magick_hot_spot;
extern MagickExport const void
*GetCacheViewVirtualMetacontent(const CacheView *);
extern MagickExport MagickBooleanType
GetOneCacheViewAuthenticPixel(const CacheView *,const ssize_t,const ssize_t,
Quantum *,ExceptionInfo *),
GetOneCacheViewVirtualMethodPixel(const CacheView *,const VirtualPixelMethod,
const ssize_t,const ssize_t,Quantum *,ExceptionInfo *),
GetOneCacheViewVirtualPixel(const CacheView *,const ssize_t,const ssize_t,
Quantum *,ExceptionInfo *),
GetOneCacheViewVirtualPixelInfo(const CacheView *,const ssize_t,const ssize_t,
PixelInfo *,ExceptionInfo *),
SetCacheViewStorageClass(CacheView *,const ClassType,ExceptionInfo *),
SetCacheViewVirtualPixelMethod(CacheView *magick_restrict,
const VirtualPixelMethod),
SyncCacheViewAuthenticPixels(CacheView *magick_restrict,ExceptionInfo *)
magick_hot_spot;
extern MagickExport MagickSizeType
GetCacheViewExtent(const CacheView *);
extern MagickExport Quantum
*GetCacheViewAuthenticPixelQueue(CacheView *) magick_hot_spot,
*GetCacheViewAuthenticPixels(CacheView *,const ssize_t,const ssize_t,
const size_t,const size_t,ExceptionInfo *) magick_hot_spot,
*QueueCacheViewAuthenticPixels(CacheView *,const ssize_t,const ssize_t,
const size_t,const size_t,ExceptionInfo *) magick_hot_spot;
extern MagickExport void
*GetCacheViewAuthenticMetacontent(CacheView *);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,76 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore cache methods.
*/
#ifndef MAGICKCORE_CACHE_H
#define MAGICKCORE_CACHE_H
#include "MagickCore/blob.h"
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
typedef enum
{
UndefinedCache,
DiskCache,
DistributedCache,
MapCache,
MemoryCache,
PingCache
} CacheType;
extern MagickExport CacheType
GetImagePixelCacheType(const Image *);
extern MagickExport const Quantum
*GetVirtualPixels(const Image *,const ssize_t,const ssize_t,const size_t,
const size_t,ExceptionInfo *) magick_hot_spot,
*GetVirtualPixelQueue(const Image *) magick_hot_spot;
extern MagickExport const void
*GetVirtualMetacontent(const Image *);
extern MagickExport MagickBooleanType
GetOneAuthenticPixel(Image *,const ssize_t,const ssize_t,Quantum *,
ExceptionInfo *),
GetOneVirtualPixel(const Image *,const ssize_t,const ssize_t,Quantum *,
ExceptionInfo *),
GetOneVirtualPixelInfo(const Image *,const VirtualPixelMethod,
const ssize_t,const ssize_t,PixelInfo *,ExceptionInfo *),
PersistPixelCache(Image *,const char *,const MagickBooleanType,
MagickOffsetType *,ExceptionInfo *),
SyncAuthenticPixels(Image *,ExceptionInfo *) magick_hot_spot;
extern MagickExport MagickSizeType
GetImageExtent(const Image *);
extern MagickExport Quantum
*GetAuthenticPixels(Image *,const ssize_t,const ssize_t,const size_t,
const size_t,ExceptionInfo *) magick_hot_spot,
*GetAuthenticPixelQueue(const Image *) magick_hot_spot,
*QueueAuthenticPixels(Image *,const ssize_t,const ssize_t,const size_t,
const size_t,ExceptionInfo *) magick_hot_spot;
extern MagickExport void
*GetAuthenticMetacontent(const Image *);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,41 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore image channel methods.
*/
#ifndef MAGICKCORE_CHANNEL_H
#define MAGICKCORE_CHANNEL_H
#include <MagickCore/image.h>
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
extern MagickExport Image
*ChannelFxImage(const Image *,const char *,ExceptionInfo *),
*CombineImages(const Image *,const ColorspaceType,ExceptionInfo *),
*SeparateImage(const Image *,const ChannelType,ExceptionInfo *),
*SeparateImages(const Image *,ExceptionInfo *);
extern MagickExport MagickBooleanType
GetImageAlphaChannel(const Image *),
SetImageAlphaChannel(Image *,const AlphaChannelOption,ExceptionInfo *);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,35 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore cipher methods.
*/
#ifndef MAGICKCORE_CIPHER_H
#define MAGICKCORE_CIPHER_H
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
extern MagickExport MagickBooleanType
DecipherImage(Image *,const char *,ExceptionInfo *),
EncipherImage(Image *,const char *,ExceptionInfo *),
PasskeyDecipherImage(Image *,const StringInfo *,ExceptionInfo *),
PasskeyEncipherImage(Image *,const StringInfo *,ExceptionInfo *);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,35 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore client methods.
*/
#ifndef MAGICKCORE_CLIENT_H
#define MAGICKCORE_CLIENT_H
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
extern MagickExport const char
*GetClientPath(void),
*GetClientName(void),
*SetClientName(const char *),
*SetClientPath(const char *);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,54 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore image coder methods.
*/
#ifndef MAGICKCORE_CODER_H
#define MAGICKCORE_CODER_H
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
typedef struct _CoderInfo
{
char
*path,
*magick,
*name;
MagickBooleanType
exempt,
stealth;
size_t
signature;
} CoderInfo;
extern MagickExport char
**GetCoderList(const char *,size_t *,ExceptionInfo *);
extern MagickExport const CoderInfo
*GetCoderInfo(const char *,ExceptionInfo *),
**GetCoderInfoList(const char *,size_t *,ExceptionInfo *);
extern MagickExport MagickBooleanType
ListCoderInfo(FILE *,ExceptionInfo *);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,92 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore image color methods.
*/
#ifndef MAGICKCORE_COLOR_H
#define MAGICKCORE_COLOR_H
#include "MagickCore/pixel.h"
#include "MagickCore/exception.h"
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
typedef enum
{
UndefinedCompliance,
NoCompliance = 0x0000,
CSSCompliance = 0x0001,
SVGCompliance = 0x0001,
X11Compliance = 0x0002,
XPMCompliance = 0x0004,
AllCompliance = 0x7fffffff
} ComplianceType;
typedef struct _ColorInfo
{
char
*path,
*name;
ComplianceType
compliance;
PixelInfo
color;
MagickBooleanType
exempt,
stealth;
size_t
signature;
} ColorInfo;
typedef struct _ErrorInfo
{
double
mean_error_per_pixel,
normalized_mean_error,
normalized_maximum_error;
} ErrorInfo;
extern MagickExport char
**GetColorList(const char *,size_t *,ExceptionInfo *);
extern MagickExport const ColorInfo
*GetColorInfo(const char *,ExceptionInfo *),
**GetColorInfoList(const char *,size_t *,ExceptionInfo *);
extern MagickExport MagickBooleanType
IsEquivalentImage(const Image *,const Image *,ssize_t *x,ssize_t *y,
ExceptionInfo *),
ListColorInfo(FILE *,ExceptionInfo *),
QueryColorCompliance(const char *,const ComplianceType,PixelInfo *,
ExceptionInfo *),
QueryColorname(const Image *,const PixelInfo *,const ComplianceType,
char *,ExceptionInfo *);
extern MagickExport void
ConcatenateColorComponent(const PixelInfo *,const PixelChannel,
const ComplianceType,char *),
GetColorTuple(const PixelInfo *,const MagickBooleanType,char *);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,34 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore image colormap methods.
*/
#ifndef MAGICKCORE_COLORMAP_H
#define MAGICKCORE_COLORMAP_H
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
extern MagickExport MagickBooleanType
AcquireImageColormap(Image *,const size_t,ExceptionInfo *),
CycleColormapImage(Image *,const ssize_t,ExceptionInfo *),
SortColormapByIntensity(Image *,ExceptionInfo *);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,72 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore image colorspace methods.
*/
#ifndef MAGICKCORE_COLORSPACE_H
#define MAGICKCORE_COLORSPACE_H
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
typedef enum
{
UndefinedColorspace,
CMYColorspace, /* negated linear RGB colorspace */
CMYKColorspace, /* CMY with Black separation */
GRAYColorspace, /* Single Channel greyscale (linear) image */
HCLColorspace,
HCLpColorspace,
HSBColorspace,
HSIColorspace,
HSLColorspace,
HSVColorspace, /* alias for HSB */
HWBColorspace,
LabColorspace,
LCHColorspace, /* alias for LCHuv */
LCHabColorspace, /* Cylindrical (Polar) Lab */
LCHuvColorspace, /* Cylindrical (Polar) Luv */
LogColorspace,
LMSColorspace,
LuvColorspace,
OHTAColorspace,
Rec601YCbCrColorspace,
Rec709YCbCrColorspace,
RGBColorspace, /* Linear RGB colorspace */
scRGBColorspace, /* ??? */
sRGBColorspace, /* Default: non-linear sRGB colorspace */
TransparentColorspace,
xyYColorspace,
XYZColorspace, /* IEEE Color Reference colorspace */
YCbCrColorspace,
YCCColorspace,
YDbDrColorspace,
YIQColorspace,
YPbPrColorspace,
YUVColorspace
} ColorspaceType;
extern MagickExport MagickBooleanType
SetImageColorspace(Image *,const ColorspaceType,ExceptionInfo *),
SetImageGray(Image *,ExceptionInfo *),
SetImageMonochrome(Image *,ExceptionInfo *),
TransformImageColorspace(Image *,const ColorspaceType,ExceptionInfo *);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,61 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore image compare methods.
*/
#ifndef MAGICKCORE_COMPARE_H
#define MAGICKCORE_COMPARE_H
#include "MagickCore/image.h"
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
typedef enum
{
UndefinedErrorMetric,
AbsoluteErrorMetric,
FuzzErrorMetric,
MeanAbsoluteErrorMetric,
MeanErrorPerPixelErrorMetric,
MeanSquaredErrorMetric,
NormalizedCrossCorrelationErrorMetric,
PeakAbsoluteErrorMetric,
PeakSignalToNoiseRatioErrorMetric,
PerceptualHashErrorMetric,
RootMeanSquaredErrorMetric
} MetricType;
extern MagickExport double
*GetImageDistortions(Image *,const Image *,const MetricType,ExceptionInfo *);
extern MagickExport Image
*CompareImages(Image *,const Image *,const MetricType,double *,
ExceptionInfo *),
*SimilarityImage(const Image *,const Image *,const MetricType,const double,
RectangleInfo *,double *,ExceptionInfo *);
extern MagickExport MagickBooleanType
GetImageDistortion(Image *,const Image *,const MetricType,double *,
ExceptionInfo *),
IsImagesEqual(const Image *,const Image *,ExceptionInfo *),
SetImageColorMetric(Image *,const Image *,ExceptionInfo *);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,109 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore image composite methods.
*/
#ifndef MAGICKCORE_COMPOSITE_H
#define MAGICKCORE_COMPOSITE_H
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
typedef enum
{
UndefinedCompositeOp,
AlphaCompositeOp,
AtopCompositeOp,
BlendCompositeOp,
BlurCompositeOp,
BumpmapCompositeOp,
ChangeMaskCompositeOp,
ClearCompositeOp,
ColorBurnCompositeOp,
ColorDodgeCompositeOp,
ColorizeCompositeOp,
CopyBlackCompositeOp,
CopyBlueCompositeOp,
CopyCompositeOp,
CopyCyanCompositeOp,
CopyGreenCompositeOp,
CopyMagentaCompositeOp,
CopyAlphaCompositeOp,
CopyRedCompositeOp,
CopyYellowCompositeOp,
DarkenCompositeOp,
DarkenIntensityCompositeOp,
DifferenceCompositeOp,
DisplaceCompositeOp,
DissolveCompositeOp,
DistortCompositeOp,
DivideDstCompositeOp,
DivideSrcCompositeOp,
DstAtopCompositeOp,
DstCompositeOp,
DstInCompositeOp,
DstOutCompositeOp,
DstOverCompositeOp,
ExclusionCompositeOp,
HardLightCompositeOp,
HardMixCompositeOp,
HueCompositeOp,
InCompositeOp,
IntensityCompositeOp,
LightenCompositeOp,
LightenIntensityCompositeOp,
LinearBurnCompositeOp,
LinearDodgeCompositeOp,
LinearLightCompositeOp,
LuminizeCompositeOp,
MathematicsCompositeOp,
MinusDstCompositeOp,
MinusSrcCompositeOp,
ModulateCompositeOp,
ModulusAddCompositeOp,
ModulusSubtractCompositeOp,
MultiplyCompositeOp,
NoCompositeOp,
OutCompositeOp,
OverCompositeOp,
OverlayCompositeOp,
PegtopLightCompositeOp,
PinLightCompositeOp,
PlusCompositeOp,
ReplaceCompositeOp,
SaturateCompositeOp,
ScreenCompositeOp,
SoftLightCompositeOp,
SrcAtopCompositeOp,
SrcCompositeOp,
SrcInCompositeOp,
SrcOutCompositeOp,
SrcOverCompositeOp,
ThresholdCompositeOp,
VividLightCompositeOp,
XorCompositeOp
} CompositeOperator;
extern MagickExport MagickBooleanType
CompositeImage(Image *,const Image *,const CompositeOperator,
const MagickBooleanType,const ssize_t,const ssize_t,ExceptionInfo *),
TextureImage(Image *,const Image *,ExceptionInfo *);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,73 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore image compression/decompression methods.
*/
#ifndef MAGICKCORE_COMPRESS_H
#define MAGICKCORE_COMPRESS_H
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
typedef enum
{
UndefinedCompression,
B44ACompression,
B44Compression,
BZipCompression,
DXT1Compression,
DXT3Compression,
DXT5Compression,
FaxCompression,
Group4Compression,
JBIG1Compression, /* ISO/IEC std 11544 / ITU-T rec T.82 */
JBIG2Compression, /* ISO/IEC std 14492 / ITU-T rec T.88 */
JPEG2000Compression, /* ISO/IEC std 15444-1 */
JPEGCompression,
LosslessJPEGCompression,
LZMACompression, /* Lempel-Ziv-Markov chain algorithm */
LZWCompression,
NoCompression,
PizCompression,
Pxr24Compression,
RLECompression,
ZipCompression,
ZipSCompression
} CompressionType;
typedef struct _Ascii85Info
Ascii85Info;
extern MagickExport MagickBooleanType
HuffmanDecodeImage(Image *,ExceptionInfo *),
HuffmanEncodeImage(const ImageInfo *,Image *,Image *,ExceptionInfo *),
LZWEncodeImage(Image *,const size_t,unsigned char *magick_restrict,
ExceptionInfo *),
PackbitsEncodeImage(Image *,const size_t,unsigned char *magick_restrict,
ExceptionInfo *),
ZLIBEncodeImage(Image *,const size_t,unsigned char *magick_restrict,
ExceptionInfo *);
extern MagickExport void
Ascii85Encode(Image *,const unsigned char),
Ascii85Flush(Image *),
Ascii85Initialize(Image *);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,66 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore configure methods.
*/
#ifndef MAGICKCORE_CONFIGURE_H
#define MAGICKCORE_CONFIGURE_H
#include "MagickCore/linked-list.h"
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
typedef struct _ConfigureInfo
{
char
*path,
*name,
*value;
MagickBooleanType
exempt,
stealth;
size_t
signature;
} ConfigureInfo;
extern MagickExport char
**GetConfigureList(const char *,size_t *,ExceptionInfo *),
*GetConfigureOption(const char *);
extern MagickExport const char
*GetConfigureValue(const ConfigureInfo *);
extern MagickExport const ConfigureInfo
*GetConfigureInfo(const char *,ExceptionInfo *),
**GetConfigureInfoList(const char *,size_t *,ExceptionInfo *);
extern MagickExport LinkedListInfo
*DestroyConfigureOptions(LinkedListInfo *),
*GetConfigurePaths(const char *,ExceptionInfo *),
*GetConfigureOptions(const char *,ExceptionInfo *);
extern MagickExport MagickBooleanType
ListConfigureInfo(FILE *,ExceptionInfo *);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,44 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore image constitute methods.
*/
#ifndef MAGICKCORE_CONSTITUTE_H
#define MAGICKCORE_CONSTITUTE_H
#include "MagickCore/pixel.h"
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
extern MagickExport Image
*ConstituteImage(const size_t,const size_t,const char *,const StorageType,
const void *,ExceptionInfo *),
*PingImage(const ImageInfo *,ExceptionInfo *),
*PingImages(ImageInfo *,const char *,ExceptionInfo *),
*ReadImage(const ImageInfo *,ExceptionInfo *),
*ReadImages(ImageInfo *,const char *,ExceptionInfo *),
*ReadInlineImage(const ImageInfo *,const char *,ExceptionInfo *);
extern MagickExport MagickBooleanType
WriteImage(const ImageInfo *,Image *,ExceptionInfo *),
WriteImages(const ImageInfo *,Image *,const char *,ExceptionInfo *);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,54 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore image decorate methods.
*/
#ifndef MAGICKCORE_DECORATE_H
#define MAGICKCORE_DECORATE_H
#include "MagickCore/image.h"
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
typedef struct _FrameInfo
{
size_t
width,
height;
ssize_t
x,
y,
inner_bevel,
outer_bevel;
} FrameInfo;
extern MagickExport Image
*BorderImage(const Image *,const RectangleInfo *,const CompositeOperator,
ExceptionInfo *),
*FrameImage(const Image *,const FrameInfo *,const CompositeOperator,
ExceptionInfo *);
extern MagickExport MagickBooleanType
RaiseImage(Image *,const RectangleInfo *,const MagickBooleanType,
ExceptionInfo *);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,79 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore delegates methods.
*/
#ifndef MAGICKCORE_DELEGATE_H
#define MAGICKCORE_DELEGATE_H
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
#include <stdarg.h>
#include "MagickCore/semaphore.h"
typedef struct _DelegateInfo
{
char
*path,
*decode,
*encode,
*commands;
ssize_t
mode;
MagickBooleanType
thread_support,
spawn,
stealth;
SemaphoreInfo
*semaphore;
size_t
signature;
} DelegateInfo;
extern MagickExport char
*GetDelegateCommand(const ImageInfo *,Image *,const char *,const char *,
ExceptionInfo *),
**GetDelegateList(const char *,size_t *,ExceptionInfo *);
extern MagickExport const char
*GetDelegateCommands(const DelegateInfo *);
extern MagickExport const DelegateInfo
*GetDelegateInfo(const char *,const char *,ExceptionInfo *exception),
**GetDelegateInfoList(const char *,size_t *,ExceptionInfo *);
extern MagickExport int
ExternalDelegateCommand(const MagickBooleanType,const MagickBooleanType,
const char *,char *,ExceptionInfo *);
extern MagickExport ssize_t
GetDelegateMode(const DelegateInfo *);
extern MagickExport MagickBooleanType
GetDelegateThreadSupport(const DelegateInfo *),
InvokeDelegate(ImageInfo *,Image *,const char *,const char *,ExceptionInfo *),
ListDelegateInfo(FILE *,ExceptionInfo *);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,41 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore deprecated methods.
*/
#ifndef MAGICKCORE_DEPRECATE_H
#define MAGICKCORE_DEPRECATE_H
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
#if !defined(MAGICKCORE_EXCLUDE_DEPRECATED)
#include "MagickCore/magick.h"
typedef int
*(*BlobFifo)(const Image *,const void *,const size_t);
extern MagickExport MagickBooleanType
GetMagickSeekableStream(const MagickInfo *);
#endif
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,34 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore methods to interactively display and edit an image.
*/
#ifndef MAGICKCORE_DISPLAY_H
#define MAGICKCORE_DISPLAY_H
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
extern MagickExport MagickBooleanType
DisplayImages(const ImageInfo *,Image *,ExceptionInfo *),
RemoteDisplayCommand(const ImageInfo *,const char *,const char *,
ExceptionInfo *);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,86 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore image distortion methods.
*/
#ifndef MAGICKCORE_DISTORT_H
#define MAGICKCORE_DISTORT_H
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
/*
These two enum are linked, with common enumerated values. Both
DistortImages() and SparseColor() often share code to determine functional
coefficients for common methods.
Caution should be taken to ensure that only the common methods contain the
same enumerated value, while all others remain unique across both
enumerations.
*/
typedef enum
{
UndefinedDistortion,
AffineDistortion,
AffineProjectionDistortion,
ScaleRotateTranslateDistortion,
PerspectiveDistortion,
PerspectiveProjectionDistortion,
BilinearForwardDistortion,
BilinearDistortion = BilinearForwardDistortion,
BilinearReverseDistortion,
PolynomialDistortion,
ArcDistortion,
PolarDistortion,
DePolarDistortion,
Cylinder2PlaneDistortion,
Plane2CylinderDistortion,
BarrelDistortion,
BarrelInverseDistortion,
ShepardsDistortion,
ResizeDistortion,
SentinelDistortion
} DistortMethod;
typedef enum
{
UndefinedColorInterpolate = UndefinedDistortion,
BarycentricColorInterpolate = AffineDistortion,
BilinearColorInterpolate = BilinearReverseDistortion,
PolynomialColorInterpolate = PolynomialDistortion,
ShepardsColorInterpolate = ShepardsDistortion,
/*
Methods unique to SparseColor().
*/
VoronoiColorInterpolate = SentinelDistortion,
InverseColorInterpolate,
ManhattanColorInterpolate
} SparseColorMethod;
extern MagickExport Image
*AffineTransformImage(const Image *,const AffineMatrix *,ExceptionInfo *),
*DistortImage(const Image *,const DistortMethod,const size_t,
const double *,MagickBooleanType,ExceptionInfo *exception),
*DistortResizeImage(const Image *,const size_t,const size_t,ExceptionInfo *),
*RotateImage(const Image *,const double,ExceptionInfo *),
*SparseColorImage(const Image *,const SparseColorMethod,const size_t,
const double *,ExceptionInfo *);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,34 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore distributed cache methods.
*/
#ifndef MAGICKCORE_DISTRIBUTE_CACHE_H
#define MAGICKCORE_DISTRIBUTE_CACHE_H
#include "MagickCore/exception.h"
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
extern MagickExport void
DistributePixelCacheServer(const int,ExceptionInfo *);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,391 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore drawing methods.
*/
#ifndef MAGICKCORE_DRAW_H
#define MAGICKCORE_DRAW_H
#include "MagickCore/geometry.h"
#include "MagickCore/image.h"
#include "MagickCore/pixel.h"
#include "MagickCore/type.h"
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
typedef enum
{
UndefinedAlign,
LeftAlign,
CenterAlign,
RightAlign
} AlignType;
typedef enum
{
UndefinedPathUnits,
UserSpace,
UserSpaceOnUse,
ObjectBoundingBox
} ClipPathUnits;
typedef enum
{
UndefinedDecoration,
NoDecoration,
UnderlineDecoration,
OverlineDecoration,
LineThroughDecoration
} DecorationType;
typedef enum
{
UndefinedDirection,
RightToLeftDirection,
LeftToRightDirection
} DirectionType;
typedef enum
{
UndefinedRule,
#undef EvenOddRule
EvenOddRule,
NonZeroRule
} FillRule;
typedef enum
{
UndefinedGradient,
LinearGradient,
RadialGradient
} GradientType;
typedef enum
{
UndefinedCap,
ButtCap,
RoundCap,
SquareCap
} LineCap;
typedef enum
{
UndefinedJoin,
MiterJoin,
RoundJoin,
BevelJoin
} LineJoin;
typedef enum
{
UndefinedMethod,
PointMethod,
ReplaceMethod,
FloodfillMethod,
FillToBorderMethod,
ResetMethod
} PaintMethod;
typedef enum
{
UndefinedPrimitive,
AlphaPrimitive,
ArcPrimitive,
BezierPrimitive,
CirclePrimitive,
ColorPrimitive,
EllipsePrimitive,
ImagePrimitive,
LinePrimitive,
PathPrimitive,
PointPrimitive,
PolygonPrimitive,
PolylinePrimitive,
RectanglePrimitive,
RoundRectanglePrimitive,
TextPrimitive
} PrimitiveType;
typedef enum
{
UndefinedReference,
GradientReference
} ReferenceType;
typedef enum
{
UndefinedSpread,
PadSpread,
ReflectSpread,
RepeatSpread
} SpreadMethod;
typedef struct _StopInfo
{
PixelInfo
color;
double
offset;
} StopInfo;
typedef struct _GradientInfo
{
GradientType
type;
RectangleInfo
bounding_box;
SegmentInfo
gradient_vector;
StopInfo
*stops;
size_t
number_stops;
SpreadMethod
spread;
MagickBooleanType
debug;
PointInfo
center,
radii;
double
radius,
angle;
size_t
signature;
} GradientInfo;
typedef struct _ElementReference
{
char
*id;
ReferenceType
type;
GradientInfo
gradient;
struct _ElementReference
*previous,
*next;
size_t
signature;
} ElementReference;
typedef struct _DrawInfo
{
char
*primitive,
*geometry;
RectangleInfo
viewbox;
AffineMatrix
affine;
PixelInfo
fill,
stroke,
undercolor,
border_color;
Image
*fill_pattern,
*stroke_pattern;
double
stroke_width;
GradientInfo
gradient;
MagickBooleanType
stroke_antialias,
text_antialias;
FillRule
fill_rule;
LineCap
linecap;
LineJoin
linejoin;
size_t
miterlimit;
double
dash_offset;
DecorationType
decorate;
CompositeOperator
compose;
char
*text,
*font,
*metrics,
*family;
size_t
face;
StyleType
style;
StretchType
stretch;
size_t
weight;
char
*encoding;
double
pointsize;
char
*density;
AlignType
align;
GravityType
gravity;
char
*server_name;
double
*dash_pattern;
char
*clip_mask;
SegmentInfo
bounds;
ClipPathUnits
clip_units;
Quantum
alpha;
MagickBooleanType
render;
ElementReference
element_reference;
double
kerning,
interword_spacing,
interline_spacing;
DirectionType
direction;
MagickBooleanType
debug;
size_t
signature;
double
fill_alpha,
stroke_alpha;
} DrawInfo;
typedef struct _PrimitiveInfo
{
PointInfo
point;
size_t
coordinates;
PrimitiveType
primitive;
PaintMethod
method;
char
*text;
} PrimitiveInfo;
typedef struct _TypeMetric
{
PointInfo
pixels_per_em;
double
ascent,
descent,
width,
height,
max_advance,
underline_position,
underline_thickness;
SegmentInfo
bounds;
PointInfo
origin;
} TypeMetric;
extern MagickExport DrawInfo
*AcquireDrawInfo(void),
*CloneDrawInfo(const ImageInfo *,const DrawInfo *),
*DestroyDrawInfo(DrawInfo *);
extern MagickExport MagickBooleanType
DrawAffineImage(Image *,const Image *,const AffineMatrix *,ExceptionInfo *),
DrawClipPath(Image *,const DrawInfo *,const char *,ExceptionInfo *),
DrawGradientImage(Image *,const DrawInfo *,ExceptionInfo *),
DrawImage(Image *,const DrawInfo *,ExceptionInfo *),
DrawPatternPath(Image *,const DrawInfo *,const char *,Image **,
ExceptionInfo *),
DrawPrimitive(Image *,const DrawInfo *,const PrimitiveInfo *,ExceptionInfo *);
extern MagickExport void
GetAffineMatrix(AffineMatrix *),
GetDrawInfo(const ImageInfo *,DrawInfo *);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,91 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore image effects methods.
*/
#ifndef MAGICKCORE_EFFECT_H
#define MAGICKCORE_EFFECT_H
#include "MagickCore/morphology.h"
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
typedef enum
{
UndefinedPreview,
RotatePreview,
ShearPreview,
RollPreview,
HuePreview,
SaturationPreview,
BrightnessPreview,
GammaPreview,
SpiffPreview,
DullPreview,
GrayscalePreview,
QuantizePreview,
DespecklePreview,
ReduceNoisePreview,
AddNoisePreview,
SharpenPreview,
BlurPreview,
ThresholdPreview,
EdgeDetectPreview,
SpreadPreview,
SolarizePreview,
ShadePreview,
RaisePreview,
SegmentPreview,
SwirlPreview,
ImplodePreview,
WavePreview,
OilPaintPreview,
CharcoalDrawingPreview,
JPEGPreview
} PreviewType;
extern MagickExport Image
*AdaptiveBlurImage(const Image *,const double,const double,ExceptionInfo *),
*AdaptiveSharpenImage(const Image *,const double,const double,
ExceptionInfo *),
*BlurImage(const Image *,const double,const double,ExceptionInfo *),
*ConvolveImage(const Image *,const KernelInfo *,ExceptionInfo *),
*DespeckleImage(const Image *,ExceptionInfo *),
*EdgeImage(const Image *,const double,ExceptionInfo *),
*EmbossImage(const Image *,const double,const double,ExceptionInfo *),
*GaussianBlurImage(const Image *,const double,const double,ExceptionInfo *),
*KuwaharaImage(const Image *,const double,const double,ExceptionInfo *),
*LocalContrastImage(const Image *,const double,const double,ExceptionInfo *),
*MotionBlurImage(const Image *,const double,const double,const double,
ExceptionInfo *),
*PreviewImage(const Image *,const PreviewType,ExceptionInfo *),
*RotationalBlurImage(const Image *,const double,ExceptionInfo *),
*SelectiveBlurImage(const Image *,const double,const double,const double,
ExceptionInfo *),
*ShadeImage(const Image *,const MagickBooleanType,const double,const double,
ExceptionInfo *),
*SharpenImage(const Image *,const double,const double,ExceptionInfo *),
*SpreadImage(const Image *,const PixelInterpolateMethod,const double,
ExceptionInfo *),
*UnsharpMaskImage(const Image *,const double,const double,const double,
const double,ExceptionInfo *);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,57 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore image enhance methods.
*/
#ifndef MAGICKCORE_ENHANCE_H
#define MAGICKCORE_ENHANCE_H
#include "MagickCore/pixel.h"
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
extern MagickExport MagickBooleanType
AutoGammaImage(Image *,ExceptionInfo *),
AutoLevelImage(Image *,ExceptionInfo *),
BrightnessContrastImage(Image *,const double,const double,ExceptionInfo *),
ClutImage(Image *,const Image *,const PixelInterpolateMethod,ExceptionInfo *),
ColorDecisionListImage(Image *,const char *,ExceptionInfo *),
ContrastImage(Image *,const MagickBooleanType,ExceptionInfo *),
ContrastStretchImage(Image *,const double,const double,ExceptionInfo *),
EqualizeImage(Image *image,ExceptionInfo *),
GammaImage(Image *,const double,ExceptionInfo *),
GrayscaleImage(Image *,const PixelIntensityMethod,ExceptionInfo *),
HaldClutImage(Image *,const Image *,ExceptionInfo *),
LevelImage(Image *,const double,const double,const double,ExceptionInfo *),
LevelizeImage(Image *,const double,const double,const double,ExceptionInfo *),
LevelImageColors(Image *,const PixelInfo *,const PixelInfo *,
const MagickBooleanType,ExceptionInfo *),
LinearStretchImage(Image *,const double,const double,ExceptionInfo *),
ModulateImage(Image *,const char *,ExceptionInfo *),
NegateImage(Image *,const MagickBooleanType,ExceptionInfo *),
NormalizeImage(Image *,ExceptionInfo *),
SigmoidalContrastImage(Image *,const MagickBooleanType,const double,
const double,ExceptionInfo *);
extern MagickExport Image
*EnhanceImage(const Image *,ExceptionInfo *);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,176 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore exception methods.
*/
#ifndef MAGICKCORE_EXCEPTION_H
#define MAGICKCORE_EXCEPTION_H
#include "MagickCore/semaphore.h"
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
typedef enum
{
UndefinedException,
WarningException = 300,
ResourceLimitWarning = 300,
TypeWarning = 305,
OptionWarning = 310,
DelegateWarning = 315,
MissingDelegateWarning = 320,
CorruptImageWarning = 325,
FileOpenWarning = 330,
BlobWarning = 335,
StreamWarning = 340,
CacheWarning = 345,
CoderWarning = 350,
FilterWarning = 352,
ModuleWarning = 355,
DrawWarning = 360,
ImageWarning = 365,
WandWarning = 370,
RandomWarning = 375,
XServerWarning = 380,
MonitorWarning = 385,
RegistryWarning = 390,
ConfigureWarning = 395,
PolicyWarning = 399,
ErrorException = 400,
ResourceLimitError = 400,
TypeError = 405,
OptionError = 410,
DelegateError = 415,
MissingDelegateError = 420,
CorruptImageError = 425,
FileOpenError = 430,
BlobError = 435,
StreamError = 440,
CacheError = 445,
CoderError = 450,
FilterError = 452,
ModuleError = 455,
DrawError = 460,
ImageError = 465,
WandError = 470,
RandomError = 475,
XServerError = 480,
MonitorError = 485,
RegistryError = 490,
ConfigureError = 495,
PolicyError = 499,
FatalErrorException = 700,
ResourceLimitFatalError = 700,
TypeFatalError = 705,
OptionFatalError = 710,
DelegateFatalError = 715,
MissingDelegateFatalError = 720,
CorruptImageFatalError = 725,
FileOpenFatalError = 730,
BlobFatalError = 735,
StreamFatalError = 740,
CacheFatalError = 745,
CoderFatalError = 750,
FilterFatalError = 752,
ModuleFatalError = 755,
DrawFatalError = 760,
ImageFatalError = 765,
WandFatalError = 770,
RandomFatalError = 775,
XServerFatalError = 780,
MonitorFatalError = 785,
RegistryFatalError = 790,
ConfigureFatalError = 795,
PolicyFatalError = 799
} ExceptionType;
struct _ExceptionInfo
{
ExceptionType
severity;
int
error_number;
char
*reason,
*description;
void
*exceptions;
MagickBooleanType
relinquish;
SemaphoreInfo
*semaphore;
size_t
signature;
};
typedef void
(*ErrorHandler)(const ExceptionType,const char *,const char *);
typedef void
(*FatalErrorHandler)(const ExceptionType,const char *,const char *);
typedef void
(*WarningHandler)(const ExceptionType,const char *,const char *);
extern MagickExport char
*GetExceptionMessage(const int);
extern MagickExport const char
*GetLocaleExceptionMessage(const ExceptionType,const char *);
extern MagickExport ErrorHandler
SetErrorHandler(ErrorHandler);
extern MagickExport ExceptionInfo
*AcquireExceptionInfo(void),
*CloneExceptionInfo(ExceptionInfo *),
*DestroyExceptionInfo(ExceptionInfo *);
extern MagickExport FatalErrorHandler
SetFatalErrorHandler(FatalErrorHandler);
extern MagickExport MagickBooleanType
ThrowException(ExceptionInfo *,const ExceptionType,const char *,
const char *),
ThrowMagickExceptionList(ExceptionInfo *,const char *,const char *,
const size_t,const ExceptionType,const char *,const char *,va_list),
ThrowMagickException(ExceptionInfo *,const char *,const char *,const size_t,
const ExceptionType,const char *,const char *,...)
magick_attribute((__format__ (__printf__,7,8)));
extern MagickExport void
CatchException(ExceptionInfo *),
ClearMagickException(ExceptionInfo *),
InheritException(ExceptionInfo *,const ExceptionInfo *),
MagickError(const ExceptionType,const char *,const char *),
MagickFatalError(const ExceptionType,const char *,const char *),
MagickWarning(const ExceptionType,const char *,const char *);
extern MagickExport WarningHandler
SetWarningHandler(WarningHandler);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,62 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore feature methods.
*/
#ifndef MAGICKCORE_FEATURE_H
#define MAGICKCORE_FEATURE_H
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
/*
Haralick texture features.
*/
typedef struct _ChannelFeatures
{
double
angular_second_moment[4],
contrast[4],
correlation[4],
variance_sum_of_squares[4],
inverse_difference_moment[4],
sum_average[4],
sum_variance[4],
sum_entropy[4],
entropy[4],
difference_variance[4],
difference_entropy[4],
measure_of_correlation_1[4],
measure_of_correlation_2[4],
maximum_correlation_coefficient[4];
} ChannelFeatures;
extern MagickExport ChannelFeatures
*GetImageFeatures(const Image *,const size_t,ExceptionInfo *);
extern MagickExport Image
*CannyEdgeImage(const Image *,const double,const double,const double,
const double,ExceptionInfo *),
*HoughLineImage(const Image *,const size_t,const size_t,const size_t,
ExceptionInfo *),
*MeanShiftImage(const Image *,const size_t,const size_t,const double,
ExceptionInfo *);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,48 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore discrete Fourier transform (DFT) methods.
*/
#ifndef MAGICKCORE_FFT_H
#define MAGICKCORE_FFT_H
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
typedef enum
{
UndefinedComplexOperator,
AddComplexOperator,
ConjugateComplexOperator,
DivideComplexOperator,
MagnitudePhaseComplexOperator,
MultiplyComplexOperator,
RealImaginaryComplexOperator,
SubtractComplexOperator
} ComplexOperator;
extern MagickExport Image
*ComplexImages(const Image *,const ComplexOperator,ExceptionInfo *),
*ForwardFourierTransformImage(const Image *,const MagickBooleanType,
ExceptionInfo *),
*InverseFourierTransformImage(const Image *,const Image *,
const MagickBooleanType,ExceptionInfo *);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,77 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore image f/x methods.
*/
#ifndef MAGICKCORE_FX_H
#define MAGICKCORE_FX_H
#include "MagickCore/draw.h"
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
typedef enum
{
UndefinedNoise,
UniformNoise,
GaussianNoise,
MultiplicativeGaussianNoise,
ImpulseNoise,
LaplacianNoise,
PoissonNoise,
RandomNoise
} NoiseType;
extern MagickExport Image
*AddNoiseImage(const Image *,const NoiseType,const double,ExceptionInfo *),
*BlueShiftImage(const Image *,const double,ExceptionInfo *),
*CharcoalImage(const Image *,const double,const double,ExceptionInfo *),
*ColorizeImage(const Image *,const char *,const PixelInfo *,ExceptionInfo *),
*ColorMatrixImage(const Image *,const KernelInfo *kernel,ExceptionInfo *),
*FxImage(const Image *,const char *,ExceptionInfo *),
*ImplodeImage(const Image *,const double,const PixelInterpolateMethod,
ExceptionInfo *),
*MorphImages(const Image *,const size_t,ExceptionInfo *),
*PolaroidImage(const Image *,const DrawInfo *,const char *,const double,
const PixelInterpolateMethod,ExceptionInfo *),
*SepiaToneImage(const Image *,const double,ExceptionInfo *),
*ShadowImage(const Image *,const double,const double,const ssize_t,
const ssize_t,ExceptionInfo *),
*SketchImage(const Image *,const double,const double,const double,
ExceptionInfo *),
*SteganoImage(const Image *,const Image *,ExceptionInfo *),
*StereoImage(const Image *,const Image *,ExceptionInfo *),
*StereoAnaglyphImage(const Image *,const Image *,const ssize_t,const ssize_t,
ExceptionInfo *),
*SwirlImage(const Image *,double,const PixelInterpolateMethod,
ExceptionInfo *),
*TintImage(const Image *,const char *,const PixelInfo *,ExceptionInfo *),
*VignetteImage(const Image *,const double,const double,const ssize_t,
const ssize_t,ExceptionInfo *),
*WaveImage(const Image *,const double,const double,
const PixelInterpolateMethod,ExceptionInfo *),
*WaveletDenoiseImage(const Image *,const double,const double,ExceptionInfo *);
extern MagickExport MagickBooleanType
PlasmaImage(Image *,const SegmentInfo *,size_t,size_t,ExceptionInfo *),
SolarizeImage(Image *,const double,ExceptionInfo *);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,41 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore graphic gems methods.
*/
#ifndef MAGICKCORE_GEM_H
#define MAGICKCORE_GEM_H
#include "MagickCore/fx.h"
#include "MagickCore/random_.h"
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
extern MagickExport double
ExpandAffine(const AffineMatrix *);
extern MagickExport void
ConvertHSLToRGB(const double,const double,const double,double *,double *,
double *),
ConvertRGBToHSL(const double,const double,const double,double *,double *,
double *);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,166 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore image geometry methods.
*/
#ifndef MAGICKCORE_GEOMETRY_H
#define MAGICKCORE_GEOMETRY_H
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
typedef enum
{
#undef NoValue
NoValue = 0x0000,
#undef XValue
XValue = 0x0001,
XiValue = 0x0001,
#undef YValue
YValue = 0x0002,
PsiValue = 0x0002,
#undef WidthValue
WidthValue = 0x0004,
RhoValue = 0x0004,
#undef HeightValue
HeightValue = 0x0008,
SigmaValue = 0x0008,
ChiValue = 0x0010,
XiNegative = 0x0020,
#undef XNegative
XNegative = 0x0020,
PsiNegative = 0x0040,
#undef YNegative
YNegative = 0x0040,
ChiNegative = 0x0080,
PercentValue = 0x1000, /* '%' percentage of something */
AspectValue = 0x2000, /* '!' resize no-aspect - special use flag */
NormalizeValue = 0x2000, /* '!' ScaleKernelValue() in morphology.c */
LessValue = 0x4000, /* '<' resize smaller - special use flag */
GreaterValue = 0x8000, /* '>' resize larger - spacial use flag */
MinimumValue = 0x10000, /* '^' special handling needed */
CorrelateNormalizeValue = 0x10000, /* '^' see ScaleKernelValue() */
AreaValue = 0x20000, /* '@' resize to area - special use flag */
DecimalValue = 0x40000, /* '.' floating point numbers found */
SeparatorValue = 0x80000, /* 'x' separator found */
#undef AllValues
AllValues = 0x7fffffff
} GeometryFlags;
#if defined(ForgetGravity)
#undef ForgetGravity
#undef NorthWestGravity
#undef NorthGravity
#undef NorthEastGravity
#undef WestGravity
#undef CenterGravity
#undef EastGravity
#undef SouthWestGravity
#undef SouthGravity
#undef SouthEastGravity
#endif
typedef enum
{
UndefinedGravity,
ForgetGravity = 0,
NorthWestGravity = 1,
NorthGravity = 2,
NorthEastGravity = 3,
WestGravity = 4,
CenterGravity = 5,
EastGravity = 6,
SouthWestGravity = 7,
SouthGravity = 8,
SouthEastGravity = 9
} GravityType;
typedef struct _AffineMatrix
{
double
sx,
rx,
ry,
sy,
tx,
ty;
} AffineMatrix;
typedef struct _GeometryInfo
{
double
rho,
sigma,
xi,
psi,
chi;
} GeometryInfo;
typedef struct _OffsetInfo
{
ssize_t
x,
y;
} OffsetInfo;
typedef struct _PointInfo
{
double
x,
y;
} PointInfo;
typedef struct _RectangleInfo
{
size_t
width,
height;
ssize_t
x,
y;
} RectangleInfo;
extern MagickExport char
*GetPageGeometry(const char *);
extern MagickExport MagickBooleanType
IsGeometry(const char *),
IsSceneGeometry(const char *,const MagickBooleanType);
extern MagickExport MagickStatusType
GetGeometry(const char *,ssize_t *,ssize_t *,size_t *,size_t *),
ParseAbsoluteGeometry(const char *,RectangleInfo *),
ParseAffineGeometry(const char *,AffineMatrix *,ExceptionInfo *),
ParseGeometry(const char *,GeometryInfo *),
ParseGravityGeometry(const Image *,const char *,RectangleInfo *,
ExceptionInfo *),
ParseMetaGeometry(const char *,ssize_t *,ssize_t *,size_t *,size_t *),
ParsePageGeometry(const Image *,const char *,RectangleInfo *,ExceptionInfo *),
ParseRegionGeometry(const Image *,const char *,RectangleInfo *,
ExceptionInfo *);
extern MagickExport void
GravityAdjustGeometry(const size_t,const size_t,const GravityType,
RectangleInfo *),
SetGeometry(const Image *,RectangleInfo *),
SetGeometryInfo(GeometryInfo *);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,45 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore histogram methods.
*/
#ifndef MAGICKCORE_HISTOGRAM_H
#define MAGICKCORE_HISTOGRAM_H
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
extern MagickExport PixelInfo
*GetImageHistogram(const Image *,size_t *,ExceptionInfo *);
extern MagickExport Image
*UniqueImageColors(const Image *,ExceptionInfo *);
extern MagickExport MagickBooleanType
IdentifyPaletteImage(const Image *,ExceptionInfo *),
IsHistogramImage(const Image *,ExceptionInfo *),
IsPaletteImage(const Image *),
MinMaxStretchImage(Image *,const double,const double,const double,
ExceptionInfo *);
extern MagickExport size_t
GetNumberColors(const Image *,FILE *,ExceptionInfo *);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,32 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore image identify method.
*/
#ifndef MAGICKCORE_IDENTIFY_H
#define MAGICKCORE_IDENTIFY_H
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
extern MagickExport MagickBooleanType
IdentifyImage(Image *,FILE *,const MagickBooleanType,ExceptionInfo *);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,83 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITTransferNS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore image view methods.
*/
#ifndef MAGICKCORE_IMAGE_VIEW_H
#define MAGICKCORE_IMAGE_VIEW_H
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
typedef struct _ImageView
ImageView;
typedef MagickBooleanType
(*DuplexTransferImageViewMethod)(const ImageView *,const ImageView *,
ImageView *,const ssize_t,const int,void *),
(*GetImageViewMethod)(const ImageView *,const ssize_t,const int,void *),
(*SetImageViewMethod)(ImageView *,const ssize_t,const int,void *),
(*TransferImageViewMethod)(const ImageView *,ImageView *,const ssize_t,
const int,void *),
(*UpdateImageViewMethod)(ImageView *,const ssize_t,const int,void *);
extern MagickExport char
*GetImageViewException(const ImageView *,ExceptionType *);
extern MagickExport const Quantum
*GetImageViewVirtualPixels(const ImageView *);
extern MagickExport const void
*GetImageViewVirtualMetacontent(const ImageView *);
extern MagickExport Image
*GetImageViewImage(const ImageView *);
extern MagickExport ImageView
*CloneImageView(const ImageView *),
*DestroyImageView(ImageView *),
*NewImageView(Image *,ExceptionInfo *),
*NewImageViewRegion(Image *,const ssize_t,const ssize_t,const size_t,
const size_t,ExceptionInfo *);
extern MagickExport MagickBooleanType
DuplexTransferImageViewIterator(ImageView *,ImageView *,ImageView *,
DuplexTransferImageViewMethod,void *),
GetImageViewIterator(ImageView *,GetImageViewMethod,void *),
IsImageView(const ImageView *),
SetImageViewIterator(ImageView *,SetImageViewMethod,void *),
TransferImageViewIterator(ImageView *,ImageView *,TransferImageViewMethod,
void *),
UpdateImageViewIterator(ImageView *,UpdateImageViewMethod,void *);
extern MagickExport Quantum
*GetImageViewAuthenticPixels(const ImageView *);
extern MagickExport RectangleInfo
GetImageViewExtent(const ImageView *);
extern MagickExport void
SetImageViewDescription(ImageView *,const char *),
SetImageViewThreads(ImageView *,const size_t);
extern MagickExport void
*GetImageViewAuthenticMetacontent(const ImageView *);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,577 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore image methods.
*/
#ifndef MAGICKCORE_IMAGE_H
#define MAGICKCORE_IMAGE_H
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
#define OpaqueAlpha ((Quantum) QuantumRange)
#define TransparentAlpha ((Quantum) 0)
typedef enum
{
UndefinedAlphaChannel,
ActivateAlphaChannel,
AssociateAlphaChannel,
BackgroundAlphaChannel,
CopyAlphaChannel,
DeactivateAlphaChannel,
DiscreteAlphaChannel,
DisassociateAlphaChannel,
ExtractAlphaChannel,
OffAlphaChannel,
OnAlphaChannel,
OpaqueAlphaChannel,
RemoveAlphaChannel,
SetAlphaChannel,
ShapeAlphaChannel,
TransparentAlphaChannel
} AlphaChannelOption;
typedef enum
{
UndefinedType,
BilevelType,
GrayscaleType,
GrayscaleAlphaType,
PaletteType,
PaletteAlphaType,
TrueColorType,
TrueColorAlphaType,
ColorSeparationType,
ColorSeparationAlphaType,
OptimizeType,
PaletteBilevelAlphaType
} ImageType;
typedef enum
{
UndefinedInterlace,
NoInterlace,
LineInterlace,
PlaneInterlace,
PartitionInterlace,
GIFInterlace,
JPEGInterlace,
PNGInterlace
} InterlaceType;
typedef enum
{
UndefinedOrientation,
TopLeftOrientation,
TopRightOrientation,
BottomRightOrientation,
BottomLeftOrientation,
LeftTopOrientation,
RightTopOrientation,
RightBottomOrientation,
LeftBottomOrientation
} OrientationType;
typedef enum
{
UndefinedResolution,
PixelsPerInchResolution,
PixelsPerCentimeterResolution
} ResolutionType;
typedef struct _PrimaryInfo
{
double
x,
y,
z;
} PrimaryInfo;
typedef struct _SegmentInfo
{
double
x1,
y1,
x2,
y2;
} SegmentInfo;
typedef enum
{
UndefinedTransmitType,
FileTransmitType,
BlobTransmitType,
StreamTransmitType,
ImageTransmitType
} TransmitType;
typedef struct _ChromaticityInfo
{
PrimaryInfo
red_primary,
green_primary,
blue_primary,
white_point;
} ChromaticityInfo;
#include "MagickCore/blob.h"
#include "MagickCore/colorspace.h"
#include "MagickCore/cache-view.h"
#include "MagickCore/color.h"
#include "MagickCore/composite.h"
#include "MagickCore/compress.h"
#include "MagickCore/effect.h"
#include "MagickCore/geometry.h"
#include "MagickCore/layer.h"
#include "MagickCore/locale_.h"
#include "MagickCore/monitor.h"
#include "MagickCore/pixel.h"
#include "MagickCore/profile.h"
#include "MagickCore/quantum.h"
#include "MagickCore/resample.h"
#include "MagickCore/resize.h"
#include "MagickCore/semaphore.h"
#include "MagickCore/stream.h"
#include "MagickCore/timer.h"
struct _Image
{
ClassType
storage_class;
ColorspaceType
colorspace; /* colorspace of image data */
CompressionType
compression; /* compression of image when read/write */
size_t
quality; /* compression quality setting, meaning varies */
OrientationType
orientation; /* photo orientation of image */
MagickBooleanType
taint; /* has image been modified since reading */
size_t
columns, /* physical size of image */
rows,
depth, /* depth of image on read/write */
colors; /* Size of color table, or actual color count */
/* Only valid if image is not DirectClass */
PixelInfo
*colormap,
alpha_color, /* deprecated */
background_color, /* current background color attribute */
border_color, /* current bordercolor attribute */
transparent_color; /* color for 'transparent' color index in GIF */
double
gamma;
ChromaticityInfo
chromaticity;
RenderingIntent
rendering_intent;
void
*profiles;
ResolutionType
units; /* resolution/density ppi or ppc */
char
*montage,
*directory,
*geometry;
ssize_t
offset; /* ??? */
PointInfo
resolution; /* image resolution/density */
RectangleInfo
page, /* virtual canvas size and offset of image */
extract_info;
double
fuzz; /* current color fuzz attribute - move to image_info */
FilterType
filter; /* resize/distort filter to apply */
PixelIntensityMethod
intensity; /* method to generate an intensity value from a pixel */
InterlaceType
interlace;
EndianType
endian; /* raw data integer ordering on read/write */
GravityType
gravity; /* Gravity attribute for positioning in image */
CompositeOperator
compose; /* alpha composition method for layered images */
DisposeType
dispose; /* GIF animation disposal method */
size_t
scene, /* index of image in multi-image file */
delay, /* Animation delay time */
duration; /* Total animation duration sum(delay*iterations) */
ssize_t
ticks_per_second; /* units for delay time, default 100 for GIF */
size_t
iterations, /* number of interations for GIF animations */
total_colors;
ssize_t
start_loop; /* ??? */
PixelInterpolateMethod
interpolate; /* Interpolation of color for between pixel lookups */
MagickBooleanType
black_point_compensation;
RectangleInfo
tile_offset;
ImageType
type;
MagickBooleanType
dither; /* dithering on/off */
MagickSizeType
extent; /* Size of image read from disk */
MagickBooleanType
ping; /* no image data read, just attributes */
MagickBooleanType
read_mask,
write_mask;
PixelTrait
alpha_trait; /* is transparency channel defined and active */
size_t
number_channels,
number_meta_channels,
metacontent_extent;
ChannelType
channel_mask;
PixelChannelMap
*channel_map;
void
*cache;
ErrorInfo
error;
TimerInfo
timer;
MagickProgressMonitor
progress_monitor;
void
*client_data;
Ascii85Info
*ascii85;
ProfileInfo
*generic_profile;
void
*properties, /* general settings, to save with image */
*artifacts; /* general operational/coder settings, not saved */
char
filename[MagickPathExtent], /* images input filename */
magick_filename[MagickPathExtent], /* given image filename (with read mods) */
magick[MagickPathExtent]; /* images file format (file magic) */
size_t
magick_columns, /* size of image when read/created */
magick_rows;
BlobInfo
*blob; /* image file as in-memory string of 'extent' */
time_t
timestamp;
MagickBooleanType
debug; /* debug output attribute */
volatile ssize_t
reference_count; /* image data sharing memory management */
SemaphoreInfo
*semaphore;
struct _ImageInfo
*image_info; /* (Optional) Image belongs to this ImageInfo 'list'
* For access to 'global options' when no per-image
* attribute, properity, or artifact has been set.
*/
struct _Image
*list, /* Undo/Redo image processing list (for display) */
*previous, /* Image list links */
*next;
size_t
signature;
PixelInfo
matte_color; /* current mattecolor attribute */
};
/*
ImageInfo structure:
Stores an image list, as well as all global settings used by all images
held, -- unless overridden for that specific image. See SyncImagesettings()
which maps any global setting that always overrides specific image settings.
*/
struct _ImageInfo
{
CompressionType
compression; /* compression method when reading/saving image */
OrientationType
orientation; /* orientation setting */
MagickBooleanType
temporary, /* image file to be deleted after read "empemeral:" */
adjoin, /* save images to separate scene files */
affirm,
antialias;
char
*size, /* image generation size */
*extract, /* crop/resize string on image read */
*page,
*scenes; /* scene numbers that is to be read in */
size_t
scene, /* starting value for image save numbering */
number_scenes, /* total number of images in list - for escapes */
depth; /* current read/save depth of images */
InterlaceType
interlace; /* interlace for image write */
EndianType
endian; /* integer endian order for raw image data */
ResolutionType
units; /* denisty pixels/inch or pixel/cm */
size_t
quality; /* compression quality */
char
*sampling_factor, /* JPEG write sampling factor */
*server_name, /* X windows server name - display/animate */
*font, /* DUP for draw_info */
*texture, /* montage/display background tile */
*density; /* DUP for image and draw_info */
double
pointsize,
fuzz; /* current color fuzz attribute */
PixelInfo
alpha_color, /* deprecated */
background_color, /* user set background color */
border_color, /* user set border color */
transparent_color; /* color for transparent index in color tables */
/* NB: fill color is only needed in draw_info! */
/* the same for undercolor (for font drawing) */
MagickBooleanType
dither, /* dither enable-disable */
monochrome; /* read/write pcl,pdf,ps,xps as monocrome image */
ColorspaceType
colorspace;
CompositeOperator
compose;
ImageType
type;
MagickBooleanType
ping, /* fast read image attributes, not image data */
verbose; /* verbose output enable/disable */
ChannelType
channel;
void
*options; /* splay tree of global options */
void
*profile;
MagickBooleanType
synchronize;
MagickProgressMonitor
progress_monitor;
void
*client_data,
*cache;
StreamHandler
stream;
FILE
*file;
void
*blob;
size_t
length;
char
magick[MagickPathExtent], /* image file format (file magick) */
unique[MagickPathExtent], /* unique tempory filename - delegates */
filename[MagickPathExtent]; /* filename when reading/writing image */
MagickBooleanType
debug;
size_t
signature;
CustomStreamInfo
*custom_stream;
PixelInfo
matte_color; /* matte (frame) color */
};
extern MagickExport ChannelType
SetImageChannelMask(Image *,const ChannelType);
extern MagickExport const char
DefaultTileGeometry[],
DefaultTileLabel[],
LoadImageTag[],
LoadImagesTag[],
PSDensityGeometry[],
PSPageGeometry[],
SaveImageTag[],
SaveImagesTag[];
extern MagickExport const double
DefaultResolution;
extern MagickExport ExceptionType
CatchImageException(Image *);
extern MagickExport FILE
*GetImageInfoFile(const ImageInfo *);
extern MagickExport Image
*AcquireImage(const ImageInfo *,ExceptionInfo *),
*AppendImages(const Image *,const MagickBooleanType,ExceptionInfo *),
*CloneImage(const Image *,const size_t,const size_t,const MagickBooleanType,
ExceptionInfo *),
*DestroyImage(Image *),
*GetImageMask(const Image *,const PixelMask,ExceptionInfo *),
*NewMagickImage(const ImageInfo *,const size_t,const size_t,const PixelInfo *,
ExceptionInfo *),
*ReferenceImage(Image *),
*SmushImages(const Image *,const MagickBooleanType,const ssize_t,
ExceptionInfo *);
extern MagickExport ImageInfo
*AcquireImageInfo(void),
*CloneImageInfo(const ImageInfo *),
*DestroyImageInfo(ImageInfo *);
extern MagickExport MagickBooleanType
ClipImage(Image *,ExceptionInfo *),
ClipImagePath(Image *,const char *,const MagickBooleanType,ExceptionInfo *),
CopyImagePixels(Image *,const Image *,const RectangleInfo *,
const OffsetInfo *,ExceptionInfo *),
IsTaintImage(const Image *),
IsHighDynamicRangeImage(const Image *,ExceptionInfo *),
IsImageObject(const Image *),
ListMagickInfo(FILE *,ExceptionInfo *),
ModifyImage(Image **,ExceptionInfo *),
ResetImagePage(Image *,const char *),
SetImageAlpha(Image *,const Quantum,ExceptionInfo *),
SetImageBackgroundColor(Image *,ExceptionInfo *),
SetImageColor(Image *,const PixelInfo *,ExceptionInfo *),
SetImageExtent(Image *,const size_t,const size_t,ExceptionInfo *),
SetImageInfo(ImageInfo *,const unsigned int,ExceptionInfo *),
SetImageMask(Image *,const PixelMask type,const Image *,ExceptionInfo *),
SetImageRegionMask(Image *,const PixelMask type,const RectangleInfo *,
ExceptionInfo *),
SetImageStorageClass(Image *,const ClassType,ExceptionInfo *),
StripImage(Image *,ExceptionInfo *),
SyncImage(Image *,ExceptionInfo *),
SyncImageSettings(const ImageInfo *,Image *,ExceptionInfo *),
SyncImagesSettings(ImageInfo *,Image *,ExceptionInfo *);
extern MagickExport size_t
InterpretImageFilename(const ImageInfo *,Image *,const char *,int,char *,
ExceptionInfo *);
extern MagickExport ssize_t
GetImageReferenceCount(Image *);
extern MagickExport VirtualPixelMethod
GetImageVirtualPixelMethod(const Image *),
SetImageVirtualPixelMethod(Image *,const VirtualPixelMethod,ExceptionInfo *);
extern MagickExport void
AcquireNextImage(const ImageInfo *,Image *,ExceptionInfo *),
DestroyImagePixels(Image *),
DisassociateImageStream(Image *),
GetImageInfo(ImageInfo *),
SetImageInfoBlob(ImageInfo *,const void *,const size_t),
SetImageInfoFile(ImageInfo *,FILE *),
SetImageInfoCustomStream(ImageInfo *,CustomStreamInfo *);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,76 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore image layer methods.
*/
#ifndef MAGICKCORE_LAYER_H
#define MAGICKCORE_LAYER_H
#include "MagickCore/composite.h"
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
typedef enum
{
UnrecognizedDispose,
UndefinedDispose = 0,
NoneDispose = 1,
BackgroundDispose = 2,
PreviousDispose = 3
} DisposeType;
typedef enum
{
UndefinedLayer,
CoalesceLayer,
CompareAnyLayer,
CompareClearLayer,
CompareOverlayLayer,
DisposeLayer,
OptimizeLayer,
OptimizeImageLayer,
OptimizePlusLayer,
OptimizeTransLayer,
RemoveDupsLayer,
RemoveZeroLayer,
CompositeLayer,
MergeLayer,
FlattenLayer,
MosaicLayer,
TrimBoundsLayer
} LayerMethod;
extern MagickExport Image
*CoalesceImages(const Image *,ExceptionInfo *),
*DisposeImages(const Image *,ExceptionInfo *),
*CompareImagesLayers(const Image *,const LayerMethod,ExceptionInfo *),
*MergeImageLayers(Image *,const LayerMethod,ExceptionInfo *),
*OptimizeImageLayers(const Image *,ExceptionInfo *),
*OptimizePlusImageLayers(const Image *,ExceptionInfo *);
extern MagickExport void
CompositeLayers(Image *,const CompositeOperator,Image *,const ssize_t,
const ssize_t,ExceptionInfo *),
OptimizeImageTransparency(const Image *,ExceptionInfo *),
RemoveDuplicateLayers(Image **,ExceptionInfo *),
RemoveZeroDelayLayers(Image **,ExceptionInfo *);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,57 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore linked list methods.
*/
#ifndef MAGICKCORE_LINKED_LIST_H
#define MAGICKCORE_LINKED_LIST_H
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
typedef struct _LinkedListInfo
LinkedListInfo;
extern MagickExport LinkedListInfo
*DestroyLinkedList(LinkedListInfo *,void *(*)(void *)),
*NewLinkedList(const size_t);
extern MagickExport MagickBooleanType
AppendValueToLinkedList(LinkedListInfo *,const void *),
InsertValueInLinkedList(LinkedListInfo *,const size_t,const void *),
InsertValueInSortedLinkedList(LinkedListInfo *,
int (*)(const void *,const void *),void **,const void *),
IsLinkedListEmpty(const LinkedListInfo *),
LinkedListToArray(LinkedListInfo *,void **);
extern MagickExport size_t
GetNumberOfElementsInLinkedList(const LinkedListInfo *);
extern MagickExport void
ClearLinkedList(LinkedListInfo *,void *(*)(void *)),
*GetLastValueInLinkedList(LinkedListInfo *),
*GetNextValueInLinkedList(LinkedListInfo *),
*GetValueFromLinkedList(LinkedListInfo *,const size_t),
*RemoveElementByValueFromLinkedList(LinkedListInfo *,const void *),
*RemoveElementFromLinkedList(LinkedListInfo *,const size_t),
*RemoveLastElementFromLinkedList(LinkedListInfo *),
ResetLinkedListIterator(LinkedListInfo *);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,65 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore image list methods.
*/
#ifndef MAGICKCORE_LIST_H
#define MAGICKCORE_LIST_H
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
extern MagickExport Image
*CloneImageList(const Image *,ExceptionInfo *),
*CloneImages(const Image *,const char *,ExceptionInfo *),
*DestroyImageList(Image *),
*DuplicateImages(Image *,const size_t,const char *,ExceptionInfo *),
*GetFirstImageInList(const Image *),
*GetImageFromList(const Image *,const ssize_t),
*GetLastImageInList(const Image *),
*GetNextImageInList(const Image *),
*GetPreviousImageInList(const Image *),
**ImageListToArray(const Image *,ExceptionInfo *),
*NewImageList(void),
*RemoveImageFromList(Image **),
*RemoveLastImageFromList(Image **),
*RemoveFirstImageFromList(Image **),
*SpliceImageIntoList(Image **,const size_t,const Image *),
*SplitImageList(Image *),
*SyncNextImageInList(const Image *);
extern MagickExport size_t
GetImageListLength(const Image *);
extern MagickExport ssize_t
GetImageIndexInList(const Image *);
extern MagickExport void
AppendImageToList(Image **,const Image *),
DeleteImageFromList(Image **),
DeleteImages(Image **,const char *,ExceptionInfo *),
InsertImageInList(Image **,Image *),
PrependImageToList(Image **,Image *),
ReplaceImageInList(Image **,Image *),
ReplaceImageInListReturnLast(Image **,Image *),
ReverseImageList(Image **),
SyncImageList(Image *);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,80 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore locale methods.
*/
#ifndef MAGICKCORE_LOCALE_H
#define MAGICKCORE_LOCALE_H
#include "MagickCore/linked-list.h"
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
typedef struct _LocaleInfo
{
char
*path,
*tag,
*message;
MagickBooleanType
stealth;
size_t
signature;
} LocaleInfo;
extern MagickExport char
**GetLocaleList(const char *,size_t *,ExceptionInfo *);
extern MagickExport const char
*GetLocaleMessage(const char *);
extern MagickExport const LocaleInfo
*GetLocaleInfo_(const char *,ExceptionInfo *),
**GetLocaleInfoList(const char *,size_t *,ExceptionInfo *);
extern MagickExport double
InterpretLocaleValue(const char *magick_restrict,char **magick_restrict);
extern MagickExport int
LocaleCompare(const char *,const char *),
LocaleNCompare(const char *,const char *,const size_t);
extern MagickExport LinkedListInfo
*DestroyLocaleOptions(LinkedListInfo *),
*GetLocaleOptions(const char *,ExceptionInfo *);
extern MagickExport MagickBooleanType
ListLocaleInfo(FILE *,ExceptionInfo *);
extern MagickExport ssize_t
FormatLocaleFile(FILE *,const char *magick_restrict,...)
magick_attribute((__format__ (__printf__,2,3))),
FormatLocaleString(char *magick_restrict,const size_t,
const char *magick_restrict,...)
magick_attribute((__format__ (__printf__,3,4)));
extern MagickExport void
LocaleLower(char *),
LocaleUpper(char *);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,98 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore log methods.
*/
#ifndef MAGICKCORE_LOG_H
#define MAGICKCORE_LOG_H
#include "MagickCore/exception.h"
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
#if !defined(GetMagickModule)
# define GetMagickModule() __FILE__,__func__,(unsigned long) __LINE__
#endif
#define MagickLogFilename "log.xml"
typedef enum
{
UndefinedEvents = 0x000000,
NoEvents = 0x00000,
AccelerateEvent = 0x00001,
AnnotateEvent = 0x00002,
BlobEvent = 0x00004,
CacheEvent = 0x00008,
CoderEvent = 0x00010,
ConfigureEvent = 0x00020,
DeprecateEvent = 0x00040,
DrawEvent = 0x00080,
ExceptionEvent = 0x00100, /* Log Errors and Warnings immediately */
ImageEvent = 0x00200,
LocaleEvent = 0x00400,
ModuleEvent = 0x00800, /* Loding of coder and filter modules */
PixelEvent = 0x01000,
PolicyEvent = 0x02000,
ResourceEvent = 0x04000,
TraceEvent = 0x08000,
TransformEvent = 0x10000,
UserEvent = 0x20000,
WandEvent = 0x40000, /* Log MagickWand */
X11Event = 0x80000,
CommandEvent = 0x100000, /* Log Command Processing (CLI & Scripts) */
AllEvents = 0x7fffffff
} LogEventType;
typedef struct _LogInfo
LogInfo;
typedef void
(*MagickLogMethod)(const LogEventType,const char *);
extern MagickExport char
**GetLogList(const char *,size_t *,ExceptionInfo *);
extern MagickExport const char
*GetLogName(void),
*SetLogName(const char *);
extern MagickExport const LogInfo
**GetLogInfoList(const char *,size_t *,ExceptionInfo *);
extern MagickExport LogEventType
SetLogEventMask(const char *);
extern MagickExport MagickBooleanType
IsEventLogging(void),
ListLogInfo(FILE *,ExceptionInfo *),
LogMagickEvent(const LogEventType,const char *,const char *,const size_t,
const char *,...)
magick_attribute((__format__ (__printf__,5,6))),
LogMagickEventList(const LogEventType,const char *,const char *,const size_t,
const char *,va_list) magick_attribute((__format__ (__printf__,5,0)));
extern MagickExport void
CloseMagickLog(void),
SetLogFormat(const char *),
SetLogMethod(MagickLogMethod);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,69 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore magic methods.
*/
#ifndef MAGICKCORE_MAGIC_H
#define MAGICKCORE_MAGIC_H
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
typedef struct _MagicInfo
{
char
*path,
*name,
*target;
unsigned char
*magic;
size_t
length;
MagickOffsetType
offset;
MagickBooleanType
exempt,
stealth;
size_t
signature;
} MagicInfo;
extern MagickExport char
**GetMagicList(const char *,size_t *,ExceptionInfo *);
extern MagickExport const char
*GetMagicName(const MagicInfo *);
extern MagickExport MagickBooleanType
ListMagicInfo(FILE *,ExceptionInfo *);
extern MagickExport const MagicInfo
*GetMagicInfo(const unsigned char *,const size_t,ExceptionInfo *),
**GetMagicInfoList(const char *,size_t *,ExceptionInfo *);
extern MagickExport size_t
GetMagicPatternExtent(ExceptionInfo *);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,205 @@
/*
Copyright 2012 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickConfig not autogenerated (fixed stuff)
*/
#ifndef MAGICKCORE_MAGICK_CONFIG_H
#define MAGICKCORE_MAGICK_CONFIG_H
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
#include "MagickCore/magick-baseconfig.h"
/* Compatibility block */
#if !defined(MAGICKCORE_QUANTUM_DEPTH) && defined(MAGICKCORE_QUANTUM_DEPTH_OBSOLETE_IN_H)
# warning "you should set MAGICKCORE_QUANTUM_DEPTH to sensible default set it to configure time default"
# warning "this is an obsolete behavior please fix your makefile"
# define MAGICKCORE_QUANTUM_DEPTH MAGICKCORE_QUANTUM_DEPTH_OBSOLETE_IN_H
#endif
/* Number of bits in a pixel Quantum (8/16/32/64) */
#ifndef MAGICKCORE_QUANTUM_DEPTH
# error "you should set MAGICKCORE_QUANTUM_DEPTH"
#endif
/* check values */
#if MAGICKCORE_QUANTUM_DEPTH != 8
# if MAGICKCORE_QUANTUM_DEPTH != 16
# if MAGICKCORE_QUANTUM_DEPTH != 32
# if MAGICKCORE_QUANTUM_DEPTH != 64
# error "MAGICKCORE_QUANTUM_DEPTH is not 8/16/32/64 bits"
# endif
# endif
# endif
#endif
#if !defined(MAGICKCORE_HDRI_ENABLE) && defined(MAGICKCORE_HDRI_ENABLE_OBSOLETE_IN_H)
# warning "you should set MAGICKCORE_HDRI_ENABLE to sensible default set it to configure time default"
# warning "this is an obsolete behavior please fix yours makefile"
# define MAGICKCORE_HDRI_ENABLE MAGICKCORE_HDRI_ENABLE_OBSOLETE_IN_H
#endif
/* whether HDRI is enable */
#if !defined(MAGICKCORE_HDRI_ENABLE)
# error "you should set MAGICKCORE_HDRI_ENABLE"
#endif
#if MAGICKCORE_HDRI_ENABLE
# define MAGICKCORE_HDRI_SUPPORT 1
#endif
/* Compatibility block */
#if !defined(MAGICKCORE_QUANTUM_DEPTH) && defined(MAGICKCORE_QUANTUM_DEPTH_OBSOLETE_IN_H)
# warning "you should set MAGICKCORE_QUANTUM_DEPTH to sensible default set it to configure time default"
# warning "this is an obsolete behavior please fix yours makefile"
# define MAGICKCORE_QUANTUM_DEPTH MAGICKCORE_QUANTUM_DEPTH_OBSOLETE_IN_H
#endif
/* Number of bits in a pixel Quantum (8/16/32/64) */
#ifndef MAGICKCORE_QUANTUM_DEPTH
# error "you should set MAGICKCORE_QUANTUM_DEPTH"
#endif
/* check values */
#if MAGICKCORE_QUANTUM_DEPTH != 8
# if MAGICKCORE_QUANTUM_DEPTH != 16
# if MAGICKCORE_QUANTUM_DEPTH != 32
# if MAGICKCORE_QUANTUM_DEPTH != 64
# error "MAGICKCORE_QUANTUM_DEPTH is not 8/16/32/64 bits"
# endif
# endif
# endif
#endif
#if !defined(MAGICKCORE_HDRI_ENABLE) && defined(MAGICKCORE_HDRI_ENABLE_OBSOLETE_IN_H)
# warning "you should set MAGICKCORE_HDRI_ENABLE to sensible default set it to configure time default"
# warning "this is an obsolete behavior please fix yours makefile"
# define MAGICKCORE_HDRI_ENABLE MAGICKCORE_HDRI_ENABLE_OBSOLETE_IN_H
#endif
/* whether HDRI is enable */
#if !defined(MAGICKCORE_HDRI_ENABLE)
# error "you should set MAGICKCORE_HDRI_ENABLE"
#endif
#if MAGICKCORE_HDRI_ENABLE
# define MAGICKCORE_HDRI_SUPPORT 1
#endif
#if defined __CYGWIN32__ && !defined __CYGWIN__
/* For backwards compatibility with Cygwin b19 and
earlier, we define __CYGWIN__ here, so that
we can rely on checking just for that macro. */
# define __CYGWIN__ __CYGWIN32__
#endif
/*! stringify */
#define MAGICKCORE_STRING_QUOTE(str) #str
#define MAGICKCORE_STRING_XQUOTE(str) MAGICKCORE_STRING_QUOTE(str)
/* ABI SUFFIX */
#ifndef MAGICKCORE_HDRI_SUPPORT
#define MAGICKCORE_ABI_SUFFIX "Q" MAGICKCORE_STRING_XQUOTE(MAGICKCORE_QUANTUM_DEPTH)
#else
#define MAGICKCORE_ABI_SUFFIX "Q" MAGICKCORE_STRING_XQUOTE(MAGICKCORE_QUANTUM_DEPTH) "HDRI"
#endif
/* some path game */
#if !defined __CYGWIN__
# if defined (_WIN32) || defined (_WIN64) || defined (__MSDOS__) || defined (__DJGPP__) || defined (__OS2__)
/* Use Windows separators on all _WIN32 defining
environments, except Cygwin. */
# define MAGICKCORE_DIR_SEPARATOR_CHAR '\\'
# define MAGICKCORE_DIR_SEPARATOR "\\"
# define MAGICKCORE_PATH_SEPARATOR_CHAR ';'
# define MAGICKCORE_PATH_SEPARATOR ";"
# endif
#endif
/* posix */
#ifndef MAGICKCORE_DIR_SEPARATOR_CHAR
/* Assume that not having this is an indicator that all
are missing. */
# define MAGICKCORE_DIR_SEPARATOR_CHAR '/'
# define MAGICKCORE_DIR_SEPARATOR "/"
# define MAGICKCORE_PATH_SEPARATOR_CHAR ':'
# define MAGICKCORE_PATH_SEPARATOR ":"
#endif /* !DIR_SEPARATOR_CHAR */
# if defined(MAGICKCORE_POSIX_SUPPORT) || defined(__MINGW32__) || defined(__MINGW64__)
/* module dir */
#ifndef MAGICKCORE_MODULES_DIRNAME
# define MAGICKCORE_MODULES_DIRNAME MAGICKCORE_MODULES_BASEDIRNAME "-" MAGICKCORE_ABI_SUFFIX
#endif
#ifndef MAGICKCORE_MODULES_PATH
# define MAGICKCORE_MODULES_PATH MAGICKCORE_LIBRARY_PATH MAGICKCORE_DIR_SEPARATOR MAGICKCORE_MODULES_DIRNAME
#endif
#ifndef MAGICKCORE_MODULES_RELATIVE_PATH
#define MAGICKCORE_MODULES_RELATIVE_PATH MAGICKCORE_LIBRARY_RELATIVE_PATH MAGICKCORE_DIR_SEPARATOR MAGICKCORE_MODULES_DIRNAME
#endif
/* Subdirectory under lib to place ImageMagick coder module files */
#ifndef MAGICKCORE_CODER_PATH
# if defined(vms)
# define MAGICKCORE_CODER_PATH "sys$login:"
# else
# define MAGICKCORE_CODER_PATH MAGICKCORE_MODULES_PATH MAGICKCORE_DIR_SEPARATOR MAGICKCORE_CODER_DIRNAME
# endif
#endif
#ifndef MAGICKCORE_CODER_RELATIVE_PATH
# define MAGICKCORE_CODER_RELATIVE_PATH MAGICKCORE_MODULES_RELATIVE_PATH MAGICKCORE_DIR_SEPARATOR MAGICKCORE_CODER_DIRNAME
#endif
/* subdirectory under lib to place ImageMagick filter module files */
#ifndef MAGICKCORE_FILTER_PATH
# if defined(vms)
# define MAGICKCORE_FILTER_PATH "sys$login:"
# else
# define MAGICKCORE_FILTER_PATH MAGICKCORE_MODULES_PATH MAGICKCORE_DIR_SEPARATOR MAGICKCORE_FILTER_DIRNAME
# endif
#endif
#ifndef MAGICKCORE_FILTER_RELATIVE_PATH
# define MAGICKCORE_FILTER_RELATIVE_PATH MAGICKCORE_MODULES_RELATIVE_PATH MAGICKCORE_DIR_SEPARATOR MAGICKCORE_FILTER_DIRNAME
#endif
/* sharearch dir */
#ifndef MAGICKCORE_SHAREARCH_DIRNAME
# define MAGICKCORE_SHAREARCH_DIRNAME MAGICKCORE_SHAREARCH_BASEDIRNAME "-" MAGICKCORE_ABI_SUFFIX
#endif
#ifndef MAGICKCORE_SHAREARCH_PATH
# define MAGICKCORE_SHAREARCH_PATH MAGICKCORE_LIBRARY_PATH MAGICKCORE_DIR_SEPARATOR MAGICKCORE_SHAREARCH_DIRNAME MAGICKCORE_DIR_SEPARATOR
#endif
#ifndef MAGICKCORE_SHAREARCH_RELATIVE_PATH
#define MAGICKCORE_SHAREARCH_RELATIVE_PATH MAGICKCORE_LIBRARY_RELATIVE_PATH MAGICKCORE_DIR_SEPARATOR MAGICKCORE_SHAREARCH_DIRNAME
#endif
#endif
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,186 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore types.
*/
#ifndef MAGICKCORE_MAGICK_TYPE_H
#define MAGICKCORE_MAGICK_TYPE_H
#include "MagickCore/magick-config.h"
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
#if !defined(MAGICKCORE_QUANTUM_DEPTH)
#define MAGICKCORE_QUANTUM_DEPTH 16
#endif
#if defined(MAGICKCORE_WINDOWS_SUPPORT) && !defined(__MINGW32__) && !defined(__MINGW64__)
# define MagickLLConstant(c) (MagickOffsetType) (c ## i64)
# define MagickULLConstant(c) (MagickSizeType) (c ## ui64)
#else
# define MagickLLConstant(c) (MagickOffsetType) (c ## LL)
# define MagickULLConstant(c) (MagickSizeType) (c ## ULL)
#endif
#if !defined(MAGICKCORE_HAVE_DOUBLE_T)
typedef double double_t;
#endif
#if !defined(MAGICKCORE_HAVE_FLOAT_T)
typedef float float_t;
#endif
#if (MAGICKCORE_QUANTUM_DEPTH == 8)
#define MaxColormapSize 256UL
#define MaxMap 255UL
typedef double_t MagickRealType;
#if defined(MAGICKCORE_HDRI_SUPPORT)
typedef float_t Quantum;
#define QuantumRange 255.0
#define QuantumFormat "%g"
#else
typedef unsigned char Quantum;
#define QuantumRange ((Quantum) 255)
#define QuantumFormat "%u"
#endif
#elif (MAGICKCORE_QUANTUM_DEPTH == 16)
#define MaxColormapSize 65536UL
#define MaxMap 65535UL
typedef double_t MagickRealType;
#if defined(MAGICKCORE_HDRI_SUPPORT)
typedef float_t Quantum;
#define QuantumRange 65535.0f
#define QuantumFormat "%g"
#else
typedef unsigned short Quantum;
#define QuantumRange ((Quantum) 65535)
#define QuantumFormat "%u"
#endif
#elif (MAGICKCORE_QUANTUM_DEPTH == 32)
#define MaxColormapSize 65536UL
#define MaxMap 65535UL
typedef double_t MagickRealType;
#if defined(MAGICKCORE_HDRI_SUPPORT)
typedef double Quantum;
#define QuantumRange 4294967295.0
#define QuantumFormat "%g"
#else
typedef unsigned int Quantum;
#define QuantumRange ((Quantum) 4294967295)
#define QuantumFormat "%u"
#endif
#elif (MAGICKCORE_QUANTUM_DEPTH == 64)
#define MAGICKCORE_HDRI_SUPPORT 1
#define MaxColormapSize 65536UL
#define MaxMap 65535UL
typedef long double MagickRealType;
typedef long double Quantum;
#define QuantumRange 18446744073709551615.0
#define QuantumFormat "%g"
#else
#error "MAGICKCORE_QUANTUM_DEPTH must be one of 8, 16, 32, or 64"
#endif
#define MagickEpsilon (1.0e-15)
#define MagickMaximumValue 1.79769313486231570E+308
#define MagickMinimumValue 2.22507385850720140E-308
#define QuantumScale ((double) 1.0/(double) QuantumRange)
/*
Typedef declarations.
*/
typedef unsigned int MagickStatusType;
#if !defined(MAGICKCORE_WINDOWS_SUPPORT)
#if (MAGICKCORE_SIZEOF_UNSIGNED_LONG_LONG == 8)
typedef long long MagickOffsetType;
typedef unsigned long long MagickSizeType;
#define MagickOffsetFormat "lld"
#define MagickSizeFormat "llu"
#else
typedef ssize_t MagickOffsetType;
typedef size_t MagickSizeType;
#define MagickOffsetFormat "ld"
#define MagickSizeFormat "lu"
#endif
#else
typedef __int64 MagickOffsetType;
typedef unsigned __int64 MagickSizeType;
#define MagickOffsetFormat "I64i"
#define MagickSizeFormat "I64u"
#endif
#if defined(_MSC_VER) && (_MSC_VER == 1200)
typedef MagickOffsetType QuantumAny;
#else
typedef MagickSizeType QuantumAny;
#endif
#if defined(macintosh)
#define ExceptionInfo MagickExceptionInfo
#endif
typedef enum
{
UndefinedClass,
DirectClass,
PseudoClass
} ClassType;
typedef enum
{
MagickFalse = 0,
MagickTrue = 1
} MagickBooleanType;
/*
The IsNaN test is for special floating point numbers of value Nan (not a
number). NaN's are defined as part of the IEEE standard for floating point
number representation, and need to be watched out for. Morphology Kernels
often use these special numbers as neighbourhood masks.
The special property that two NaN's are never equal, even if they are from
the same variable allows you to test if a value is special NaN value.
The macros are thus is only true if the value given is NaN.
*/
#if defined(MAGICKCORE_HAVE_ISNAN)
# define IsNaN(a) isnan(a)
#elif defined(_MSC_VER) && (_MSC_VER >= 1310)
# include <float.h>
# define IsNaN(a) _isnan(a)
#else
# define IsNaN(a) (a != a)
#endif
#if !defined(INFINITY)
# define INFINITY (log(0))
#endif
typedef struct _BlobInfo BlobInfo;
typedef struct _ExceptionInfo ExceptionInfo;
typedef struct _Image Image;
typedef struct _ImageInfo ImageInfo;
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,147 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore magick methods.
*/
#ifndef MAGICKCORE_MAGICK_H
#define MAGICKCORE_MAGICK_H
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
#include <stdarg.h>
#include "MagickCore/semaphore.h"
typedef enum
{
UndefinedFormatType,
ImplicitFormatType,
ExplicitFormatType
} MagickFormatType;
typedef enum
{
CoderNoFlag = 0x0000,
CoderAdjoinFlag = 0x0001,
CoderBlobSupportFlag = 0x0002,
CoderDecoderThreadSupportFlag = 0x0004,
CoderEncoderThreadSupportFlag = 0x0008,
CoderEndianSupportFlag = 0x0010,
CoderRawSupportFlag = 0x0020,
CoderSeekableStreamFlag = 0x0040, /* deprecated */
CoderStealthFlag = 0x0080,
CoderUseExtensionFlag = 0x0100,
CoderDecoderSeekableStreamFlag = 0x0200,
CoderEncoderSeekableStreamFlag = 0x0400,
} MagickInfoFlag;
typedef Image
*DecodeImageHandler(const ImageInfo *,ExceptionInfo *);
typedef MagickBooleanType
EncodeImageHandler(const ImageInfo *,Image *,ExceptionInfo *);
typedef MagickBooleanType
IsImageFormatHandler(const unsigned char *,const size_t);
typedef struct _MagickInfo
{
char
*name,
*description,
*version,
*mime_type,
*note,
*module;
DecodeImageHandler
*decoder;
EncodeImageHandler
*encoder;
ImageInfo
*image_info;
IsImageFormatHandler
*magick;
MagickFormatType
format_type;
MagickStatusType
flags;
SemaphoreInfo
*semaphore;
size_t
signature;
void
*client_data;
} MagickInfo;
extern MagickExport char
**GetMagickList(const char *,size_t *,ExceptionInfo *);
extern MagickExport const char
*GetMagickDescription(const MagickInfo *),
*GetMagickMimeType(const MagickInfo *);
extern MagickExport DecodeImageHandler
*GetImageDecoder(const MagickInfo *);
extern MagickExport EncodeImageHandler
*GetImageEncoder(const MagickInfo *);
extern MagickExport int
GetMagickPrecision(void),
SetMagickPrecision(const int);
extern MagickExport MagickBooleanType
GetImageMagick(const unsigned char *,const size_t,char *),
GetMagickAdjoin(const MagickInfo *),
GetMagickBlobSupport(const MagickInfo *),
GetMagickDecoderSeekableStream(const MagickInfo *),
GetMagickDecoderThreadSupport(const MagickInfo *),
GetMagickEncoderSeekableStream(const MagickInfo *),
GetMagickEncoderThreadSupport(const MagickInfo *),
GetMagickEndianSupport(const MagickInfo *),
GetMagickRawSupport(const MagickInfo *),
GetMagickStealth(const MagickInfo *),
GetMagickUseExtension(const MagickInfo *),
IsMagickCoreInstantiated(void),
RegisterMagickInfo(MagickInfo *),
UnregisterMagickInfo(const char *);
extern const MagickExport MagickInfo
*GetMagickInfo(const char *,ExceptionInfo *),
**GetMagickInfoList(const char *,size_t *,ExceptionInfo *);
extern MagickExport MagickInfo
*AcquireMagickInfo(const char *, const char *, const char *);
extern MagickExport void
MagickCoreGenesis(const char *,const MagickBooleanType),
MagickCoreTerminus(void);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,52 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore matrix methods.
*/
#ifndef MAGICKCORE_MATRIX_H
#define MAGICKCORE_MATRIX_H
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
typedef struct _MatrixInfo
MatrixInfo;
extern MagickExport double
**AcquireMagickMatrix(const size_t,const size_t),
**RelinquishMagickMatrix(double **,const size_t);
extern MagickExport Image
*MatrixToImage(const MatrixInfo *,ExceptionInfo *);
extern MagickExport MagickBooleanType
GetMatrixElement(const MatrixInfo *,const ssize_t,const ssize_t,void *),
NullMatrix(MatrixInfo *),
SetMatrixElement(const MatrixInfo *,const ssize_t,const ssize_t,const void *);
MagickExport MatrixInfo
*AcquireMatrixInfo(const size_t,const size_t,const size_t,ExceptionInfo *),
*DestroyMatrixInfo(MatrixInfo *);
MagickExport size_t
GetMatrixColumns(const MatrixInfo *),
GetMatrixRows(const MatrixInfo *);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,64 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore memory methods.
*/
#ifndef MAGICKCORE_MEMORY_H
#define MAGICKCORE_MEMORY_H
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
typedef struct _MemoryInfo
MemoryInfo;
typedef void
*(*AcquireMemoryHandler)(size_t) magick_alloc_size(1),
(*DestroyMemoryHandler)(void *),
*(*ResizeMemoryHandler)(void *,size_t) magick_alloc_size(2);
extern MagickExport MemoryInfo
*AcquireVirtualMemory(const size_t,const size_t) magick_alloc_sizes(1,2),
*RelinquishVirtualMemory(MemoryInfo *);
extern MagickExport void
*AcquireAlignedMemory(const size_t,const size_t)
magick_attribute((__malloc__)) magick_alloc_sizes(1,2),
*AcquireMagickMemory(const size_t) magick_attribute((__malloc__))
magick_alloc_size(1),
*AcquireQuantumMemory(const size_t,const size_t)
magick_attribute((__malloc__)) magick_alloc_sizes(1,2),
*CopyMagickMemory(void *,const void *,const size_t)
magick_attribute((__nonnull__)),
DestroyMagickMemory(void),
GetMagickMemoryMethods(AcquireMemoryHandler *,ResizeMemoryHandler *,
DestroyMemoryHandler *),
*GetVirtualMemoryBlob(const MemoryInfo *),
*RelinquishAlignedMemory(void *),
*RelinquishMagickMemory(void *),
*ResetMagickMemory(void *,int,const size_t),
*ResizeMagickMemory(void *,const size_t)
magick_attribute((__malloc__)) magick_alloc_size(2),
*ResizeQuantumMemory(void *,const size_t,const size_t)
magick_attribute((__malloc__)) magick_alloc_sizes(2,3),
SetMagickMemoryMethods(AcquireMemoryHandler,ResizeMemoryHandler,
DestroyMemoryHandler);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,147 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore method attributes.
*/
#ifndef MAGICKCORE_METHOD_ATTRIBUTE_H
#define MAGICKCORE_METHOD_ATTRIBUTE_H
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
#if defined(__BORLANDC__) && defined(_DLL)
# pragma message("BCBMagick lib DLL export interface")
# define _MAGICKDLL_
# define _MAGICKLIB_
# define MAGICKCORE_MODULES_SUPPORT
# undef MAGICKCORE_BUILD_MODULES
#endif
#if defined(MAGICKCORE_WINDOWS_SUPPORT) && !defined(__CYGWIN__)
# define MagickPrivate
# if defined(_MT) && defined(_DLL) && !defined(_MAGICKDLL_) && !defined(_LIB)
# define _MAGICKDLL_
# endif
# if defined(_MAGICKDLL_)
# if defined(_VISUALC_)
# pragma warning( disable: 4273 ) /* Disable the dll linkage warnings */
# endif
# if !defined(_MAGICKLIB_)
# if defined(__clang__) || defined(__GNUC__)
# define MagickExport __attribute__ ((dllimport))
# else
# define MagickExport __declspec(dllimport)
# endif
# if defined(_VISUALC_)
# pragma message( "MagickCore lib DLL import interface" )
# endif
# else
# if defined(__clang__) || defined(__GNUC__)
# define MagickExport __attribute__ ((dllexport))
# else
# define MagickExport __declspec(dllexport)
# endif
# if defined(_VISUALC_)
# pragma message( "MagickCore lib DLL export interface" )
# endif
# endif
# else
# define MagickExport
# if defined(_VISUALC_)
# pragma message( "MagickCore lib static interface" )
# endif
# endif
# if defined(_DLL) && !defined(_LIB)
# if defined(__clang__) || defined(__GNUC__)
# define ModuleExport __attribute__ ((dllexport))
# else
# define ModuleExport __declspec(dllexport)
# endif
# if defined(_VISUALC_)
# pragma message( "MagickCore module DLL export interface" )
# endif
# else
# define ModuleExport
# if defined(_VISUALC_)
# pragma message( "MagickCore module static interface" )
# endif
# endif
# if defined(_VISUALC_)
# pragma warning(disable : 4018)
# pragma warning(disable : 4068)
# pragma warning(disable : 4244)
# pragma warning(disable : 4142)
# pragma warning(disable : 4800)
# pragma warning(disable : 4786)
# pragma warning(disable : 4996)
# endif
#else
# if defined(__clang__) || (__GNUC__ >= 4)
# define MagickExport __attribute__ ((visibility ("default")))
# define MagickPrivate __attribute__ ((visibility ("hidden")))
# else
# define MagickExport
# define MagickPrivate
# endif
# define ModuleExport MagickExport
#endif
#define MagickCoreSignature 0xabacadabUL
#if !defined(MagickPathExtent)
# define MagickPathExtent 4096 /* always >= 4096 */
#endif
# define MaxTextExtent MagickPathExtent
#if defined(MAGICKCORE_HAVE___ATTRIBUTE__)
# define magick_aligned(x,y) x __attribute__((aligned(y)))
# define magick_attribute __attribute__
# define magick_unused(x) magick_unused_ ## x __attribute__((unused))
# define magick_unreferenced(x) /* nothing */
#elif defined(MAGICKCORE_WINDOWS_SUPPORT) && !defined(__CYGWIN__)
# define magick_aligned(x,y) __declspec(align(y)) x
# define magick_attribute(x) /* nothing */
# define magick_unused(x) x
# define magick_unreferenced(x) (x)
#else
# define magick_aligned(x,y) /* nothing */
# define magick_attribute(x) /* nothing */
# define magick_unused(x) x
# define magick_unreferenced(x) /* nothing */
#endif
#if !defined(__clang__) && (((__GNUC__) > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3)))
# define magick_alloc_size(x) __attribute__((__alloc_size__(x)))
# define magick_alloc_sizes(x,y) __attribute__((__alloc_size__(x,y)))
#else
# define magick_alloc_size(x) /* nothing */
# define magick_alloc_sizes(x,y) /* nothing */
#endif
#if defined(__clang__) || (((__GNUC__) > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3)))
# define magick_cold_spot __attribute__((__cold__))
# define magick_hot_spot __attribute__((__hot__))
#else
# define magick_cold_spot
# define magick_hot_spot
#endif
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,48 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
The ImageMagick mime methods.
*/
#ifndef MAGICKCORE_MIME_H
#define MAGICKCORE_MIME_H
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
typedef struct _MimeInfo
MimeInfo;
extern MagickExport char
**GetMimeList(const char *,size_t *,ExceptionInfo *),
*MagickToMime(const char *);
extern MagickExport const char
*GetMimeDescription(const MimeInfo *),
*GetMimeType(const MimeInfo *);
extern MagickExport MagickBooleanType
ListMimeInfo(FILE *,ExceptionInfo *),
LoadMimeLists(const char *,ExceptionInfo *);
extern MagickExport const MimeInfo
*GetMimeInfo(const char *,const unsigned char *,const size_t,ExceptionInfo *),
**GetMimeInfoList(const char *,size_t *,ExceptionInfo *);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,87 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore module methods.
*/
#ifndef MAGICKCORE_MODULE_H
#define MAGICKCORE_MODULE_H
#include "MagickCore/version.h"
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
#define MagickImageCoderSignature ((size_t) \
(((MagickLibInterface) << 8) | MAGICKCORE_QUANTUM_DEPTH))
#define MagickImageFilterSignature ((size_t) \
(((MagickLibInterface) << 8) | MAGICKCORE_QUANTUM_DEPTH))
typedef enum
{
MagickImageCoderModule,
MagickImageFilterModule
} MagickModuleType;
typedef struct _ModuleInfo
{
char
*path,
*tag;
void
*handle,
(*unregister_module)(void);
size_t
(*register_module)(void);
time_t
timestamp;
MagickBooleanType
stealth;
size_t
signature;
} ModuleInfo;
typedef size_t
ImageFilterHandler(Image **,const int,const char **,ExceptionInfo *);
extern MagickExport char
**GetModuleList(const char *,const MagickModuleType,size_t *,ExceptionInfo *);
extern MagickExport const ModuleInfo
**GetModuleInfoList(const char *,size_t *,ExceptionInfo *);
extern MagickExport MagickBooleanType
InvokeDynamicImageFilter(const char *,Image **,const int,const char **,
ExceptionInfo *),
ListModuleInfo(FILE *,ExceptionInfo *);
extern MagickExport ModuleInfo
*GetModuleInfo(const char *,ExceptionInfo *);
extern MagickExport void
DestroyModuleList(void),
RegisterStaticModules(void),
UnregisterStaticModules(void);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,49 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore progress monitor methods.
*/
#ifndef MAGICKCORE_MONITOR_H
#define MAGICKCORE_MONITOR_H
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
typedef MagickBooleanType
(*MagickProgressMonitor)(const char *,const MagickOffsetType,
const MagickSizeType,void *);
MagickExport MagickProgressMonitor
SetImageProgressMonitor(Image *,const MagickProgressMonitor,void *),
SetImageInfoProgressMonitor(ImageInfo *,const MagickProgressMonitor,void *);
static inline MagickBooleanType QuantumTick(const MagickOffsetType offset,
const MagickSizeType span)
{
if (span <= 100)
return(MagickTrue);
if (offset == (MagickOffsetType) (span-1))
return(MagickTrue);
if ((offset % (span/100)) == 0)
return(MagickTrue);
return(MagickFalse);
}
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,91 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore montage methods.
*/
#ifndef MAGICKCORE_MONTAGE_H
#define MAGICKCORE_MONTAGE_H
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
typedef enum
{
UndefinedMode,
FrameMode,
UnframeMode,
ConcatenateMode
} MontageMode;
typedef struct _MontageInfo
{
char
*geometry,
*tile,
*title,
*frame,
*texture,
*font;
double
pointsize;
size_t
border_width;
MagickBooleanType
shadow;
PixelInfo
alpha_color, /* deprecated */
background_color,
border_color,
fill,
stroke;
GravityType
gravity;
char
filename[MagickPathExtent];
MagickBooleanType
debug;
size_t
signature;
PixelInfo
matte_color;
} MontageInfo;
extern MagickExport Image
*MontageImages(const Image *,const MontageInfo *,ExceptionInfo *),
*MontageImageList(const ImageInfo *,const MontageInfo *,const Image *,
ExceptionInfo *);
extern MagickExport MontageInfo
*CloneMontageInfo(const ImageInfo *,const MontageInfo *),
*DestroyMontageInfo(MontageInfo *);
extern MagickExport void
GetMontageInfo(const ImageInfo *,MontageInfo *);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,152 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore morphology methods.
*/
#ifndef MAGICKCORE_MORPHOLOGY_H
#define MAGICKCORE_MORPHOLOGY_H
#include "MagickCore/geometry.h"
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
typedef enum
{
UndefinedKernel, /* equivalent to UnityKernel */
UnityKernel, /* The no-op or 'original image' kernel */
GaussianKernel, /* Convolution Kernels, Gaussian Based */
DoGKernel,
LoGKernel,
BlurKernel,
CometKernel,
BinomialKernel,
LaplacianKernel, /* Convolution Kernels, by Name */
SobelKernel,
FreiChenKernel,
RobertsKernel,
PrewittKernel,
CompassKernel,
KirschKernel,
DiamondKernel, /* Shape Kernels */
SquareKernel,
RectangleKernel,
OctagonKernel,
DiskKernel,
PlusKernel,
CrossKernel,
RingKernel,
PeaksKernel, /* Hit And Miss Kernels */
EdgesKernel,
CornersKernel,
DiagonalsKernel,
LineEndsKernel,
LineJunctionsKernel,
RidgesKernel,
ConvexHullKernel,
ThinSEKernel,
SkeletonKernel,
ChebyshevKernel, /* Distance Measuring Kernels */
ManhattanKernel,
OctagonalKernel,
EuclideanKernel,
UserDefinedKernel /* User Specified Kernel Array */
} KernelInfoType;
typedef enum
{
UndefinedMorphology,
/* Convolve / Correlate weighted sums */
ConvolveMorphology, /* Weighted Sum with reflected kernel */
CorrelateMorphology, /* Weighted Sum using a sliding window */
/* Low-level Morphology methods */
ErodeMorphology, /* Minimum Value in Neighbourhood */
DilateMorphology, /* Maximum Value in Neighbourhood */
ErodeIntensityMorphology, /* Pixel Pick using GreyScale Erode */
DilateIntensityMorphology, /* Pixel Pick using GreyScale Dialate */
IterativeDistanceMorphology, /* Add Kernel Value, take Minimum */
/* Second-level Morphology methods */
OpenMorphology, /* Dilate then Erode */
CloseMorphology, /* Erode then Dilate */
OpenIntensityMorphology, /* Pixel Pick using GreyScale Open */
CloseIntensityMorphology, /* Pixel Pick using GreyScale Close */
SmoothMorphology, /* Open then Close */
/* Difference Morphology methods */
EdgeInMorphology, /* Dilate difference from Original */
EdgeOutMorphology, /* Erode difference from Original */
EdgeMorphology, /* Dilate difference with Erode */
TopHatMorphology, /* Close difference from Original */
BottomHatMorphology, /* Open difference from Original */
/* Recursive Morphology methods */
HitAndMissMorphology, /* Foreground/Background pattern matching */
ThinningMorphology, /* Remove matching pixels from image */
ThickenMorphology, /* Add matching pixels from image */
/* Directly Applied Morphology methods */
DistanceMorphology, /* Add Kernel Value, take Minimum */
VoronoiMorphology /* Distance matte channel copy nearest color */
} MorphologyMethod;
typedef struct _KernelInfo
{
KernelInfoType
type;
size_t
width,
height;
ssize_t
x,
y;
MagickRealType
*values;
double
minimum,
maximum,
negative_range,
positive_range,
angle;
struct _KernelInfo
*next;
size_t
signature;
} KernelInfo;
extern MagickExport KernelInfo
*AcquireKernelInfo(const char *,ExceptionInfo *),
*AcquireKernelBuiltIn(const KernelInfoType,const GeometryInfo *,
ExceptionInfo *),
*CloneKernelInfo(const KernelInfo *),
*DestroyKernelInfo(KernelInfo *);
extern MagickExport Image
*MorphologyImage(const Image *,const MorphologyMethod,const ssize_t,
const KernelInfo *,ExceptionInfo *);
extern MagickExport void
ScaleGeometryKernelInfo(KernelInfo *,const char *),
ScaleKernelInfo(KernelInfo *,const double,const GeometryFlags),
UnityAddKernelInfo(KernelInfo *,const double);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,328 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore Windows NT utility methods.
*/
#ifndef MAGICKCORE_NT_BASE_H
#define MAGICKCORE_NT_BASE_H
#include "MagickCore/exception.h"
#include "MagickCore/geometry.h"
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
#if defined(MAGICKCORE_WINDOWS_SUPPORT)
#define WIN32_LEAN_AND_MEAN
#define VC_EXTRALEAN
#define _CRT_SECURE_NO_DEPRECATE 1
#include <windows.h>
#include <wchar.h>
#include <winuser.h>
#include <wingdi.h>
#include <io.h>
#include <process.h>
#include <errno.h>
#include <malloc.h>
#include <sys/utime.h>
#if defined(_DEBUG) && !defined(__MINGW32__) && !defined(__MINGW64__)
#include <crtdbg.h>
#endif
#define PROT_READ 0x01
#define PROT_WRITE 0x02
#define MAP_SHARED 0x01
#define MAP_PRIVATE 0x02
#define MAP_ANONYMOUS 0x20
#define F_OK 0
#define R_OK 4
#define W_OK 2
#define RW_OK 6
#define _SC_PAGESIZE 1
#define _SC_PHYS_PAGES 2
#define _SC_OPEN_MAX 3
#if !defined(SSIZE_MAX)
#define SSIZE_MAX 0x7fffffffL
#endif
/*
_MSC_VER values:
1100 MSVC 5.0
1200 MSVC 6.0
1300 MSVC 7.0 Visual C++ .NET 2002
1310 Visual c++ .NET 2003
1400 Visual C++ 2005
1500 Visual C++ 2008
1600 Visual C++ 2010
1700 Visual C++ 2012
1800 Visual C++ 2013
1900 Visual C++ 2015
*/
#if !defined(chsize)
# if defined(__BORLANDC__)
# define chsize(file,length) chsize(file,length)
# else
# define chsize(file,length) _chsize(file,length)
# endif
#endif
#if !defined(access)
#if defined(_VISUALC_) && (_MSC_VER >= 1400)
# define access(path,mode) _access_s(path,mode)
#endif
#endif
#if !defined(chdir)
# define chdir _chdir
#endif
#if !defined(close)
# define close _close
#endif
#if !defined(closedir)
# define closedir(directory) NTCloseDirectory(directory)
#endif
#define MAGICKCORE_HAVE_ERF
#if defined(_VISUALC_) && (_MSC_VER < 1700)
# define erf(x) NTErf(x)
#endif
#if !defined(fdopen)
# define fdopen _fdopen
#endif
#if !defined(fileno)
# define fileno _fileno
#endif
#if !defined(fseek) && !defined(__MINGW32__) && !defined(__MINGW64__)
#if defined(MAGICKCORE_WINDOWS_SUPPORT) && !defined(Windows95) && \
!(defined(_MSC_VER) && (_MSC_VER < 1400)) && \
!(defined(__MSVCRT_VERSION__) && (__MSVCRT_VERSION__ < 0x800))
# define fseek _fseeki64
#endif
#endif
#if !defined(fstat) && !defined(__BORLANDC__)
#if defined(MAGICKCORE_WINDOWS_SUPPORT) && !defined(Windows95) && \
!(defined(_MSC_VER) && (_MSC_VER < 1400)) && \
!(defined(__MSVCRT_VERSION__) && (__MSVCRT_VERSION__ < 0x800))
# define fstat _fstati64
#else
# define fstat _fstat
#endif
#endif
#if !defined(fsync)
# define fsync _commit
#endif
#if !defined(ftell) && !defined(__MINGW32__) && !defined(__MINGW64__)
#if defined(MAGICKCORE_WINDOWS_SUPPORT) && !defined(Windows95) && \
!(defined(_MSC_VER) && (_MSC_VER < 1400)) && \
!(defined(__MSVCRT_VERSION__) && (__MSVCRT_VERSION__ < 0x800))
# define ftell _ftelli64
#endif
#endif
#if !defined(ftruncate)
# define ftruncate(file,length) NTTruncateFile(file,length)
#endif
#if !defined(getcwd)
# define getcwd _getcwd
#endif
#if !defined(getpid)
# define getpid _getpid
#endif
#if !defined(hypot)
# define hypot _hypot
#endif
#if !defined(isatty)
# define isatty _isatty
#endif
#if !defined(locale_t)
#define locale_t _locale_t
#endif
#if defined(MAGICKCORE_WINDOWS_SUPPORT) && !defined(Windows95) && \
!(defined(_MSC_VER) && (_MSC_VER < 1400)) && \
!(defined(__MSVCRT_VERSION__) && (__MSVCRT_VERSION__ < 0x800))
#if !defined(lseek)
# define lseek _lseeki64
#endif
#else
#if !defined(lseek)
# define lseek _lseek
#endif
#endif
#if !defined(MAGICKCORE_LTDL_DELEGATE)
#if !defined(lt_dlclose)
# define lt_dlclose(handle) NTCloseLibrary(handle)
#endif
#if !defined(lt_dlerror)
# define lt_dlerror() NTGetLibraryError()
#endif
#if !defined(lt_dlexit)
# define lt_dlexit() NTExitLibrary()
#endif
#if !defined(lt_dlinit)
# define lt_dlinit() NTInitializeLibrary()
#endif
#if !defined(lt_dlopen)
# define lt_dlopen(filename) NTOpenLibrary(filename)
#endif
#if !defined(lt_dlsetsearchpath)
# define lt_dlsetsearchpath(path) NTSetSearchPath(path)
#endif
#if !defined(lt_dlsym)
# define lt_dlsym(handle,name) NTGetLibrarySymbol(handle,name)
#endif
#endif
#if !defined(mkdir)
# define mkdir _mkdir
#endif
#if !defined(mmap)
# define mmap(address,length,protection,access,file,offset) \
NTMapMemory(address,length,protection,access,file,offset)
#endif
#if !defined(msync)
# define msync(address,length,flags) NTSyncMemory(address,length,flags)
#endif
#if !defined(munmap)
# define munmap(address,length) NTUnmapMemory(address,length)
#endif
#if !defined(opendir)
# define opendir(directory) NTOpenDirectory(directory)
#endif
#if !defined(open)
# define open _open
#endif
#if !defined(pclose)
# define pclose _pclose
#endif
#if !defined(popen)
# define popen _popen
#endif
#if !defined(fprintf_l)
#define fprintf_l _fprintf_s_l
#endif
#if !defined(read)
# define read(fd,buffer,count) _read(fd,buffer,(unsigned int) count)
#endif
#if !defined(readdir)
# define readdir(directory) NTReadDirectory(directory)
#endif
#if !defined(seekdir)
# define seekdir(directory,offset) NTSeekDirectory(directory,offset)
#endif
#if !defined(setmode)
# define setmode _setmode
#endif
#if !defined(spawnvp)
# define spawnvp _spawnvp
#endif
#if !defined(strtod_l)
#define strtod_l _strtod_l
#endif
#if !defined(stat) && !defined(__BORLANDC__)
#if defined(MAGICKCORE_WINDOWS_SUPPORT) && !defined(Windows95) && \
!(defined(_MSC_VER) && (_MSC_VER < 1400)) && \
!(defined(__MSVCRT_VERSION__) && (__MSVCRT_VERSION__ < 0x800))
# define stat _stati64
#else
# define stat _stat
#endif
#endif
#if !defined(strcasecmp)
# define strcasecmp _stricmp
#endif
#if !defined(strncasecmp)
# define strncasecmp _strnicmp
#endif
#if !defined(sysconf)
# define sysconf(name) NTSystemConfiguration(name)
#endif
#if defined(MAGICKCORE_WINDOWS_SUPPORT) && !defined(Windows95) && \
!(defined(_MSC_VER) && (_MSC_VER < 1400)) && \
!(defined(__MSVCRT_VERSION__) && (__MSVCRT_VERSION__ < 0x800))
# define tell _telli64
#else
# define tell _tell
#endif
#if !defined(telldir)
# define telldir(directory) NTTellDirectory(directory)
#endif
#if !defined(tempnam)
# define tempnam _tempnam_s
#endif
#if !defined(umask)
# define umask _umask
#endif
#if !defined(unlink)
# define unlink _unlink
#endif
#if !defined(utime)
# define utime _utime
#endif
#if !defined(vfprintf_l)
#define vfprintf_l _vfprintf_l
#endif
#if !defined(vsnprintf)
#if !defined(_MSC_VER) || (defined(_MSC_VER) && _MSC_VER < 1500)
#define vsnprintf _vsnprintf
#endif
#endif
#if !defined(vsnprintf_l)
#define vsnprintf_l _vsnprintf_l
#endif
#if !defined(write)
# define write(fd,buffer,count) _write(fd,buffer,(unsigned int) count)
#endif
#if !defined(wstat) && !defined(__BORLANDC__)
#if defined(MAGICKCORE_WINDOWS_SUPPORT) && !defined(Windows95) && \
!(defined(_MSC_VER) && (_MSC_VER < 1400)) && \
!(defined(__MSVCRT_VERSION__) && (__MSVCRT_VERSION__ < 0x800))
# define wstat _wstati64
#else
# define wstat _wstat
#endif
#endif
#if defined(__BORLANDC__)
#undef _O_RANDOM
#define _O_RANDOM 0
#undef _O_SEQUENTIAL
#define _O_SEQUENTIAL 0
#undef _O_SHORT_LIVED
#define _O_SHORT_LIVED 0
#undef _O_TEMPORARY
#define _O_TEMPORARY 0
#endif
#undef gettimeofday
typedef struct _GhostInfo
GhostInfo_;
extern MagickExport char
**NTArgvToUTF8(const int argc,wchar_t **);
extern MagickExport const GhostInfo_
*NTGhostscriptDLLVectors(void);
extern MagickExport void
NTErrorHandler(const ExceptionType,const char *,const char *),
NTGhostscriptUnLoadDLL(void),
NTWarningHandler(const ExceptionType,const char *,const char *);
#endif
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,78 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore OpenCL public methods.
*/
#ifndef MAGICKCORE_OPENCL_H
#define MAGICKCORE_OPENCL_H
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
typedef enum
{
UndefinedCLDeviceType,
CpuCLDeviceType,
GpuCLDeviceType
} MagickCLDeviceType;
typedef struct _KernelProfileRecord
{
char
*kernel_name;
unsigned long
count,
max,
min,
total;
}* KernelProfileRecord;
typedef struct _MagickCLDevice* MagickCLDevice;
extern MagickExport const char
*GetOpenCLDeviceName(const MagickCLDevice),
*GetOpenCLDeviceVendorName(const MagickCLDevice),
*GetOpenCLDeviceVersion(const MagickCLDevice);
extern MagickExport const KernelProfileRecord
*GetOpenCLKernelProfileRecords(const MagickCLDevice,size_t *);
extern MagickExport double
GetOpenCLDeviceBenchmarkScore(const MagickCLDevice);
extern MagickExport MagickCLDevice
*GetOpenCLDevices(size_t *,ExceptionInfo *);
extern MagickExport MagickCLDeviceType
GetOpenCLDeviceType(const MagickCLDevice);
extern MagickExport MagickBooleanType
GetOpenCLDeviceEnabled(const MagickCLDevice),
GetOpenCLEnabled(void),
SetOpenCLEnabled(const MagickBooleanType);
extern MagickExport void
SetOpenCLDeviceEnabled(MagickCLDevice,
const MagickBooleanType),
SetOpenCLKernelProfileEnabled(MagickCLDevice,
const MagickBooleanType);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,211 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore option methods.
*/
#ifndef MAGICKCORE_OPTION_H
#define MAGICKCORE_OPTION_H
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
typedef enum
{
MagickUndefinedOptions = -1,
MagickAlignOptions = 0,
MagickAlphaChannelOptions,
MagickBooleanOptions,
MagickCacheOptions,
MagickChannelOptions,
MagickClassOptions,
MagickClipPathOptions,
MagickCoderOptions,
MagickColorOptions,
MagickColorspaceOptions,
MagickCommandOptions,
MagickComplexOptions,
MagickComplianceOptions,
MagickComposeOptions,
MagickCompressOptions,
MagickConfigureOptions,
MagickDataTypeOptions,
MagickDebugOptions,
MagickDecorateOptions,
MagickDelegateOptions,
MagickDirectionOptions,
MagickDisposeOptions,
MagickDistortOptions,
MagickDitherOptions,
MagickEndianOptions,
MagickEvaluateOptions,
MagickFillRuleOptions,
MagickFilterOptions,
MagickFontOptions,
MagickFontsOptions,
MagickFormatOptions,
MagickFunctionOptions,
MagickGradientOptions,
MagickGravityOptions,
MagickIntensityOptions,
MagickIntentOptions,
MagickInterlaceOptions,
MagickInterpolateOptions,
MagickKernelOptions,
MagickLayerOptions,
MagickLineCapOptions,
MagickLineJoinOptions,
MagickListOptions,
MagickLocaleOptions,
MagickLogEventOptions,
MagickLogOptions,
MagickMagicOptions,
MagickMethodOptions,
MagickMetricOptions,
MagickMimeOptions,
MagickModeOptions,
MagickModuleOptions,
MagickMorphologyOptions,
MagickNoiseOptions,
MagickOrientationOptions,
MagickPixelChannelOptions,
MagickPixelIntensityOptions,
MagickPixelMaskOptions,
MagickPixelTraitOptions,
MagickPolicyOptions,
MagickPolicyDomainOptions,
MagickPolicyRightsOptions,
MagickPreviewOptions,
MagickPrimitiveOptions,
MagickQuantumFormatOptions,
MagickResolutionOptions,
MagickResourceOptions,
MagickSparseColorOptions,
MagickStatisticOptions,
MagickStorageOptions,
MagickStretchOptions,
MagickStyleOptions,
MagickThresholdOptions,
MagickTypeOptions,
MagickValidateOptions,
MagickVirtualPixelOptions,
MagickWeightOptions
} CommandOption;
typedef enum
{
UndefinedValidate,
NoValidate = 0x00000,
ColorspaceValidate = 0x00001,
CompareValidate = 0x00002,
CompositeValidate = 0x00004,
ConvertValidate = 0x00008,
FormatsDiskValidate = 0x00010,
FormatsMapValidate = 0x00020,
FormatsMemoryValidate = 0x00040,
IdentifyValidate = 0x00080,
ImportExportValidate = 0x00100,
MontageValidate = 0x00200,
StreamValidate = 0x00400,
AllValidate = 0x7fffffff
} ValidateType;
/*
Flags to describe classes of image processing options.
These are used to determine how a option should be processed, and
avoid attempting to process all options in every way posible.
*/
typedef enum
{
UndefinedOptionFlag = 0x0000, /* option flag is not in use */
ImageInfoOptionFlag = 0x0001, /* Setting stored in ImageInfo */
DrawInfoOptionFlag = 0x0002, /* Setting stored in DrawInfo */
QuantizeInfoOptionFlag = 0x0004, /* Setting stored in QuantizeInfo */
GlobalOptionFlag = 0x0008, /* Global Setting or Control */
SettingOptionFlags = 0x000F, /* mask any setting option */
NoImageOperatorFlag = 0x0010, /* Images not required operator */
SimpleOperatorFlag = 0x0020, /* Simple Image processing operator */
ListOperatorFlag = 0x0040, /* Multi-Image processing operator */
GenesisOptionFlag = 0x0080, /* MagickCommandGenesis() Only Option */
SpecialOptionFlag = 0x0100, /* Operator with Special Requirements */
/* EG: for specific CLI commands */
AlwaysInterpretArgsFlag = 0x0400, /* Always Interpret escapes in Args */
/* CF: "convert" compatibility mode */
NeverInterpretArgsFlag = 0x0800, /* Never Interpret escapes in Args */
/* EG: filename, or delayed escapes */
NonMagickOptionFlag = 0x1000, /* Option not used by Magick Command */
FireOptionFlag = 0x2000, /* Convert operation seq firing point */
DeprecateOptionFlag = 0x4000, /* Deprecate option (no code) */
ReplacedOptionFlag = 0x8800 /* Replaced Option (but still works) */
} CommandOptionFlags;
typedef struct _OptionInfo
{
const char
*mnemonic;
ssize_t
type,
flags;
MagickBooleanType
stealth;
} OptionInfo;
extern MagickExport char
**GetCommandOptions(const CommandOption),
*GetNextImageOption(const ImageInfo *),
*RemoveImageOption(ImageInfo *,const char *);
extern MagickExport const char
*CommandOptionToMnemonic(const CommandOption,const ssize_t),
*GetImageOption(const ImageInfo *,const char *);
extern MagickExport MagickBooleanType
CloneImageOptions(ImageInfo *,const ImageInfo *),
DefineImageOption(ImageInfo *,const char *),
DeleteImageOption(ImageInfo *,const char *),
IsCommandOption(const char *),
IsOptionMember(const char *,const char *),
ListCommandOptions(FILE *,const CommandOption,ExceptionInfo *),
SetImageOption(ImageInfo *,const char *,const char *);
extern MagickExport ssize_t
GetCommandOptionFlags(const CommandOption,const MagickBooleanType,
const char *),
ParseChannelOption(const char *),
ParsePixelChannelOption(const char *),
ParseCommandOption(const CommandOption,const MagickBooleanType,const char *);
extern MagickExport void
DestroyImageOptions(ImageInfo *),
ResetImageOptions(const ImageInfo *),
ResetImageOptionIterator(const ImageInfo *);
extern MagickExport const OptionInfo
*GetCommandOptionInfo(const char *value);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,47 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore image paint methods.
*/
#ifndef MAGICKCORE_PAINT_H
#define MAGICKCORE_PAINT_H
#include "MagickCore/color.h"
#include "MagickCore/draw.h"
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
extern MagickExport Image
*OilPaintImage(const Image *,const double,const double,ExceptionInfo *);
extern MagickExport MagickBooleanType
FloodfillPaintImage(Image *,const DrawInfo *,const PixelInfo *,const ssize_t,
const ssize_t,const MagickBooleanType,ExceptionInfo *),
GradientImage(Image *,const GradientType,const SpreadMethod,const StopInfo *,
const size_t,ExceptionInfo *),
OpaquePaintImage(Image *,const PixelInfo *,const PixelInfo *,
const MagickBooleanType,ExceptionInfo *),
TransparentPaintImage(Image *,const PixelInfo *,
const Quantum,const MagickBooleanType,ExceptionInfo *),
TransparentPaintImageChroma(Image *,const PixelInfo *,
const PixelInfo *,const Quantum,const MagickBooleanType,ExceptionInfo *);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,870 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore pixel accessor methods.
*/
#ifndef MAGICKCORE_PIXEL_ACCESSOR_H
#define MAGICKCORE_PIXEL_ACCESSOR_H
#include <assert.h>
#include "MagickCore/cache.h"
#include "MagickCore/cache-view.h"
#include "MagickCore/color.h"
#include "MagickCore/colorspace.h"
#include "MagickCore/gem.h"
#include "MagickCore/image.h"
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
#undef index
static inline Quantum ClampPixel(const MagickRealType value)
{
if (value < 0.0f)
return((Quantum) 0);
if (value >= (MagickRealType) QuantumRange)
return((Quantum) QuantumRange);
#if !defined(MAGICKCORE_HDRI_SUPPORT)
return((Quantum) (value+0.5f));
#else
return((Quantum) value);
#endif
}
static inline Quantum GetPixela(const Image *magick_restrict image,
const Quantum *magick_restrict pixel)
{
return(pixel[image->channel_map[aPixelChannel].offset]);
}
static inline Quantum GetPixelAlpha(const Image *magick_restrict image,
const Quantum *magick_restrict pixel)
{
if (image->channel_map[AlphaPixelChannel].traits == UndefinedPixelTrait)
return(OpaqueAlpha);
return(pixel[image->channel_map[AlphaPixelChannel].offset]);
}
static inline PixelTrait GetPixelAlphaTraits(
const Image *magick_restrict image)
{
return(image->channel_map[AlphaPixelChannel].traits);
}
static inline Quantum GetPixelb(const Image *magick_restrict image,
const Quantum *magick_restrict pixel)
{
return(pixel[image->channel_map[bPixelChannel].offset]);
}
static inline Quantum GetPixelBlack(const Image *magick_restrict image,
const Quantum *magick_restrict pixel)
{
if (image->channel_map[BlackPixelChannel].traits == UndefinedPixelTrait)
return((Quantum) 0);
return(pixel[image->channel_map[BlackPixelChannel].offset]);
}
static inline PixelTrait GetPixelBlackTraits(
const Image *magick_restrict image)
{
return(image->channel_map[BlackPixelChannel].traits);
}
static inline Quantum GetPixelBlue(const Image *magick_restrict image,
const Quantum *magick_restrict pixel)
{
return(pixel[image->channel_map[BluePixelChannel].offset]);
}
static inline PixelTrait GetPixelBlueTraits(const Image *magick_restrict image)
{
return(image->channel_map[BluePixelChannel].traits);
}
static inline Quantum GetPixelCb(const Image *magick_restrict image,
const Quantum *magick_restrict pixel)
{
return(pixel[image->channel_map[CbPixelChannel].offset]);
}
static inline PixelTrait GetPixelCbTraits(const Image *magick_restrict image)
{
return(image->channel_map[CbPixelChannel].traits);
}
static inline Quantum GetPixelChannel(const Image *magick_restrict image,
const PixelChannel channel,const Quantum *magick_restrict pixel)
{
if (image->channel_map[channel].traits == UndefinedPixelTrait)
return((Quantum) 0);
return(pixel[image->channel_map[channel].offset]);
}
static inline PixelChannel GetPixelChannelChannel(
const Image *magick_restrict image,const ssize_t offset)
{
return(image->channel_map[offset].channel);
}
static inline ssize_t GetPixelChannelOffset(const Image *magick_restrict image,
const PixelChannel channel)
{
return(image->channel_map[channel].offset);
}
static inline PixelTrait GetPixelChannelTraits(
const Image *magick_restrict image,const PixelChannel channel)
{
return(image->channel_map[channel].traits);
}
static inline size_t GetPixelChannels(const Image *magick_restrict image)
{
return(image->number_channels);
}
static inline Quantum GetPixelCr(const Image *magick_restrict image,
const Quantum *magick_restrict pixel)
{
return(pixel[image->channel_map[CrPixelChannel].offset]);
}
static inline PixelTrait GetPixelCrTraits(const Image *magick_restrict image)
{
return(image->channel_map[CrPixelChannel].traits);
}
static inline Quantum GetPixelCyan(const Image *magick_restrict image,
const Quantum *magick_restrict pixel)
{
return(pixel[image->channel_map[CyanPixelChannel].offset]);
}
static inline PixelTrait GetPixelCyanTraits(const Image *magick_restrict image)
{
return(image->channel_map[CyanPixelChannel].traits);
}
static inline Quantum GetPixelGray(const Image *magick_restrict image,
const Quantum *magick_restrict pixel)
{
return(pixel[image->channel_map[GrayPixelChannel].offset]);
}
static inline PixelTrait GetPixelGrayTraits(const Image *magick_restrict image)
{
return(image->channel_map[GrayPixelChannel].traits);
}
static inline Quantum GetPixelGreen(const Image *magick_restrict image,
const Quantum *magick_restrict pixel)
{
return(pixel[image->channel_map[GreenPixelChannel].offset]);
}
static inline PixelTrait GetPixelGreenTraits(
const Image *magick_restrict image)
{
return(image->channel_map[GreenPixelChannel].traits);
}
static inline Quantum GetPixelIndex(const Image *magick_restrict image,
const Quantum *magick_restrict pixel)
{
if (image->channel_map[IndexPixelChannel].traits == UndefinedPixelTrait)
return((Quantum) 0);
return(pixel[image->channel_map[IndexPixelChannel].offset]);
}
static inline PixelTrait GetPixelIndexTraits(
const Image *magick_restrict image)
{
return(image->channel_map[IndexPixelChannel].traits);
}
static inline MagickRealType GetPixelInfoChannel(
const PixelInfo *magick_restrict pixel_info,const PixelChannel channel)
{
switch (channel)
{
case RedPixelChannel: return(pixel_info->red);
case GreenPixelChannel: return(pixel_info->green);
case BluePixelChannel: return(pixel_info->blue);
case BlackPixelChannel: return(pixel_info->black);
case AlphaPixelChannel: return(pixel_info->alpha);
case IndexPixelChannel: return(pixel_info->index);
default: return((MagickRealType) 0.0);
}
}
static inline double PerceptibleReciprocal(const double x)
{
double
sign;
/*
Return 1/x where x is perceptible (not unlimited or infinitesimal).
*/
sign=x < 0.0 ? -1.0 : 1.0;
if ((sign*x) >= MagickEpsilon)
return(1.0/x);
return(sign/MagickEpsilon);
}
static inline MagickRealType GetPixelInfoLuma(
const PixelInfo *magick_restrict pixel)
{
MagickRealType
intensity;
if (pixel->colorspace == sRGBColorspace)
{
intensity=(MagickRealType) (0.212656f*pixel->red+0.715158f*pixel->green+
0.072186f*pixel->blue);
return(intensity);
}
intensity=(MagickRealType) (0.212656f*EncodePixelGamma(pixel->red)+
0.715158f*EncodePixelGamma(pixel->green)+
0.072186f*EncodePixelGamma(pixel->blue));
return(intensity);
}
static inline MagickRealType GetPixelInfoLuminance(
const PixelInfo *magick_restrict pixel)
{
MagickRealType
intensity;
if (pixel->colorspace != sRGBColorspace)
{
intensity=(MagickRealType) (0.212656f*pixel->red+0.715158f*pixel->green+
0.072186f*pixel->blue);
return(intensity);
}
intensity=(MagickRealType) (0.212656f*DecodePixelGamma(pixel->red)+
0.715158f*DecodePixelGamma(pixel->green)+
0.072186f*DecodePixelGamma(pixel->blue));
return(intensity);
}
static inline Quantum GetPixelL(const Image *magick_restrict image,
const Quantum *magick_restrict pixel)
{
return(pixel[image->channel_map[LPixelChannel].offset]);
}
static inline ssize_t GetPixelLabel(const Image *magick_restrict image,
const Quantum *magick_restrict pixel)
{
return((ssize_t) pixel[image->channel_map[LabelPixelChannel].offset]);
}
static inline MagickRealType GetPixelLuma(const Image *magick_restrict image,
const Quantum *magick_restrict pixel)
{
MagickRealType
intensity;
intensity=(MagickRealType) (
0.212656f*pixel[image->channel_map[RedPixelChannel].offset]+
0.715158f*pixel[image->channel_map[GreenPixelChannel].offset]+
0.072186f*pixel[image->channel_map[BluePixelChannel].offset]);
return(intensity);
}
static inline MagickRealType GetPixelLuminance(
const Image *magick_restrict image,const Quantum *magick_restrict pixel)
{
MagickRealType
intensity;
if (image->colorspace != sRGBColorspace)
{
intensity=(MagickRealType) (
0.212656f*pixel[image->channel_map[RedPixelChannel].offset]+
0.715158f*pixel[image->channel_map[GreenPixelChannel].offset]+
0.072186f*pixel[image->channel_map[BluePixelChannel].offset]);
return(intensity);
}
intensity=(MagickRealType) (0.212656f*DecodePixelGamma((MagickRealType)
pixel[image->channel_map[RedPixelChannel].offset])+0.715158f*
DecodePixelGamma((MagickRealType)
pixel[image->channel_map[GreenPixelChannel].offset])+0.072186f*
DecodePixelGamma((MagickRealType)
pixel[image->channel_map[BluePixelChannel].offset]));
return(intensity);
}
static inline Quantum GetPixelMagenta(const Image *magick_restrict image,
const Quantum *magick_restrict pixel)
{
return(pixel[image->channel_map[MagentaPixelChannel].offset]);
}
static inline PixelTrait GetPixelMagentaTraits(
const Image *magick_restrict image)
{
return(image->channel_map[MagentaPixelChannel].traits);
}
static inline Quantum GetPixelReadMask(const Image *magick_restrict image,
const Quantum *magick_restrict pixel)
{
if (image->channel_map[ReadMaskPixelChannel].traits == UndefinedPixelTrait)
return((Quantum) QuantumRange);
return(pixel[image->channel_map[ReadMaskPixelChannel].offset]);
}
static inline Quantum GetPixelWriteMask(const Image *magick_restrict image,
const Quantum *magick_restrict pixel)
{
if (image->channel_map[WriteMaskPixelChannel].traits == UndefinedPixelTrait)
return((Quantum) QuantumRange);
return(pixel[image->channel_map[WriteMaskPixelChannel].offset]);
}
static inline PixelTrait GetPixelReadMaskTraits(
const Image *magick_restrict image)
{
return(image->channel_map[ReadMaskPixelChannel].traits);
}
static inline size_t GetPixelMetaChannels(const Image *magick_restrict image)
{
return(image->number_meta_channels);
}
static inline size_t GetPixelMetacontentExtent(
const Image *magick_restrict image)
{
return(image->metacontent_extent);
}
static inline Quantum GetPixelOpacity(const Image *magick_restrict image,
const Quantum *magick_restrict pixel)
{
if (image->channel_map[AlphaPixelChannel].traits != BlendPixelTrait)
return(QuantumRange-OpaqueAlpha);
return(QuantumRange-pixel[image->channel_map[AlphaPixelChannel].offset]);
}
static inline Quantum GetPixelRed(const Image *magick_restrict image,
const Quantum *magick_restrict pixel)
{
return(pixel[image->channel_map[RedPixelChannel].offset]);
}
static inline PixelTrait GetPixelRedTraits(const Image *magick_restrict image)
{
return(image->channel_map[RedPixelChannel].traits);
}
static inline void GetPixelInfoPixel(const Image *magick_restrict image,
const Quantum *magick_restrict pixel,PixelInfo *magick_restrict pixel_info)
{
pixel_info->storage_class=image->storage_class;
pixel_info->colorspace=image->colorspace;
pixel_info->fuzz=image->fuzz;
pixel_info->depth=image->depth;
pixel_info->red=(MagickRealType)
pixel[image->channel_map[RedPixelChannel].offset];
pixel_info->green=(MagickRealType)
pixel[image->channel_map[GreenPixelChannel].offset];
pixel_info->blue=(MagickRealType)
pixel[image->channel_map[BluePixelChannel].offset];
pixel_info->black=0.0f;
if (image->channel_map[BlackPixelChannel].traits != UndefinedPixelTrait)
pixel_info->black=(MagickRealType)
pixel[image->channel_map[BlackPixelChannel].offset];
pixel_info->alpha=(MagickRealType) OpaqueAlpha;
pixel_info->alpha_trait=UndefinedPixelTrait;
if (image->channel_map[AlphaPixelChannel].traits != UndefinedPixelTrait)
{
pixel_info->alpha=(MagickRealType)
pixel[image->channel_map[AlphaPixelChannel].offset];
pixel_info->alpha_trait=BlendPixelTrait;
}
pixel_info->index=0.0f;
if (image->channel_map[IndexPixelChannel].traits != UndefinedPixelTrait)
pixel_info->index=(MagickRealType)
pixel[image->channel_map[IndexPixelChannel].offset];
pixel_info->count=0;
}
static inline PixelTrait GetPixelTraits(const Image *magick_restrict image,
const PixelChannel channel)
{
return(image->channel_map[channel].traits);
}
static inline Quantum GetPixelY(const Image *magick_restrict image,
const Quantum *magick_restrict pixel)
{
return(pixel[image->channel_map[YPixelChannel].offset]);
}
static inline PixelTrait GetPixelYTraits(const Image *magick_restrict image)
{
return(image->channel_map[YPixelChannel].traits);
}
static inline Quantum GetPixelYellow(const Image *magick_restrict image,
const Quantum *magick_restrict pixel)
{
return(pixel[image->channel_map[YellowPixelChannel].offset]);
}
static inline PixelTrait GetPixelYellowTraits(
const Image *magick_restrict image)
{
return(image->channel_map[YellowPixelChannel].traits);
}
static inline MagickRealType AbsolutePixelValue(const MagickRealType x)
{
return(x < 0.0f ? -x : x);
}
static inline MagickBooleanType IsPixelAtDepth(const Quantum pixel,
const QuantumAny range)
{
Quantum
quantum;
#if !defined(MAGICKCORE_HDRI_SUPPORT)
quantum=(Quantum) (((MagickRealType) QuantumRange*((QuantumAny)
(((MagickRealType) range*pixel)/QuantumRange+0.5)))/range+0.5);
#else
quantum=(Quantum) (((MagickRealType) QuantumRange*((QuantumAny)
(((MagickRealType) range*pixel)/QuantumRange+0.5)))/range);
#endif
return(pixel == quantum ? MagickTrue : MagickFalse);
}
static inline MagickBooleanType IsPixelEquivalent(
const Image *magick_restrict image,const Quantum *magick_restrict p,
const PixelInfo *magick_restrict q)
{
MagickRealType
value;
value=(MagickRealType) p[image->channel_map[AlphaPixelChannel].offset];
if ((image->alpha_trait != UndefinedPixelTrait) &&
(q->alpha_trait == UndefinedPixelTrait) &&
(AbsolutePixelValue(value-OpaqueAlpha) >= MagickEpsilon))
return(MagickFalse);
if ((q->alpha_trait != UndefinedPixelTrait) &&
(image->alpha_trait == UndefinedPixelTrait) &&
(AbsolutePixelValue(q->alpha-OpaqueAlpha)) >= MagickEpsilon)
return(MagickFalse);
if ((image->alpha_trait != UndefinedPixelTrait) &&
(q->alpha_trait != UndefinedPixelTrait))
{
if (AbsolutePixelValue(value-q->alpha) >= MagickEpsilon)
return(MagickFalse);
if (AbsolutePixelValue(value-TransparentAlpha) < MagickEpsilon)
return(MagickTrue);
}
value=(MagickRealType) p[image->channel_map[RedPixelChannel].offset];
if (AbsolutePixelValue(value-q->red) >= MagickEpsilon)
return(MagickFalse);
value=(MagickRealType) p[image->channel_map[GreenPixelChannel].offset];
if (AbsolutePixelValue(value-q->green) >= MagickEpsilon)
return(MagickFalse);
value=(MagickRealType) p[image->channel_map[BluePixelChannel].offset];
if (AbsolutePixelValue(value-q->blue) >= MagickEpsilon)
return(MagickFalse);
if (image->colorspace == CMYKColorspace)
{
value=(MagickRealType) p[image->channel_map[BlackPixelChannel].offset];
if (AbsolutePixelValue(value-q->black) >= MagickEpsilon)
return(MagickFalse);
}
return(MagickTrue);
}
static inline MagickBooleanType IsPixelGray(const Image *magick_restrict image,
const Quantum *magick_restrict pixel)
{
MagickRealType
green_blue,
red_green;
red_green=(MagickRealType) pixel[image->channel_map[RedPixelChannel].offset]-
pixel[image->channel_map[GreenPixelChannel].offset];
green_blue=(MagickRealType)
pixel[image->channel_map[GreenPixelChannel].offset]-
pixel[image->channel_map[BluePixelChannel].offset];
if ((AbsolutePixelValue(red_green) < MagickEpsilon) &&
(AbsolutePixelValue(green_blue) < MagickEpsilon))
return(MagickTrue);
return(MagickFalse);
}
static inline MagickBooleanType IsPixelInfoEquivalent(
const PixelInfo *magick_restrict p,const PixelInfo *magick_restrict q)
{
if ((p->alpha_trait != UndefinedPixelTrait) &&
(q->alpha_trait == UndefinedPixelTrait) &&
(AbsolutePixelValue(p->alpha-OpaqueAlpha) >= MagickEpsilon))
return(MagickFalse);
if ((q->alpha_trait != UndefinedPixelTrait) &&
(p->alpha_trait == UndefinedPixelTrait) &&
(AbsolutePixelValue(q->alpha-OpaqueAlpha)) >= MagickEpsilon)
return(MagickFalse);
if ((p->alpha_trait != UndefinedPixelTrait) &&
(q->alpha_trait != UndefinedPixelTrait))
{
if (AbsolutePixelValue(p->alpha-q->alpha) >= MagickEpsilon)
return(MagickFalse);
if (AbsolutePixelValue(p->alpha-TransparentAlpha) < MagickEpsilon)
return(MagickTrue);
}
if (AbsolutePixelValue(p->red-q->red) >= MagickEpsilon)
return(MagickFalse);
if (AbsolutePixelValue(p->green-q->green) >= MagickEpsilon)
return(MagickFalse);
if (AbsolutePixelValue(p->blue-q->blue) >= MagickEpsilon)
return(MagickFalse);
if ((p->colorspace == CMYKColorspace) &&
(AbsolutePixelValue(p->black-q->black) >= MagickEpsilon))
return(MagickFalse);
return(MagickTrue);
}
static inline MagickBooleanType IsPixelMonochrome(
const Image *magick_restrict image,const Quantum *magick_restrict pixel)
{
MagickRealType
green_blue,
red,
red_green;
red=(MagickRealType) pixel[image->channel_map[RedPixelChannel].offset];
if ((AbsolutePixelValue(red) >= MagickEpsilon) &&
(AbsolutePixelValue(red-QuantumRange) >= MagickEpsilon))
return(MagickFalse);
red_green=(MagickRealType) pixel[image->channel_map[RedPixelChannel].offset]-
pixel[image->channel_map[GreenPixelChannel].offset];
green_blue=(MagickRealType)
pixel[image->channel_map[GreenPixelChannel].offset]-
pixel[image->channel_map[BluePixelChannel].offset];
if ((AbsolutePixelValue(red_green) < MagickEpsilon) &&
(AbsolutePixelValue(green_blue) < MagickEpsilon))
return(MagickTrue);
return(MagickFalse);
}
static inline MagickBooleanType IsPixelInfoGray(
const PixelInfo *magick_restrict pixel)
{
if ((AbsolutePixelValue(pixel->red-pixel->green) < MagickEpsilon) &&
(AbsolutePixelValue(pixel->green-pixel->blue) < MagickEpsilon))
return(MagickTrue);
return(MagickFalse);
}
static inline MagickBooleanType IsPixelInfoMonochrome(
const PixelInfo *magick_restrict pixel_info)
{
MagickRealType
green_blue,
red_green;
if ((AbsolutePixelValue(pixel_info->red) >= MagickEpsilon) ||
(AbsolutePixelValue(pixel_info->red-QuantumRange) >= MagickEpsilon))
return(MagickFalse);
red_green=pixel_info->red-pixel_info->green;
green_blue=pixel_info->green-pixel_info->blue;
if ((AbsolutePixelValue(red_green) < MagickEpsilon) &&
(AbsolutePixelValue(green_blue) < MagickEpsilon))
return(MagickTrue);
return(MagickFalse);
}
static inline void SetPixela(const Image *magick_restrict image,
const Quantum a,Quantum *magick_restrict pixel)
{
if (image->channel_map[aPixelChannel].traits != UndefinedPixelTrait)
pixel[image->channel_map[aPixelChannel].offset]=a;
}
static inline void SetPixelAlpha(const Image *magick_restrict image,
const Quantum alpha,Quantum *magick_restrict pixel)
{
if (image->channel_map[AlphaPixelChannel].traits != UndefinedPixelTrait)
pixel[image->channel_map[AlphaPixelChannel].offset]=alpha;
}
static inline void SetPixelAlphaTraits(Image *image,const PixelTrait traits)
{
image->channel_map[AlphaPixelChannel].traits=traits;
}
static inline void SetPixelb(const Image *magick_restrict image,
const Quantum b,Quantum *magick_restrict pixel)
{
if (image->channel_map[bPixelChannel].traits != UndefinedPixelTrait)
pixel[image->channel_map[bPixelChannel].offset]=b;
}
static inline void SetPixelBackgoundColor(const Image *magick_restrict image,
Quantum *magick_restrict pixel)
{
register ssize_t
i;
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
pixel[i]=(Quantum) 0;
pixel[image->channel_map[RedPixelChannel].offset]=
ClampToQuantum(image->background_color.red);
pixel[image->channel_map[GreenPixelChannel].offset]=
ClampToQuantum(image->background_color.green);
pixel[image->channel_map[BluePixelChannel].offset]=
ClampToQuantum(image->background_color.blue);
if (image->channel_map[BlackPixelChannel].traits != UndefinedPixelTrait)
pixel[image->channel_map[BlackPixelChannel].offset]=
ClampToQuantum(image->background_color.black);
if (image->channel_map[AlphaPixelChannel].traits != UndefinedPixelTrait)
pixel[image->channel_map[AlphaPixelChannel].offset]=
image->background_color.alpha_trait == UndefinedPixelTrait ? OpaqueAlpha :
ClampToQuantum(image->background_color.alpha);
}
static inline void SetPixelBlack(const Image *magick_restrict image,
const Quantum black,Quantum *magick_restrict pixel)
{
if (image->channel_map[BlackPixelChannel].traits != UndefinedPixelTrait)
pixel[image->channel_map[BlackPixelChannel].offset]=black;
}
static inline void SetPixelBlackTraits(Image *image,const PixelTrait traits)
{
image->channel_map[BlackPixelChannel].traits=traits;
}
static inline void SetPixelBlue(const Image *magick_restrict image,
const Quantum blue,Quantum *magick_restrict pixel)
{
pixel[image->channel_map[BluePixelChannel].offset]=blue;
}
static inline void SetPixelBlueTraits(Image *image,const PixelTrait traits)
{
image->channel_map[BluePixelChannel].traits=traits;
}
static inline void SetPixelCb(const Image *magick_restrict image,
const Quantum cb,Quantum *magick_restrict pixel)
{
pixel[image->channel_map[CbPixelChannel].offset]=cb;
}
static inline void SetPixelCbTraits(Image *image,const PixelTrait traits)
{
image->channel_map[CbPixelChannel].traits=traits;
}
static inline void SetPixelChannel(const Image *magick_restrict image,
const PixelChannel channel,const Quantum quantum,
Quantum *magick_restrict pixel)
{
if (image->channel_map[channel].traits != UndefinedPixelTrait)
pixel[image->channel_map[channel].offset]=quantum;
}
static inline void SetPixelChannelAttributes(
const Image *magick_restrict image,const PixelChannel channel,
const PixelTrait traits,const ssize_t offset)
{
assert((ssize_t) channel < MaxPixelChannels);
assert(offset < MaxPixelChannels);
image->channel_map[offset].channel=channel;
image->channel_map[channel].offset=offset;
image->channel_map[channel].traits=traits;
}
static inline void SetPixelChannelChannel(const Image *magick_restrict image,
const PixelChannel channel,const ssize_t offset)
{
image->channel_map[offset].channel=channel;
image->channel_map[channel].offset=offset;
}
static inline void SetPixelChannels(Image *image,const size_t number_channels)
{
image->number_channels=number_channels;
}
static inline void SetPixelChannelTraits(Image *image,
const PixelChannel channel,const PixelTrait traits)
{
image->channel_map[channel].traits=traits;
}
static inline void SetPixelCr(const Image *magick_restrict image,
const Quantum cr,Quantum *magick_restrict pixel)
{
pixel[image->channel_map[CrPixelChannel].offset]=cr;
}
static inline void SetPixelCrTraits(Image *image,const PixelTrait traits)
{
image->channel_map[CrPixelChannel].traits=traits;
}
static inline void SetPixelCyan(const Image *magick_restrict image,
const Quantum cyan,Quantum *magick_restrict pixel)
{
pixel[image->channel_map[CyanPixelChannel].offset]=cyan;
}
static inline void SetPixelGray(const Image *magick_restrict image,
const Quantum gray,Quantum *magick_restrict pixel)
{
pixel[image->channel_map[GrayPixelChannel].offset]=gray;
}
static inline void SetPixelGrayTraits(Image *image,const PixelTrait traits)
{
image->channel_map[GrayPixelChannel].traits=traits;
}
static inline void SetPixelGreen(const Image *magick_restrict image,
const Quantum green,Quantum *magick_restrict pixel)
{
pixel[image->channel_map[GreenPixelChannel].offset]=green;
}
static inline void SetPixelGreenTraits(Image *image,const PixelTrait traits)
{
image->channel_map[GreenPixelChannel].traits=traits;
}
static inline void SetPixelIndex(const Image *magick_restrict image,
const Quantum index,Quantum *magick_restrict pixel)
{
if (image->channel_map[IndexPixelChannel].traits != UndefinedPixelTrait)
pixel[image->channel_map[IndexPixelChannel].offset]=index;
}
static inline void SetPixelIndexTraits(Image *image,const PixelTrait traits)
{
image->channel_map[IndexPixelChannel].traits=traits;
}
static inline void SetPixelViaPixelInfo(const Image *magick_restrict image,
const PixelInfo *magick_restrict pixel_info,Quantum *magick_restrict pixel)
{
pixel[image->channel_map[RedPixelChannel].offset]=
ClampToQuantum(pixel_info->red);
pixel[image->channel_map[GreenPixelChannel].offset]=
ClampToQuantum(pixel_info->green);
pixel[image->channel_map[BluePixelChannel].offset]=
ClampToQuantum(pixel_info->blue);
if (image->channel_map[BlackPixelChannel].traits != UndefinedPixelTrait)
pixel[image->channel_map[BlackPixelChannel].offset]=
ClampToQuantum(pixel_info->black);
if (image->channel_map[AlphaPixelChannel].traits != UndefinedPixelTrait)
pixel[image->channel_map[AlphaPixelChannel].offset]=
pixel_info->alpha_trait == UndefinedPixelTrait ? OpaqueAlpha :
ClampToQuantum(pixel_info->alpha);
}
static inline void SetPixelL(const Image *magick_restrict image,const Quantum L,
Quantum *magick_restrict pixel)
{
if (image->channel_map[LPixelChannel].traits != UndefinedPixelTrait)
pixel[image->channel_map[LPixelChannel].offset]=L;
}
static inline void SetPixelMagenta(const Image *magick_restrict image,
const Quantum magenta,Quantum *magick_restrict pixel)
{
pixel[image->channel_map[MagentaPixelChannel].offset]=magenta;
}
static inline void SetPixelMagentaTraits(Image *image,const PixelTrait traits)
{
image->channel_map[MagentaPixelChannel].traits=traits;
}
static inline void SetPixelReadMask(const Image *magick_restrict image,
const Quantum mask,Quantum *magick_restrict pixel)
{
if (image->channel_map[ReadMaskPixelChannel].traits != UndefinedPixelTrait)
pixel[image->channel_map[ReadMaskPixelChannel].offset]=mask;
}
static inline void SetPixelWriteMask(const Image *magick_restrict image,
const Quantum mask,Quantum *magick_restrict pixel)
{
if (image->channel_map[WriteMaskPixelChannel].traits != UndefinedPixelTrait)
pixel[image->channel_map[WriteMaskPixelChannel].offset]=mask;
}
static inline void SetPixelMetacontentExtent(Image *image,const size_t extent)
{
image->metacontent_extent=extent;
}
static inline void SetPixelOpacity(const Image *magick_restrict image,
const Quantum alpha,Quantum *magick_restrict pixel)
{
if (image->channel_map[AlphaPixelChannel].traits != UndefinedPixelTrait)
pixel[image->channel_map[AlphaPixelChannel].offset]=QuantumRange-alpha;
}
static inline void SetPixelRed(const Image *magick_restrict image,
const Quantum red,Quantum *magick_restrict pixel)
{
pixel[image->channel_map[RedPixelChannel].offset]=red;
}
static inline void SetPixelRedTraits(Image *image,const PixelTrait traits)
{
image->channel_map[RedPixelChannel].traits=traits;
}
static inline void SetPixelYellow(const Image *magick_restrict image,
const Quantum yellow,Quantum *magick_restrict pixel)
{
pixel[image->channel_map[YellowPixelChannel].offset]=yellow;
}
static inline void SetPixelYellowTraits(Image *image,const PixelTrait traits)
{
image->channel_map[YellowPixelChannel].traits=traits;
}
static inline void SetPixelY(const Image *magick_restrict image,
const Quantum y,Quantum *magick_restrict pixel)
{
pixel[image->channel_map[YPixelChannel].offset]=y;
}
static inline void SetPixelYTraits(Image *image,const PixelTrait traits)
{
image->channel_map[YPixelChannel].traits=traits;
}
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,261 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore image pixel methods.
*/
#ifndef MAGICKCORE_PIXEL_H
#define MAGICKCORE_PIXEL_H
#include "MagickCore/colorspace.h"
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
#define MaxPixelChannels 32
#undef index
/*
Pixel enum declarations.
*/
typedef enum
{
UndefinedChannel = 0x0000,
RedChannel = 0x0001,
GrayChannel = 0x0001,
CyanChannel = 0x0001,
GreenChannel = 0x0002,
MagentaChannel = 0x0002,
BlueChannel = 0x0004,
YellowChannel = 0x0004,
BlackChannel = 0x0008,
AlphaChannel = 0x0010,
OpacityChannel = 0x0010,
IndexChannel = 0x0020, /* Color Index Table? */
ReadMaskChannel = 0x0040, /* Pixel is Not Readable? */
WriteMaskChannel = 0x0080, /* Pixel is Write Protected? */
MetaChannel = 0x0100, /* ???? */
CompositeChannels = 0x001F,
AllChannels = 0x7ffffff,
/*
Special purpose channel types.
FUTURE: are these needed any more - they are more like hacks
SyncChannels for example is NOT a real channel but a 'flag'
It really says -- "User has not defined channels"
Though it does have extra meaning in the "-auto-level" operator
*/
TrueAlphaChannel = 0x0100, /* extract actual alpha channel from opacity */
RGBChannels = 0x0200, /* set alpha from grayscale mask in RGB */
GrayChannels = 0x0400,
SyncChannels = 0x20000, /* channels modified as a single unit */
DefaultChannels = AllChannels
} ChannelType; /* must correspond to PixelChannel */
typedef enum
{
UndefinedPixelChannel = 0,
RedPixelChannel = 0,
CyanPixelChannel = 0,
GrayPixelChannel = 0,
LPixelChannel = 0,
LabelPixelChannel = 0,
YPixelChannel = 0,
aPixelChannel = 1,
GreenPixelChannel = 1,
MagentaPixelChannel = 1,
CbPixelChannel = 1,
bPixelChannel = 2,
BluePixelChannel = 2,
YellowPixelChannel = 2,
CrPixelChannel = 2,
BlackPixelChannel = 3,
AlphaPixelChannel = 4,
IndexPixelChannel = 5,
ReadMaskPixelChannel = 6,
WriteMaskPixelChannel = 7,
MetaPixelChannel = 8,
IntensityPixelChannel = MaxPixelChannels, /* ???? */
CompositePixelChannel = MaxPixelChannels, /* ???? */
SyncPixelChannel = MaxPixelChannels+1 /* not a real channel */
} PixelChannel; /* must correspond to ChannelType */
typedef enum
{
UndefinedPixelIntensityMethod = 0,
AveragePixelIntensityMethod,
BrightnessPixelIntensityMethod,
LightnessPixelIntensityMethod,
MSPixelIntensityMethod,
Rec601LumaPixelIntensityMethod,
Rec601LuminancePixelIntensityMethod,
Rec709LumaPixelIntensityMethod,
Rec709LuminancePixelIntensityMethod,
RMSPixelIntensityMethod
} PixelIntensityMethod;
typedef enum
{
UndefinedInterpolatePixel,
AverageInterpolatePixel, /* Average 4 nearest neighbours */
Average9InterpolatePixel, /* Average 9 nearest neighbours */
Average16InterpolatePixel, /* Average 16 nearest neighbours */
BackgroundInterpolatePixel, /* Just return background color */
BilinearInterpolatePixel, /* Triangular filter interpolation */
BlendInterpolatePixel, /* blend of nearest 1, 2 or 4 pixels */
CatromInterpolatePixel, /* Catmull-Rom interpolation */
IntegerInterpolatePixel, /* Integer (floor) interpolation */
MeshInterpolatePixel, /* Triangular Mesh interpolation */
NearestInterpolatePixel, /* Nearest Neighbour Only */
SplineInterpolatePixel /* Cubic Spline (blurred) interpolation */
/* FilterInterpolatePixel, ** Use resize filter - (very slow) */
} PixelInterpolateMethod;
typedef enum
{
UndefinedPixelMask = 0x000000,
ReadPixelMask = 0x000001,
WritePixelMask = 0x000002
} PixelMask;
typedef enum
{
UndefinedPixelTrait = 0x000000,
CopyPixelTrait = 0x000001,
UpdatePixelTrait = 0x000002,
BlendPixelTrait = 0x000004
} PixelTrait;
typedef enum
{
UndefinedPixel,
CharPixel,
DoublePixel,
FloatPixel,
LongPixel,
LongLongPixel,
QuantumPixel,
ShortPixel
} StorageType;
/*
Pixel typedef declarations.
*/
typedef struct _PixelChannelMap
{
PixelChannel
channel;
PixelTrait
traits;
ssize_t
offset;
} PixelChannelMap;
typedef struct _PixelInfo
{
ClassType
storage_class;
ColorspaceType
colorspace;
PixelTrait
alpha_trait;
double
fuzz;
size_t
depth;
MagickSizeType
count;
MagickRealType
red,
green,
blue,
black,
alpha,
index;
} PixelInfo;
typedef struct _PixelPacket
{
unsigned int
red,
green,
blue,
alpha,
black;
} PixelPacket;
typedef struct _CacheView
CacheView_;
/*
Pixel method declarations.
*/
extern MagickExport ChannelType
SetPixelChannelMask(Image *,const ChannelType);
extern MagickExport MagickBooleanType
ExportImagePixels(const Image *,const ssize_t,const ssize_t,const size_t,
const size_t,const char *,const StorageType,void *,ExceptionInfo *),
ImportImagePixels(Image *,const ssize_t,const ssize_t,const size_t,
const size_t,const char *,const StorageType,const void *,ExceptionInfo *),
InterpolatePixelChannel(const Image *,const CacheView_ *,
const PixelChannel,const PixelInterpolateMethod,const double,const double,
double *,ExceptionInfo *),
InterpolatePixelChannels(const Image *,const CacheView_ *,const Image *,
const PixelInterpolateMethod,const double,const double,Quantum *,
ExceptionInfo *),
InterpolatePixelInfo(const Image *,const CacheView_ *,
const PixelInterpolateMethod,const double,const double,PixelInfo *,
ExceptionInfo *),
IsFuzzyEquivalencePixel(const Image *,const Quantum *,const Image *,
const Quantum *),
IsFuzzyEquivalencePixelInfo(const PixelInfo *,const PixelInfo *),
SetPixelMetaChannels(Image *,const size_t,ExceptionInfo *);
extern MagickExport MagickRealType
GetPixelInfoIntensity(const Image *magick_restrict,
const PixelInfo *magick_restrict) magick_hot_spot,
GetPixelIntensity(const Image *magick_restrict,
const Quantum *magick_restrict) magick_hot_spot;
extern MagickExport PixelChannelMap
*AcquirePixelChannelMap(void),
*ClonePixelChannelMap(PixelChannelMap *),
*DestroyPixelChannelMap(PixelChannelMap *);
extern MagickExport PixelInfo
*ClonePixelInfo(const PixelInfo *);
extern MagickExport MagickRealType
DecodePixelGamma(const MagickRealType) magick_hot_spot,
EncodePixelGamma(const MagickRealType) magick_hot_spot;
extern MagickExport void
ConformPixelInfo(Image *,const PixelInfo *,PixelInfo *,ExceptionInfo *),
GetPixelInfo(const Image *,PixelInfo *),
InitializePixelChannelMap(Image *);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,68 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore image color methods.
*/
#ifndef MAGICKCORE_POLICY_H
#define MAGICKCORE_POLICY_H
#include "MagickCore/pixel.h"
#include "MagickCore/exception.h"
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
typedef enum
{
UndefinedPolicyDomain,
CoderPolicyDomain,
DelegatePolicyDomain,
FilterPolicyDomain,
PathPolicyDomain,
ResourcePolicyDomain,
SystemPolicyDomain,
CachePolicyDomain
} PolicyDomain;
typedef enum
{
UndefinedPolicyRights = 0x00,
NoPolicyRights = 0x00,
ReadPolicyRights = 0x01,
WritePolicyRights = 0x02,
ExecutePolicyRights = 0x04,
AllPolicyRights = 0xff
} PolicyRights;
typedef struct _PolicyInfo
PolicyInfo;
extern MagickExport char
*GetPolicyValue(const char *),
**GetPolicyList(const char *,size_t *,ExceptionInfo *);
extern MagickExport const PolicyInfo
**GetPolicyInfoList(const char *,size_t *,ExceptionInfo *);
extern MagickExport MagickBooleanType
IsRightsAuthorized(const PolicyDomain,const PolicyRights,const char *),
ListPolicyInfo(FILE *,ExceptionInfo *);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,32 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore prepress methods.
*/
#ifndef MAGICKCORE_PREPRESS_H
#define MAGICKCORE_PREPRESS_H
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
extern MagickExport double
GetImageTotalInkDensity(Image *image,ExceptionInfo *);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,61 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore image profile methods.
*/
#ifndef MAGICKCORE_PROFILE_H
#define MAGICKCORE_PROFILE_H
#include "MagickCore/string_.h"
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
typedef struct _ProfileInfo
ProfileInfo;
typedef enum
{
UndefinedIntent,
SaturationIntent,
PerceptualIntent,
AbsoluteIntent,
RelativeIntent
} RenderingIntent;
extern MagickExport char
*GetNextImageProfile(const Image *);
extern MagickExport const StringInfo
*GetImageProfile(const Image *,const char *);
extern MagickExport MagickBooleanType
CloneImageProfiles(Image *,const Image *),
DeleteImageProfile(Image *,const char *),
ProfileImage(Image *,const char *,const void *,const size_t,ExceptionInfo *),
SetImageProfile(Image *,const char *,const StringInfo *,ExceptionInfo *);
extern MagickExport StringInfo
*RemoveImageProfile(Image *,const char *);
extern MagickExport void
DestroyImageProfiles(Image *),
ResetImageProfileIterator(const Image *);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,51 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore property methods.
*/
#ifndef MAGICKCORE_PROPERTY_H
#define MAGICKCORE_PROPERTY_H
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
extern MagickExport char
*InterpretImageProperties(ImageInfo *,Image *,const char *,
ExceptionInfo *),
*RemoveImageProperty(Image *,const char *);
extern MagickExport const char
*GetNextImageProperty(const Image *),
*GetImageProperty(const Image *,const char *,ExceptionInfo *),
*GetMagickProperty(ImageInfo *,Image *,const char *,ExceptionInfo *);
extern MagickExport MagickBooleanType
CloneImageProperties(Image *,const Image *),
DefineImageProperty(Image *,const char *,ExceptionInfo *),
DeleteImageProperty(Image *,const char *),
FormatImageProperty(Image *,const char *,const char *,...)
magick_attribute((__format__ (__printf__,3,4))),
SetImageProperty(Image *,const char *,const char *,ExceptionInfo *);
extern MagickExport void
DestroyImageProperties(Image *),
ResetImagePropertyIterator(const Image *);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,77 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore image quantization methods.
*/
#ifndef MAGICKCORE_QUANTIZE_H
#define MAGICKCORE_QUANTIZE_H
#include "MagickCore/colorspace.h"
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
typedef enum
{
UndefinedDitherMethod,
NoDitherMethod,
RiemersmaDitherMethod,
FloydSteinbergDitherMethod
} DitherMethod;
typedef struct _QuantizeInfo
{
size_t
number_colors; /* desired maximum number of colors */
size_t
tree_depth;
ColorspaceType
colorspace;
DitherMethod
dither_method;
MagickBooleanType
measure_error;
size_t
signature;
} QuantizeInfo;
extern MagickExport MagickBooleanType
CompressImageColormap(Image *,ExceptionInfo *),
GetImageQuantizeError(Image *,ExceptionInfo *),
PosterizeImage(Image *,const size_t,const DitherMethod,ExceptionInfo *),
QuantizeImage(const QuantizeInfo *,Image *,ExceptionInfo *),
QuantizeImages(const QuantizeInfo *,Image *,ExceptionInfo *),
RemapImage(const QuantizeInfo *,Image *,const Image *,ExceptionInfo *),
RemapImages(const QuantizeInfo *,Image *,const Image *,ExceptionInfo *);
extern MagickExport QuantizeInfo
*AcquireQuantizeInfo(const ImageInfo *),
*CloneQuantizeInfo(const QuantizeInfo *),
*DestroyQuantizeInfo(QuantizeInfo *);
extern MagickExport void
GetQuantizeInfo(QuantizeInfo *);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,194 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore quantum inline methods.
*/
#ifndef MAGICKCORE_QUANTUM_H
#define MAGICKCORE_QUANTUM_H
#include "MagickCore/image.h"
#include "MagickCore/semaphore.h"
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
typedef enum
{
UndefinedEndian,
LSBEndian,
MSBEndian
} EndianType;
typedef enum
{
UndefinedQuantumAlpha,
AssociatedQuantumAlpha,
DisassociatedQuantumAlpha
} QuantumAlphaType;
typedef enum
{
UndefinedQuantumFormat,
FloatingPointQuantumFormat,
SignedQuantumFormat,
UnsignedQuantumFormat
} QuantumFormatType;
typedef enum
{
UndefinedQuantum,
AlphaQuantum,
BGRAQuantum,
BGROQuantum,
BGRQuantum,
BlackQuantum,
BlueQuantum,
CbYCrAQuantum,
CbYCrQuantum,
CbYCrYQuantum,
CMYKAQuantum,
CMYKOQuantum,
CMYKQuantum,
CyanQuantum,
GrayAlphaQuantum,
GrayQuantum,
GreenQuantum,
IndexAlphaQuantum,
IndexQuantum,
MagentaQuantum,
OpacityQuantum,
RedQuantum,
RGBAQuantum,
RGBOQuantum,
RGBPadQuantum,
RGBQuantum,
YellowQuantum
} QuantumType;
typedef struct _QuantumInfo
QuantumInfo;
static inline Quantum ClampToQuantum(const MagickRealType value)
{
#if defined(MAGICKCORE_HDRI_SUPPORT)
return((Quantum) value);
#else
if (value <= 0.0f)
return((Quantum) 0);
if (value >= (MagickRealType) QuantumRange)
return(QuantumRange);
return((Quantum) (value+0.5f));
#endif
}
#if (MAGICKCORE_QUANTUM_DEPTH == 8)
static inline unsigned char ScaleQuantumToChar(const Quantum quantum)
{
#if !defined(MAGICKCORE_HDRI_SUPPORT)
return((unsigned char) quantum);
#else
if (quantum <= 0.0)
return(0);
if (quantum >= 255.0)
return(255);
return((unsigned char) (quantum+0.5));
#endif
}
#elif (MAGICKCORE_QUANTUM_DEPTH == 16)
static inline unsigned char ScaleQuantumToChar(const Quantum quantum)
{
#if !defined(MAGICKCORE_HDRI_SUPPORT)
return((unsigned char) (((quantum+128UL)-((quantum+128UL) >> 8)) >> 8));
#else
if (quantum <= 0.0)
return(0);
if ((quantum/257.0) >= 255.0)
return(255);
return((unsigned char) (quantum/257.0+0.5));
#endif
}
#elif (MAGICKCORE_QUANTUM_DEPTH == 32)
static inline unsigned char ScaleQuantumToChar(const Quantum quantum)
{
#if !defined(MAGICKCORE_HDRI_SUPPORT)
return((unsigned char) ((quantum+MagickULLConstant(8421504))/
MagickULLConstant(16843009)));
#else
if (quantum <= 0.0)
return(0);
if ((quantum/16843009.0) >= 255.0)
return(255);
return((unsigned char) (quantum/16843009.0+0.5));
#endif
}
#elif (MAGICKCORE_QUANTUM_DEPTH == 64)
static inline unsigned char ScaleQuantumToChar(const Quantum quantum)
{
#if !defined(MAGICKCORE_HDRI_SUPPORT)
return((unsigned char) (quantum/72340172838076673.0+0.5));
#else
if (quantum <= 0.0)
return(0);
if ((quantum/72340172838076673.0) >= 255.0)
return(255);
return((unsigned char) (quantum/72340172838076673.0+0.5));
#endif
}
#endif
extern MagickExport EndianType
GetQuantumEndian(const QuantumInfo *);
extern MagickExport MagickBooleanType
SetQuantumDepth(const Image *,QuantumInfo *,const size_t),
SetQuantumEndian(const Image *,QuantumInfo *,const EndianType),
SetQuantumFormat(const Image *,QuantumInfo *,const QuantumFormatType),
SetQuantumPad(const Image *,QuantumInfo *,const size_t);
extern MagickExport QuantumFormatType
GetQuantumFormat(const QuantumInfo *);
extern MagickExport QuantumInfo
*AcquireQuantumInfo(const ImageInfo *,Image *),
*DestroyQuantumInfo(QuantumInfo *);
extern MagickExport QuantumType
GetQuantumType(Image *,ExceptionInfo *);
extern MagickExport size_t
ExportQuantumPixels(const Image *,CacheView *,QuantumInfo *,const QuantumType,
unsigned char *magick_restrict,ExceptionInfo *),
GetQuantumExtent(const Image *,const QuantumInfo *,const QuantumType),
ImportQuantumPixels(const Image *,CacheView *,QuantumInfo *,const QuantumType,
const unsigned char *magick_restrict,ExceptionInfo *);
extern MagickExport unsigned char
*GetQuantumPixels(const QuantumInfo *);
extern MagickExport void
GetQuantumInfo(const ImageInfo *,QuantumInfo *),
SetQuantumAlphaType(QuantumInfo *,const QuantumAlphaType),
SetQuantumImageType(Image *,const QuantumType),
SetQuantumMinIsWhite(QuantumInfo *,const MagickBooleanType),
SetQuantumPack(QuantumInfo *,const MagickBooleanType),
SetQuantumQuantum(QuantumInfo *,const size_t),
SetQuantumScale(QuantumInfo *,const double);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,59 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore random methods.
*/
#ifndef MAGICKCORE_RANDOM__H
#define MAGICKCORE_RANDOM__H
#include "MagickCore/string_.h"
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
/*
Typedef declarations.
*/
typedef struct _RandomInfo
RandomInfo;
/*
Method declarations.
*/
extern MagickExport double
GetRandomValue(RandomInfo *),
GetPseudoRandomValue(RandomInfo *);
extern MagickExport RandomInfo
*AcquireRandomInfo(void),
*DestroyRandomInfo(RandomInfo *);
extern MagickExport StringInfo
*GetRandomKey(RandomInfo *,const size_t);
extern MagickExport unsigned long
GetRandomSecretKey(const RandomInfo *);
extern MagickExport void
SetRandomKey(RandomInfo *,const size_t,unsigned char *),
SetRandomSecretKey(const unsigned long),
SetRandomTrueRandom(const MagickBooleanType);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,51 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore registry methods.
*/
#ifndef MAGICKCORE_REGISTRY_H
#define MAGICKCORE_REGISTRY_H
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
typedef enum
{
UndefinedRegistryType,
ImageRegistryType,
ImageInfoRegistryType,
StringRegistryType
} RegistryType;
extern MagickExport char
*GetNextImageRegistry(void);
extern MagickExport MagickBooleanType
DefineImageRegistry(const RegistryType,const char *,ExceptionInfo *),
DeleteImageRegistry(const char *),
SetImageRegistry(const RegistryType,const char *,const void *,
ExceptionInfo *);
extern MagickExport void
*GetImageRegistry(const RegistryType,const char *,ExceptionInfo *),
*RemoveImageRegistry(const char *),
ResetImageRegistryIterator(void);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,103 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore graphic resample methods.
*/
#ifndef MAGICKCORE_RESAMPLE_H
#define MAGICKCORE_RESAMPLE_H
#include "MagickCore/cache-view.h"
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
/*
WARNING: The order of this table must also match the order of a table
located in AcquireResizeFilter() in "resize.c" otherwise the users filter
will not match the actual filter that is setup.
*/
typedef enum
{
UndefinedFilter,
PointFilter,
BoxFilter,
TriangleFilter,
HermiteFilter,
HannFilter,
HammingFilter,
BlackmanFilter,
GaussianFilter,
QuadraticFilter,
CubicFilter,
CatromFilter,
MitchellFilter,
JincFilter,
SincFilter,
SincFastFilter,
KaiserFilter,
WelchFilter,
ParzenFilter,
BohmanFilter,
BartlettFilter,
LagrangeFilter,
LanczosFilter,
LanczosSharpFilter,
Lanczos2Filter,
Lanczos2SharpFilter,
RobidouxFilter,
RobidouxSharpFilter,
CosineFilter,
SplineFilter,
LanczosRadiusFilter,
SentinelFilter /* a count of all the filters, not a real filter */
} FilterType;
/*
Backward compatibility for the more correctly named Jinc Filter. Original
source of this filter is from "zoom" but it refers to a reference by Pratt,
who does not actualy name the filter.
also miss-spellings of common filters
*/
#define BesselFilter JincFilter
#define WelshFilter WelchFilter
#define HanningFilter HannFilter
typedef struct _ResampleFilter
ResampleFilter;
extern MagickExport MagickBooleanType
ResamplePixelColor(ResampleFilter *,const double,const double,
PixelInfo *,ExceptionInfo *),
SetResampleFilterInterpolateMethod(ResampleFilter *,
const PixelInterpolateMethod),
SetResampleFilterVirtualPixelMethod(ResampleFilter *,
const VirtualPixelMethod);
extern MagickExport ResampleFilter
*AcquireResampleFilter(const Image *,ExceptionInfo *),
*DestroyResampleFilter(ResampleFilter *);
extern MagickExport void
ScaleResampleFilter(ResampleFilter *,const double,const double,const double,
const double),
SetResampleFilter(ResampleFilter *,const FilterType);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,48 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore image resize methods.
*/
#ifndef MAGICKCORE_RESIZE_H
#define MAGICKCORE_RESIZE_H
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
typedef struct _ResizeFilter
ResizeFilter;
extern MagickExport Image
*AdaptiveResizeImage(const Image *,const size_t,const size_t,ExceptionInfo *),
*InterpolativeResizeImage(const Image *,const size_t,const size_t,
const PixelInterpolateMethod,ExceptionInfo *),
*LiquidRescaleImage(const Image *,const size_t,const size_t,const double,
const double,ExceptionInfo *),
*MagnifyImage(const Image *,ExceptionInfo *),
*MinifyImage(const Image *,ExceptionInfo *),
*ResampleImage(const Image *,const double,const double,const FilterType,
ExceptionInfo *),
*ResizeImage(const Image *,const size_t,const size_t,const FilterType,
ExceptionInfo *),
*SampleImage(const Image *,const size_t,const size_t,ExceptionInfo *),
*ScaleImage(const Image *,const size_t,const size_t,ExceptionInfo *),
*ThumbnailImage(const Image *,const size_t,const size_t,ExceptionInfo *);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,63 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore resource methods.
*/
#ifndef MAGICKCORE_RESOURCE_H
#define MAGICKCORE_RESOURCE_H
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
typedef enum
{
UndefinedResource,
AreaResource,
DiskResource,
FileResource,
HeightResource,
MapResource,
MemoryResource,
ThreadResource,
ThrottleResource,
TimeResource,
WidthResource
} ResourceType;
#define MagickResourceInfinity MagickULLConstant(~0)
extern MagickExport int
AcquireUniqueFileResource(char *);
extern MagickExport MagickBooleanType
AcquireMagickResource(const ResourceType,const MagickSizeType),
GetPathTemplate(char *),
ListMagickResourceInfo(FILE *,ExceptionInfo *),
RelinquishUniqueFileResource(const char *),
SetMagickResourceLimit(const ResourceType,const MagickSizeType);
extern MagickExport MagickSizeType
GetMagickResource(const ResourceType),
GetMagickResourceLimit(const ResourceType);
extern MagickExport void
RelinquishMagickResource(const ResourceType,const MagickSizeType);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,35 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore image segment methods.
*/
#ifndef MAGICKCORE_SEGMENT_H
#define MAGICKCORE_SEGMENT_H
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
extern MagickExport MagickBooleanType
GetImageDynamicThreshold(const Image *,const double,const double,
PixelInfo *,ExceptionInfo *),
SegmentImage(Image *,const ColorspaceType,const MagickBooleanType,
const double,const double,ExceptionInfo *);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,41 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore methods to lock and unlock semaphores.
*/
#ifndef MAGICKCORE_SEMAPHORE_H
#define MAGICKCORE_SEMAPHORE_H
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
typedef struct SemaphoreInfo
SemaphoreInfo;
extern MagickExport SemaphoreInfo
*AcquireSemaphoreInfo(void);
extern MagickExport void
ActivateSemaphoreInfo(SemaphoreInfo **),
LockSemaphoreInfo(SemaphoreInfo *),
RelinquishSemaphoreInfo(SemaphoreInfo **),
UnlockSemaphoreInfo(SemaphoreInfo *);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,35 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore image stream methods.
*/
#ifndef MAGICKCORE_SHEAR_H
#define MAGICKCORE_SHEAR_H
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
extern MagickExport Image
*DeskewImage(const Image *,const double,ExceptionInfo *),
*IntegralRotateImage(const Image *,size_t,ExceptionInfo *),
*ShearImage(const Image *,const double,const double,ExceptionInfo *),
*ShearRotateImage(const Image *,const double,ExceptionInfo *);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,32 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore digital signature methods.
*/
#ifndef MAGICKCORE_SIGNATURE_H
#define MAGICKCORE_SIGNATURE_H
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
extern MagickExport MagickBooleanType
SignatureImage(Image *,ExceptionInfo *);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,61 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore splay-tree methods.
*/
#ifndef MAGICKCORE_SPLAY_H
#define MAGICKCORE_SPLAY_H
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
typedef struct _SplayTreeInfo
SplayTreeInfo;
extern MagickExport MagickBooleanType
AddValueToSplayTree(SplayTreeInfo *,const void *,const void *),
DeleteNodeByValueFromSplayTree(SplayTreeInfo *,const void *),
DeleteNodeFromSplayTree(SplayTreeInfo *,const void *);
extern MagickExport const void
*GetNextKeyInSplayTree(SplayTreeInfo *),
*GetNextValueInSplayTree(SplayTreeInfo *),
*GetValueFromSplayTree(SplayTreeInfo *,const void *);
extern MagickExport int
CompareSplayTreeString(const void *,const void *),
CompareSplayTreeStringInfo(const void *,const void *);
extern MagickExport SplayTreeInfo
*CloneSplayTree(SplayTreeInfo *,void *(*)(void *),void *(*)(void *)),
*DestroySplayTree(SplayTreeInfo *),
*NewSplayTree(int (*)(const void *,const void *),void *(*)(void *),
void *(*)(void *));
extern MagickExport size_t
GetNumberOfNodesInSplayTree(const SplayTreeInfo *);
extern MagickExport void
*RemoveNodeByValueFromSplayTree(SplayTreeInfo *,const void *),
*RemoveNodeFromSplayTree(SplayTreeInfo *,const void *),
ResetSplayTree(SplayTreeInfo *),
ResetSplayTreeIterator(SplayTreeInfo *);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,174 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore statistical methods.
*/
#ifndef MAGICKCORE_STATISTIC_H
#define MAGICKCORE_STATISTIC_H
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
#define MaximumNumberOfImageMoments 8
#define MaximumNumberOfPerceptualColorspaces 6
#define MaximumNumberOfPerceptualHashes 7
typedef struct _ChannelStatistics
{
size_t
depth;
double
area,
minima,
maxima,
sum,
sum_squared,
sum_cubed,
sum_fourth_power,
mean,
variance,
standard_deviation,
kurtosis,
skewness,
entropy;
} ChannelStatistics;
typedef struct _ChannelMoments
{
double
invariant[MaximumNumberOfImageMoments+1];
PointInfo
centroid,
ellipse_axis;
double
ellipse_angle,
ellipse_eccentricity,
ellipse_intensity;
} ChannelMoments;
typedef struct _ChannelPerceptualHash
{
double
srgb_hu_phash[MaximumNumberOfImageMoments+1],
hclp_hu_phash[MaximumNumberOfImageMoments+1];
size_t
number_colorspaces;
ColorspaceType
colorspace[MaximumNumberOfPerceptualColorspaces+1];
double
phash[MaximumNumberOfPerceptualColorspaces+1][MaximumNumberOfImageMoments+1];
size_t
number_channels;
} ChannelPerceptualHash;
typedef enum
{
UndefinedEvaluateOperator,
AbsEvaluateOperator,
AddEvaluateOperator,
AddModulusEvaluateOperator,
AndEvaluateOperator,
CosineEvaluateOperator,
DivideEvaluateOperator,
ExponentialEvaluateOperator,
GaussianNoiseEvaluateOperator,
ImpulseNoiseEvaluateOperator,
LaplacianNoiseEvaluateOperator,
LeftShiftEvaluateOperator,
LogEvaluateOperator,
MaxEvaluateOperator,
MeanEvaluateOperator,
MedianEvaluateOperator,
MinEvaluateOperator,
MultiplicativeNoiseEvaluateOperator,
MultiplyEvaluateOperator,
OrEvaluateOperator,
PoissonNoiseEvaluateOperator,
PowEvaluateOperator,
RightShiftEvaluateOperator,
RootMeanSquareEvaluateOperator,
SetEvaluateOperator,
SineEvaluateOperator,
SubtractEvaluateOperator,
SumEvaluateOperator,
ThresholdBlackEvaluateOperator,
ThresholdEvaluateOperator,
ThresholdWhiteEvaluateOperator,
UniformNoiseEvaluateOperator,
XorEvaluateOperator
} MagickEvaluateOperator;
typedef enum
{
UndefinedFunction,
ArcsinFunction,
ArctanFunction,
PolynomialFunction,
SinusoidFunction
} MagickFunction;
typedef enum
{
UndefinedStatistic,
GradientStatistic,
MaximumStatistic,
MeanStatistic,
MedianStatistic,
MinimumStatistic,
ModeStatistic,
NonpeakStatistic,
RootMeanSquareStatistic,
StandardDeviationStatistic
} StatisticType;
extern MagickExport ChannelStatistics
*GetImageStatistics(const Image *,ExceptionInfo *);
extern MagickExport ChannelMoments
*GetImageMoments(const Image *,ExceptionInfo *);
extern MagickExport ChannelPerceptualHash
*GetImagePerceptualHash(const Image *,ExceptionInfo *);
extern MagickExport Image
*EvaluateImages(const Image *,const MagickEvaluateOperator,ExceptionInfo *),
*PolynomialImage(const Image *,const size_t,const double *,ExceptionInfo *),
*StatisticImage(const Image *,const StatisticType,const size_t,const size_t,
ExceptionInfo *);
extern MagickExport MagickBooleanType
EvaluateImage(Image *,const MagickEvaluateOperator,const double,
ExceptionInfo *),
FunctionImage(Image *,const MagickFunction,const size_t,const double *,
ExceptionInfo *),
GetImageEntropy(const Image *,double *,ExceptionInfo *),
GetImageExtrema(const Image *,size_t *,size_t *,ExceptionInfo *),
GetImageMean(const Image *,double *,double *,ExceptionInfo *),
GetImageKurtosis(const Image *,double *,double *,ExceptionInfo *),
GetImageRange(const Image *,double *,double *,ExceptionInfo *);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,53 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore image stream methods.
*/
#ifndef MAGICKCORE_STREAM_H
#define MAGICKCORE_STREAM_H
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
#include "MagickCore/pixel.h"
typedef struct _StreamInfo
StreamInfo;
typedef size_t
(*StreamHandler)(const Image *,const void *,const size_t);
extern MagickExport Image
*ReadStream(const ImageInfo *,StreamHandler,ExceptionInfo *),
*StreamImage(const ImageInfo *,StreamInfo *,ExceptionInfo *);
extern MagickExport MagickBooleanType
OpenStream(const ImageInfo *,StreamInfo *,const char *,ExceptionInfo *),
WriteStream(const ImageInfo *,Image *,StreamHandler,ExceptionInfo *);
extern MagickExport StreamInfo
*AcquireStreamInfo(const ImageInfo *,ExceptionInfo *),
*DestroyStreamInfo(StreamInfo *);
extern MagickExport void
SetStreamInfoMap(StreamInfo *,const char *),
SetStreamInfoStorageType(StreamInfo *,const StorageType);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,112 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore string methods.
*/
#ifndef MAGICKCORE_STRING_H_
#define MAGICKCORE_STRING_H_
#include "MagickCore/exception.h"
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
typedef struct _StringInfo
{
char
*path;
unsigned char
*datum;
size_t
length,
signature;
} StringInfo;
extern MagickExport char
*AcquireString(const char *),
*CloneString(char **,const char *),
*ConstantString(const char *),
*DestroyString(char *),
**DestroyStringList(char **),
*EscapeString(const char *,const char),
*FileToString(const char *,const size_t,ExceptionInfo *),
*GetEnvironmentValue(const char *),
*SanitizeString(const char *),
*StringInfoToHexString(const StringInfo *),
*StringInfoToString(const StringInfo *),
**StringToArgv(const char *,int *),
*StringToken(const char *,char **),
**StringToList(const char *);
extern MagickExport const char
*GetStringInfoPath(const StringInfo *);
extern MagickExport double
InterpretSiPrefixValue(const char *magick_restrict,char **magick_restrict),
*StringToArrayOfDoubles(const char *,ssize_t *,ExceptionInfo *);
extern MagickExport int
CompareStringInfo(const StringInfo *,const StringInfo *);
extern MagickExport MagickBooleanType
ConcatenateString(char **,const char *),
IsStringTrue(const char *),
IsStringFalse(const char *),
SubstituteString(char **,const char *,const char *);
extern MagickExport size_t
ConcatenateMagickString(char *,const char *,const size_t)
magick_attribute((__nonnull__)),
CopyMagickString(char *,const char *,const size_t)
magick_attribute((__nonnull__)),
GetStringInfoLength(const StringInfo *);
extern MagickExport ssize_t
FormatMagickSize(const MagickSizeType,const MagickBooleanType,const char *,
const size_t,char *),
FormatMagickTime(const time_t,const size_t,char *);
extern MagickExport StringInfo
*AcquireStringInfo(const size_t),
*BlobToStringInfo(const void *,const size_t),
*CloneStringInfo(const StringInfo *),
*ConfigureFileToStringInfo(const char *),
*DestroyStringInfo(StringInfo *),
*FileToStringInfo(const char *,const size_t,ExceptionInfo *),
*SplitStringInfo(StringInfo *,const size_t),
*StringToStringInfo(const char *);
extern MagickExport unsigned char
*GetStringInfoDatum(const StringInfo *);
extern MagickExport void
ConcatenateStringInfo(StringInfo *,const StringInfo *)
magick_attribute((__nonnull__)),
PrintStringInfo(FILE *file,const char *,const StringInfo *),
ResetStringInfo(StringInfo *),
SetStringInfo(StringInfo *,const StringInfo *),
SetStringInfoDatum(StringInfo *,const unsigned char *),
SetStringInfoLength(StringInfo *,const size_t),
SetStringInfoPath(StringInfo *,const char *),
StripString(char *);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,353 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore private application programming interface declarations.
*/
#ifndef MAGICKCORE_STUDIO_H
#define MAGICKCORE_STUDIO_H
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
#if defined(WIN32) || defined(WIN64)
# define MAGICKCORE_WINDOWS_SUPPORT
#else
# define MAGICKCORE_POSIX_SUPPORT
#endif
#define MAGICKCORE_IMPLEMENTATION 1
#if !defined(MAGICKCORE_CONFIG_H)
# define MAGICKCORE_CONFIG_H
#include "MagickCore/magick-config.h"
# if defined(MAGICKCORE__FILE_OFFSET_BITS) && !defined(_FILE_OFFSET_BITS)
# define _FILE_OFFSET_BITS MAGICKCORE__FILE_OFFSET_BITS
#endif
#if defined(_magickcore_const) && !defined(const)
# define const _magickcore_const
#endif
#if defined(_magickcore_inline) && !defined(inline)
# define inline _magickcore_inline
#endif
# if defined(__cplusplus) || defined(c_plusplus)
# undef inline
# endif
#endif
#if defined(MAGICKCORE_NAMESPACE_PREFIX)
# include "MagickCore/methods.h"
#endif
#if !defined(const)
# define STDC
#endif
#include <stdarg.h>
#include <stdio.h>
#if defined(MAGICKCORE_HAVE_SYS_STAT_H)
# include <sys/stat.h>
#endif
#if defined(MAGICKCORE_STDC_HEADERS)
# include <stdlib.h>
# include <stddef.h>
#else
# if defined(MAGICKCORE_HAVE_STDLIB_H)
# include <stdlib.h>
# endif
#endif
#if !defined(magick_restrict)
# if !defined(_magickcore_restrict)
# define magick_restrict restrict
# else
# define magick_restrict _magickcore_restrict
# endif
#endif
#if defined(MAGICKCORE_HAVE_STRING_H)
# if !defined(STDC_HEADERS) && defined(MAGICKCORE_HAVE_MEMORY_H)
# include <memory.h>
# endif
# include <string.h>
#endif
#if defined(MAGICKCORE_HAVE_STRINGS_H)
# include <strings.h>
#endif
#if defined(MAGICKCORE_HAVE_INTTYPES_H)
# include <inttypes.h>
#endif
#if defined(MAGICKCORE_HAVE_STDINT_H)
# include <stdint.h>
#endif
#if defined(MAGICKCORE_HAVE_UNISTD_H)
# include <unistd.h>
#endif
#if defined(MAGICKCORE_WINDOWS_SUPPORT) && defined(_DEBUG)
#define _CRTDBG_MAP_ALLOC
#endif
#if defined(MAGICKCORE_WINDOWS_SUPPORT)
# include <io.h>
# include <direct.h>
# if !defined(MAGICKCORE_HAVE_STRERROR)
# define HAVE_STRERROR
# endif
#endif
#include <ctype.h>
#include <locale.h>
#include <errno.h>
#include <fcntl.h>
#include <math.h>
#include <time.h>
#include <limits.h>
#include <signal.h>
#include <assert.h>
#if defined(MAGICKCORE_HAVE_XLOCALE_H)
# include <xlocale.h>
#endif
#if defined(MAGICKCORE_THREAD_SUPPORT)
# include <pthread.h>
#elif defined(MAGICKCORE_WINDOWS_SUPPORT)
#include <winsock2.h>
#include <ws2tcpip.h>
#include <windows.h>
#pragma comment (lib, "ws2_32.lib")
#endif
#if defined(MAGICKCORE_HAVE_SYS_SYSLIMITS_H)
# include <sys/syslimits.h>
#endif
#if defined(MAGICKCORE_HAVE_ARM_LIMITS_H)
# include <arm/limits.h>
#endif
#if defined(MAGICKCORE__OPENCL)
#if defined(MAGICKCORE_HAVE_CL_CL_H)
# include <CL/cl.h>
#endif
#if defined(MAGICKCORE_HAVE_OPENCL_CL_H)
# include <OpenCL/cl.h>
#endif
# define MAGICKCORE_OPENCL_SUPPORT 1
#endif
#if defined(_OPENMP) && ((_OPENMP >= 200203) || defined(__OPENCC__))
# include <omp.h>
# define MAGICKCORE_OPENMP_SUPPORT 1
#endif
#if defined(MAGICKCORE_HAVE_PREAD) && defined(MAGICKCORE_HAVE_DECL_PREAD) && !MAGICKCORE_HAVE_DECL_PREAD
ssize_t pread(int,void *,size_t,off_t);
#endif
#if defined(MAGICKCORE_HAVE_PWRITE) && defined(MAGICKCORE_HAVE_DECL_PWRITE) && !MAGICKCORE_HAVE_DECL_PWRITE
ssize_t pwrite(int,const void *,size_t,off_t);
#endif
#if defined(MAGICKCORE_HAVE_STRLCPY) && defined(MAGICKCORE_HAVE_DECL_STRLCPY) && !MAGICKCORE_HAVE_DECL_STRLCPY
extern size_t strlcpy(char *,const char *,size_t);
#endif
#if defined(MAGICKCORE_HAVE_VSNPRINTF) && defined(MAGICKCORE_HAVE_DECL_VSNPRINTF) && !MAGICKCORE_HAVE_DECL_VSNPRINTF
extern int vsnprintf(char *,size_t,const char *,va_list);
#endif
#include "MagickCore/method-attribute.h"
#if defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(MAGICKCORE_POSIX_SUPPORT)
# include <sys/types.h>
# include <sys/stat.h>
# if defined(MAGICKCORE_HAVE_SYS_TIMEB_H)
# include <sys/timeb.h>
# endif
# if defined(MAGICKCORE_POSIX_SUPPORT)
# if defined(MAGICKCORE_HAVE_SYS_NDIR_H) || defined(MAGICKCORE_HAVE_SYS_DIR_H) || defined(MAGICKCORE_HAVE_NDIR_H)
# define dirent direct
# define NAMLEN(dirent) (dirent)->d_namlen
# if defined(MAGICKCORE_HAVE_SYS_NDIR_H)
# include <sys/ndir.h>
# endif
# if defined(MAGICKCORE_HAVE_SYS_DIR_H)
# include <sys/dir.h>
# endif
# if defined(MAGICKCORE_HAVE_NDIR_H)
# include <ndir.h>
# endif
# else
# include <dirent.h>
# define NAMLEN(dirent) strlen((dirent)->d_name)
# endif
# include <sys/wait.h>
# include <pwd.h>
# endif
# if !defined(S_ISDIR)
# define S_ISDIR(mode) (((mode) & S_IFMT) == S_IFDIR)
# endif
# if !defined(S_ISREG)
# define S_ISREG(mode) (((mode) & S_IFMT) == S_IFREG)
# endif
# include "MagickCore/magick-type.h"
# if !defined(MAGICKCORE_WINDOWS_SUPPORT)
# include <sys/time.h>
# if defined(MAGICKCORE_HAVE_SYS_TIMES_H)
# include <sys/times.h>
# endif
# if defined(MAGICKCORE_HAVE_SYS_RESOURCE_H)
# include <sys/resource.h>
# endif
# if defined(MAGICKCORE_HAVE_SYS_MMAN_H)
# include <sys/mman.h>
# endif
# if defined(MAGICKCORE_HAVE_SYS_SENDFILE_H)
# include <sys/sendfile.h>
# endif
#endif
#else
# include <types.h>
# include <stat.h>
# if defined(macintosh)
# if !defined(DISABLE_SIOUX)
# include <SIOUX.h>
# include <console.h>
# endif
# include <unix.h>
# endif
# include "MagickCore/magick-type.h"
#endif
#if defined(S_IRUSR) && defined(S_IWUSR)
# define S_MODE (S_IRUSR | S_IWUSR)
#elif defined (MAGICKCORE_WINDOWS_SUPPORT)
# define S_MODE (_S_IREAD | _S_IWRITE)
#else
# define S_MODE 0600
#endif
#if defined(MAGICKCORE_WINDOWS_SUPPORT)
# include "MagickCore/nt-base.h"
#endif
#ifdef __VMS
# include "MagickCore/vms.h"
#endif
#undef HAVE_CONFIG_H
#undef gamma
#undef index
#undef pipe
#undef y1
/*
Review these platform specific definitions.
*/
#if defined(MAGICKCORE_POSIX_SUPPORT) && !( defined(__OS2__) || defined( vms ) )
# define DirectorySeparator "/"
# define DirectoryListSeparator ':'
# define EditorOptions " -title \"Edit Image Comment\" -e vi"
# define Exit exit
# define IsBasenameSeparator(c) ((c) == '/' ? MagickTrue : MagickFalse)
# define X11_PREFERENCES_PATH "~/."
# define ProcessPendingEvents(text)
# define ReadCommandlLine(argc,argv)
# define SetNotifyHandlers
#else
# ifdef __VMS
# define X11_APPLICATION_PATH "decw$system_defaults:"
# define DirectorySeparator ""
# define DirectoryListSeparator ';'
# define EditorOptions ""
# define Exit exit
# define IsBasenameSeparator(c) \
(((c) == ']') || ((c) == ':') || ((c) == '/') ? MagickTrue : MagickFalse)
# define MAGICKCORE_LIBRARY_PATH "sys$login:"
# define MAGICKCORE_SHARE_PATH "sys$login:"
# define X11_PREFERENCES_PATH "decw$user_defaults:"
# define ProcessPendingEvents(text)
# define ReadCommandlLine(argc,argv)
# define SetNotifyHandlers
# endif
# if defined(__OS2__)
# define DirectorySeparator "\\"
# define DirectoryListSeparator ';'
# define EditorOptions " -title \"Edit Image Comment\" -e vi"
# define Exit exit
# define IsBasenameSeparator(c) \
(((c) == '/') || ((c) == '\\') ? MagickTrue : MagickFalse)
# define PreferencesDefaults "~\."
# define ProcessPendingEvents(text)
# define ReadCommandlLine(argc,argv)
# define SetNotifyHandlers
#endif
# if defined(MAGICKCORE_WINDOWS_SUPPORT)
# define DirectorySeparator "\\"
# define DirectoryListSeparator ';'
# define EditorOptions ""
# define IsBasenameSeparator(c) \
(((c) == '/') || ((c) == '\\') ? MagickTrue : MagickFalse)
# define ProcessPendingEvents(text)
# if !defined(X11_PREFERENCES_PATH)
# define X11_PREFERENCES_PATH "~\\."
# endif
# define ReadCommandlLine(argc,argv)
# define SetNotifyHandlers \
SetErrorHandler(NTErrorHandler); \
SetWarningHandler(NTWarningHandler)
# if !defined(MAGICKCORE_HAVE_TIFFCONF_H)
# define HAVE_TIFFCONF_H
# endif
# endif
#endif
/*
Define system symbols if not already defined.
*/
#if !defined(STDIN_FILENO)
#define STDIN_FILENO 0x00
#endif
#if !defined(O_BINARY)
#define O_BINARY 0x00
#endif
#if !defined(PATH_MAX)
#define PATH_MAX 4096
#endif
#if defined(MAGICKCORE_LTDL_DELEGATE) || (defined(MAGICKCORE_WINDOWS_SUPPORT) && defined(_DLL) && !defined(_LIB))
# define MAGICKCORE_MODULES_SUPPORT
#endif
#if defined(_MAGICKMOD_)
# undef MAGICKCORE_BUILD_MODULES
# define MAGICKCORE_BUILD_MODULES
#endif
/*
Magick defines.
*/
#define Swap(x,y) ((x)^=(y), (y)^=(x), (x)^=(y))
#if defined(_MSC_VER)
# define DisableMSCWarning(nr) __pragma(warning(push)) \
__pragma(warning(disable:nr))
# define RestoreMSCWarning __pragma(warning(pop))
#else
# define DisableMSCWarning(nr)
# define RestoreMSCWarning
#endif
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,50 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore image threshold methods.
*/
#ifndef MAGICKCORE_THRESHOLD_H
#define MAGICKCORE_THRESHOLD_H
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
typedef struct _ThresholdMap
ThresholdMap;
extern MagickExport Image
*AdaptiveThresholdImage(const Image *,const size_t,const size_t,const double,
ExceptionInfo *);
extern MagickExport ThresholdMap
*DestroyThresholdMap(ThresholdMap *),
*GetThresholdMap(const char *,ExceptionInfo *);
extern MagickExport MagickBooleanType
BilevelImage(Image *,const double,ExceptionInfo *),
BlackThresholdImage(Image *,const char *,ExceptionInfo *),
ClampImage(Image *,ExceptionInfo *),
ListThresholdMaps(FILE *,ExceptionInfo *),
OrderedDitherImage(Image *,const char *,ExceptionInfo *),
PerceptibleImage(Image *,const double,ExceptionInfo *),
RandomThresholdImage(Image *,const double,const double,ExceptionInfo *),
WhiteThresholdImage(Image *,const char *,ExceptionInfo *);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,73 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore timer methods.
*/
#ifndef MAGICKCORE_TIMER_H
#define MAGICKCORE_TIMER_H
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
typedef enum
{
UndefinedTimerState,
StoppedTimerState,
RunningTimerState
} TimerState;
typedef struct _Timer
{
double
start,
stop,
total;
} Timer;
typedef struct _TimerInfo
{
Timer
user,
elapsed;
TimerState
state;
size_t
signature;
} TimerInfo;
extern MagickExport double
GetElapsedTime(TimerInfo *),
GetUserTime(TimerInfo *);
extern MagickExport MagickBooleanType
ContinueTimer(TimerInfo *);
extern MagickExport TimerInfo
*AcquireTimerInfo(void),
*DestroyTimerInfo(TimerInfo *);
extern MagickExport void
GetTimerInfo(TimerInfo *),
ResetTimer(TimerInfo *),
StartTimer(TimerInfo *,const MagickBooleanType);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,49 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore token methods.
*/
#ifndef MAGICKCORE_TOKEN_H
#define MAGICKCORE_TOKEN_H
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
/*
Typedef declarations.
*/
typedef struct _TokenInfo
TokenInfo;
extern MagickExport int
Tokenizer(TokenInfo *,const unsigned int,char *,const size_t,const char *,
const char *,const char *,const char *,const char,char *,int *,char *);
extern MagickExport MagickBooleanType
GlobExpression(const char *,const char *,const MagickBooleanType);
extern MagickExport TokenInfo
*AcquireTokenInfo(void),
*DestroyTokenInfo(TokenInfo *);
extern MagickExport void
GetNextToken(const char *,const char **,const size_t,char *);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,46 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore image transform methods.
*/
#ifndef MAGICKCORE_TRANSFORM_H
#define MAGICKCORE_TRANSFORM_H
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
extern MagickExport Image
*AutoOrientImage(const Image *,const OrientationType,ExceptionInfo *),
*ChopImage(const Image *,const RectangleInfo *,ExceptionInfo *),
*ConsolidateCMYKImages(const Image *,ExceptionInfo *),
*CropImage(const Image *,const RectangleInfo *,ExceptionInfo *),
*CropImageToTiles(const Image *,const char *, ExceptionInfo *),
*ExcerptImage(const Image *,const RectangleInfo *,ExceptionInfo *),
*ExtentImage(const Image *,const RectangleInfo *,ExceptionInfo *),
*FlipImage(const Image *,ExceptionInfo *),
*FlopImage(const Image *,ExceptionInfo *),
*RollImage(const Image *,const ssize_t,const ssize_t,ExceptionInfo *),
*ShaveImage(const Image *,const RectangleInfo *,ExceptionInfo *),
*SpliceImage(const Image *,const RectangleInfo *,ExceptionInfo *),
*TransposeImage(const Image *,ExceptionInfo *),
*TransverseImage(const Image *,ExceptionInfo *),
*TrimImage(const Image *,ExceptionInfo *);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,99 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore image type methods.
*/
#ifndef MAGICKCORE_TYPE_H
#define MAGICKCORE_TYPE_H
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
typedef enum
{
UndefinedStretch,
NormalStretch,
UltraCondensedStretch,
ExtraCondensedStretch,
CondensedStretch,
SemiCondensedStretch,
SemiExpandedStretch,
ExpandedStretch,
ExtraExpandedStretch,
UltraExpandedStretch,
AnyStretch
} StretchType;
typedef enum
{
UndefinedStyle,
NormalStyle,
ItalicStyle,
ObliqueStyle,
AnyStyle
} StyleType;
typedef struct _TypeInfo
{
size_t
face;
char
*path,
*name,
*description,
*family;
StyleType
style;
StretchType
stretch;
size_t
weight;
char
*encoding,
*foundry,
*format,
*metrics,
*glyphs;
MagickBooleanType
stealth;
size_t
signature;
} TypeInfo;
extern MagickExport char
**GetTypeList(const char *,size_t *,ExceptionInfo *);
extern MagickExport MagickBooleanType
ListTypeInfo(FILE *,ExceptionInfo *);
extern MagickExport const TypeInfo
*GetTypeInfo(const char *,ExceptionInfo *),
*GetTypeInfoByFamily(const char *,const StyleType,const StretchType,
const size_t,ExceptionInfo *),
**GetTypeInfoList(const char *,size_t *,ExceptionInfo *);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,63 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore utility methods.
*/
#ifndef MAGICKCORE_UTILITY_H
#define MAGICKCORE_UTILITY_H
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
typedef enum
{
UndefinedPath,
MagickPath,
RootPath,
HeadPath,
TailPath,
BasePath,
ExtensionPath,
SubimagePath,
CanonicalPath
} PathType;
extern MagickExport char
*Base64Encode(const unsigned char *,const size_t,size_t *);
extern MagickExport MagickBooleanType
AcquireUniqueFilename(char *),
AcquireUniqueSymbolicLink(const char *,char *),
ExpandFilenames(int *,char ***),
GetPathAttributes(const char *,void *),
IsPathAccessible(const char *);
extern MagickExport size_t
MultilineCensus(const char *);
extern MagickExport unsigned char
*Base64Decode(const char *, size_t *);
extern MagickExport void
AppendImageFormat(const char *,char *),
GetPathComponent(const char *,PathType,char *),
MagickDelay(const MagickSizeType);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,97 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
http://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore version methods.
*/
#ifndef _MAGICKCORE_VERSION_H
#define _MAGICKCORE_VERSION_H
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
/*
Define declarations.
*/
#define MagickPackageName "ImageMagick"
#define MagickCopyright "© 1999-2017 ImageMagick Studio LLC"
#define MagickLibVersion 0x705
#define MagickLibVersionText "7.0.5"
#define MagickLibVersionNumber 2,0,0
#define MagickLibAddendum "-5"
#define MagickLibInterface 2
#define MagickLibMinInterface 2
#if defined(_WINDOWS)
# if defined(_WIN64)
# define MagickPlatform "x64"
# else
# define MagickPlatform "x86"
# endif
#else
#define MagickPlatform "x86_64"
#endif
#define MagickppLibVersionText "7.0.5"
#define MagickppLibVersionNumber 2:0:0
#define MagickppLibAddendum "-5"
#define MagickppLibInterface 2
#define MagickppLibMinInterface 2
#define MagickReleaseDate "2017-05-03"
#define MagickAuthoritativeLicense \
"http://www.imagemagick.org/script/license.php"
#define MagickAuthoritativeURL "http://www.imagemagick.org"
#define MagickHomeURL "file:///Users/johannespichler/Downloads/newTest/build/share/doc/ImageMagick-7/index.html"
#if (MAGICKCORE_QUANTUM_DEPTH == 8)
#define MagickQuantumDepth "Q8"
#define MagickQuantumRange "255"
#elif (MAGICKCORE_QUANTUM_DEPTH == 16)
#define MagickQuantumDepth "Q16"
#define MagickQuantumRange "65535"
#elif (MAGICKCORE_QUANTUM_DEPTH == 32)
#define MagickQuantumDepth "Q32"
#define MagickQuantumRange "4294967295"
#elif (MAGICKCORE_QUANTUM_DEPTH == 64)
#define MagickQuantumDepth "Q64"
#define MagickQuantumRange "65535"
#else
#define MagickQuantumDepth "Q?"
#define MagickQuantumRange "?"
#endif
#define MagickVersion \
MagickPackageName " " MagickLibVersionText MagickLibAddendum " " \
MagickQuantumDepth " " MagickPlatform " " MagickReleaseDate " " \
MagickAuthoritativeURL
extern MagickExport char
*GetMagickHomeURL(void);
extern MagickExport const char
*GetMagickCopyright(void),
*GetMagickDelegates(void),
*GetMagickFeatures(void),
*GetMagickLicense(void),
*GetMagickPackageName(void),
*GetMagickQuantumDepth(size_t *),
*GetMagickQuantumRange(size_t *),
*GetMagickReleaseDate(void),
*GetMagickVersion(size_t *);
extern MagickExport void
ListMagickVersion(FILE *);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,52 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore computer vision methods.
*/
#ifndef MAGICKCORE_VISION_H
#define MAGICKCORE_VISION_H
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
typedef struct _CCObjectInfo
{
ssize_t
id;
RectangleInfo
bounding_box;
PixelInfo
color;
PointInfo
centroid;
double
area,
census;
} CCObjectInfo;
extern MagickExport Image
*ConnectedComponentsImage(const Image *,const size_t,CCObjectInfo **,
ExceptionInfo *);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,29 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore X11 widget methods.
*/
#ifndef MAGICKCORE_WIDGET_H
#define MAGICKCORE_WIDGET_H
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,50 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
http://www.imagemagick.org/MagicksToolkit/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Magick's toolkit xml-tree methods.
*/
#ifndef MAGICKCORE_XML_TREE_H
#define MAGICKCORE_XML_TREE_H
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
typedef struct _XMLTreeInfo
XMLTreeInfo;
extern MagickExport char
*XMLTreeInfoToXML(XMLTreeInfo *);
extern MagickExport const char
*GetXMLTreeAttribute(XMLTreeInfo *,const char *),
*GetXMLTreeContent(XMLTreeInfo *),
*GetXMLTreeTag(XMLTreeInfo *);
extern MagickExport XMLTreeInfo
*AddChildToXMLTree(XMLTreeInfo *,const char *,const size_t),
*DestroyXMLTree(XMLTreeInfo *),
*GetNextXMLTreeTag(XMLTreeInfo *),
*GetXMLTreeChild(XMLTreeInfo *,const char *),
*GetXMLTreeSibling(XMLTreeInfo *),
*NewXMLTree(const char *,ExceptionInfo *),
*NewXMLTreeTag(const char *),
*SetXMLTreeContent(XMLTreeInfo *,const char *);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -0,0 +1,45 @@
/*
Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
https://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore X11 window methods.
*/
#ifndef MAGICKCORE_XWINDOW_H
#define MAGICKCORE_XWINDOW_H
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
typedef struct _XImportInfo
{
MagickBooleanType
frame,
borders,
screen,
descend,
silent;
} XImportInfo;
extern MagickExport Image
*XImportImage(const ImageInfo *,XImportInfo *,ExceptionInfo *);
extern MagickExport void
XGetImportInfo(XImportInfo *);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif