diff --git a/wand/magick-image.h b/wand/magick-image.h
new file mode 100644
index 0000000..58cfe17
--- /dev/null
+++ b/wand/magick-image.h
@@ -0,0 +1,425 @@
+/*
+ Copyright 1999-2009 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.
+
+ MagickWand image Methods.
+*/
+
+#ifndef _MAGICKWAND_MAGICK_IMAGE_H
+#define _MAGICKWAND_MAGICK_IMAGE_H
+
+#if defined(__cplusplus) || defined(c_plusplus)
+extern "C" {
+#endif
+
+extern WandExport ChannelStatistics
+ *MagickGetImageChannelStatistics(MagickWand *);
+
+extern WandExport char
+ *MagickGetImageFilename(MagickWand *),
+ *MagickGetImageFormat(MagickWand *),
+ *MagickGetImageSignature(MagickWand *),
+ *MagickIdentifyImage(MagickWand *);
+
+extern WandExport ColorspaceType
+ MagickGetImageColorspace(MagickWand *);
+
+extern WandExport CompositeOperator
+ MagickGetImageCompose(MagickWand *);
+
+extern WandExport CompressionType
+ MagickGetImageCompression(MagickWand *);
+
+extern WandExport DisposeType
+ MagickGetImageDispose(MagickWand *);
+
+extern WandExport double
+ *MagickGetImageChannelDistortions(MagickWand *,const MagickWand *,
+ const MetricType),
+ MagickGetImageFuzz(MagickWand *),
+ MagickGetImageGamma(MagickWand *),
+ MagickGetImageTotalInkDensity(MagickWand *);
+
+extern WandExport GravityType
+ MagickGetImageGravity(MagickWand *);
+
+extern WandExport Image
+ *MagickDestroyImage(Image *),
+ *GetImageFromMagickWand(const MagickWand *);
+
+extern WandExport ImageType
+ MagickGetImageType(MagickWand *);
+
+extern WandExport InterlaceType
+ MagickGetImageInterlaceScheme(MagickWand *);
+
+extern WandExport InterpolatePixelMethod
+ MagickGetImageInterpolateMethod(MagickWand *);
+
+extern WandExport MagickBooleanType
+ MagickAdaptiveBlurImage(MagickWand *,const double,const double),
+ MagickAdaptiveBlurImageChannel(MagickWand *,const ChannelType,const double,
+ const double),
+ MagickAdaptiveResizeImage(MagickWand *,const unsigned long,
+ const unsigned long),
+ MagickAdaptiveSharpenImage(MagickWand *,const double,const double),
+ MagickAdaptiveSharpenImageChannel(MagickWand *,const ChannelType,const double,
+ const double),
+ MagickAdaptiveThresholdImage(MagickWand *,const unsigned long,
+ const unsigned long,const long),
+ MagickAddImage(MagickWand *,const MagickWand *),
+ MagickAddNoiseImage(MagickWand *,const NoiseType),
+ MagickAddNoiseImageChannel(MagickWand *,const ChannelType,const NoiseType),
+ MagickAffineTransformImage(MagickWand *,const DrawingWand *),
+ MagickAnnotateImage(MagickWand *,const DrawingWand *,const double,
+ const double,const double,const char *),
+ MagickAnimateImages(MagickWand *,const char *),
+ MagickAutoGammaImage(MagickWand *),
+ MagickAutoGammaImageChannel(MagickWand *,const ChannelType),
+ MagickAutoLevelImage(MagickWand *),
+ MagickAutoLevelImageChannel(MagickWand *,const ChannelType),
+ MagickBlackThresholdImage(MagickWand *,const PixelWand *),
+ MagickBlueShiftImage(MagickWand *,const double),
+ MagickBlurImage(MagickWand *,const double,const double),
+ MagickBlurImageChannel(MagickWand *,const ChannelType,const double,
+ const double),
+ MagickBorderImage(MagickWand *,const PixelWand *,const unsigned long,
+ const unsigned long),
+ MagickCharcoalImage(MagickWand *,const double,const double),
+ MagickChopImage(MagickWand *,const unsigned long,const unsigned long,
+ const long,const long),
+ MagickClipImage(MagickWand *),
+ MagickClipImagePath(MagickWand *,const char *,const MagickBooleanType),
+ MagickClutImage(MagickWand *,const MagickWand *),
+ MagickClutImageChannel(MagickWand *,const ChannelType,const MagickWand *),
+ MagickColorDecisionListImage(MagickWand *,const char *),
+ MagickColorizeImage(MagickWand *,const PixelWand *,const PixelWand *),
+ MagickCommentImage(MagickWand *,const char *),
+ MagickCompositeImage(MagickWand *,const MagickWand *,const CompositeOperator,
+ const long,const long),
+ MagickCompositeImageChannel(MagickWand *,const ChannelType,const MagickWand *, const CompositeOperator,const long,const long),
+ MagickConstituteImage(MagickWand *,const unsigned long,const unsigned long,
+ const char *,const StorageType,const void *),
+ MagickContrastImage(MagickWand *,const MagickBooleanType),
+ MagickContrastStretchImage(MagickWand *,const double,const double),
+ MagickContrastStretchImageChannel(MagickWand *,const ChannelType,const double,
+ const double),
+ MagickConvolveImage(MagickWand *,const unsigned long,const double *),
+ MagickConvolveImageChannel(MagickWand *,const ChannelType,const unsigned long,
+ const double *),
+ MagickCropImage(MagickWand *,const unsigned long,const unsigned long,
+ const long,const long),
+ MagickCycleColormapImage(MagickWand *,const long),
+ MagickDecipherImage(MagickWand *,const char *),
+ MagickDeskewImage(MagickWand *,const double),
+ MagickDespeckleImage(MagickWand *),
+ MagickDisplayImage(MagickWand *,const char *),
+ MagickDisplayImages(MagickWand *,const char *),
+ MagickDistortImage(MagickWand *,const DistortImageMethod,const unsigned long,
+ const double *,const MagickBooleanType),
+ MagickDrawImage(MagickWand *,const DrawingWand *),
+ MagickEdgeImage(MagickWand *,const double),
+ MagickEmbossImage(MagickWand *,const double,const double),
+ MagickEncipherImage(MagickWand *,const char *),
+ MagickEnhanceImage(MagickWand *),
+ MagickEqualizeImage(MagickWand *),
+ MagickEqualizeImageChannel(MagickWand *,const ChannelType),
+ MagickEvaluateImage(MagickWand *,const MagickEvaluateOperator,const double),
+ MagickEvaluateImageChannel(MagickWand *,const ChannelType,
+ const MagickEvaluateOperator,const double),
+ MagickExportImagePixels(MagickWand *,const long,const long,
+ const unsigned long,const unsigned long,const char *,const StorageType,
+ void *),
+ MagickExtentImage(MagickWand *,const unsigned long,const unsigned long,
+ const long,const long),
+ MagickFlipImage(MagickWand *),
+ MagickFloodfillPaintImage(MagickWand *,const ChannelType,const PixelWand *,
+ const double,const PixelWand *,const long,const long,
+ const MagickBooleanType),
+ MagickFlopImage(MagickWand *),
+ MagickForwardFourierTransformImage(MagickWand *,const MagickBooleanType),
+ MagickFrameImage(MagickWand *,const PixelWand *,const unsigned long,
+ const unsigned long,const long,const long),
+ MagickFunctionImage(MagickWand *,const MagickFunction,const unsigned long,
+ const double *),
+ MagickFunctionImageChannel(MagickWand *,const ChannelType,
+ const MagickFunction,const unsigned long,const double *),
+ MagickGammaImage(MagickWand *,const double),
+ MagickGammaImageChannel(MagickWand *,const ChannelType,const double),
+ MagickGaussianBlurImage(MagickWand *,const double,const double),
+ MagickGaussianBlurImageChannel(MagickWand *,const ChannelType,const double,
+ const double),
+ MagickGetImageAlphaChannel(MagickWand *),
+ MagickGetImageBackgroundColor(MagickWand *,PixelWand *),
+ MagickGetImageBluePrimary(MagickWand *,double *,double *),
+ MagickGetImageBorderColor(MagickWand *,PixelWand *),
+ MagickGetImageChannelDistortion(MagickWand *,const MagickWand *,
+ const ChannelType,const MetricType,double *),
+ MagickGetImageChannelKurtosis(MagickWand *,const ChannelType,double *,
+ double *),
+ MagickGetImageChannelMean(MagickWand *,const ChannelType,double *,double *),
+ MagickGetImageChannelRange(MagickWand *,const ChannelType,double *,double *),
+ MagickGetImageColormapColor(MagickWand *,const unsigned long,PixelWand *),
+ MagickGetImageDistortion(MagickWand *,const MagickWand *,const MetricType,
+ double *),
+ MagickGetImageGreenPrimary(MagickWand *,double *,double *),
+ MagickGetImageMatteColor(MagickWand *,PixelWand *),
+ MagickGetImageLength(MagickWand *,MagickSizeType *),
+ MagickGetImagePage(MagickWand *,unsigned long *,unsigned long *,long *,
+ long *),
+ MagickGetImagePixelColor(MagickWand *,const long,const long,PixelWand *),
+ MagickGetImageRange(MagickWand *,double *,double *),
+ MagickGetImageRedPrimary(MagickWand *,double *,double *),
+ MagickGetImageResolution(MagickWand *,double *,double *),
+ MagickGetImageWhitePoint(MagickWand *,double *,double *),
+ MagickHaldClutImage(MagickWand *,const MagickWand *),
+ MagickHaldClutImageChannel(MagickWand *,const ChannelType,const MagickWand *),
+ MagickHasNextImage(MagickWand *),
+ MagickHasPreviousImage(MagickWand *),
+ MagickImplodeImage(MagickWand *,const double),
+ MagickImportImagePixels(MagickWand *,const long,const long,
+ const unsigned long,const unsigned long,const char *,const StorageType,
+ const void *),
+ MagickInverseFourierTransformImage(MagickWand *,const MagickBooleanType),
+ MagickLabelImage(MagickWand *,const char *),
+ MagickLevelImage(MagickWand *,const double,const double,const double),
+ MagickLevelImageChannel(MagickWand *,const ChannelType,const double,
+ const double,const double),
+ MagickLinearStretchImage(MagickWand *,const double,const double),
+ MagickLiquidRescaleImage(MagickWand *,const unsigned long,const unsigned long,
+ const double,const double),
+ MagickMagnifyImage(MagickWand *),
+ MagickMedianFilterImage(MagickWand *,const double),
+ MagickMinifyImage(MagickWand *),
+ MagickModulateImage(MagickWand *,const double,const double,const double),
+ MagickMotionBlurImage(MagickWand *,const double,const double,const double),
+ MagickMotionBlurImageChannel(MagickWand *,const ChannelType,const double,
+ const double,const double),
+ MagickNegateImage(MagickWand *,const MagickBooleanType),
+ MagickNegateImageChannel(MagickWand *,const ChannelType,
+ const MagickBooleanType),
+ MagickNewImage(MagickWand *,const unsigned long,const unsigned long,
+ const PixelWand *),
+ MagickNextImage(MagickWand *),
+ MagickNormalizeImage(MagickWand *),
+ MagickNormalizeImageChannel(MagickWand *,const ChannelType),
+ MagickOilPaintImage(MagickWand *,const double),
+ MagickOpaquePaintImage(MagickWand *,const PixelWand *,const PixelWand *,
+ const double,const MagickBooleanType),
+ MagickOpaquePaintImageChannel(MagickWand *,const ChannelType,
+ const PixelWand *,const PixelWand *,const double,const MagickBooleanType),
+ MagickOrderedPosterizeImage(MagickWand *,const char *),
+ MagickOrderedPosterizeImageChannel(MagickWand *,const ChannelType,
+ const char *),
+ MagickTransparentPaintImage(MagickWand *,const PixelWand *,
+ const double,const double,const MagickBooleanType invert),
+ MagickPingImage(MagickWand *,const char *),
+ MagickPingImageBlob(MagickWand *,const void *,const size_t),
+ MagickPingImageFile(MagickWand *,FILE *),
+ MagickPolaroidImage(MagickWand *,const DrawingWand *,const double),
+ MagickPosterizeImage(MagickWand *,const unsigned long,
+ const MagickBooleanType),
+ MagickPreviousImage(MagickWand *),
+ MagickQuantizeImage(MagickWand *,const unsigned long,const ColorspaceType,
+ const unsigned long,const MagickBooleanType,const MagickBooleanType),
+ MagickQuantizeImages(MagickWand *,const unsigned long,const ColorspaceType,
+ const unsigned long,const MagickBooleanType,const MagickBooleanType),
+ MagickRadialBlurImage(MagickWand *,const double),
+ MagickRadialBlurImageChannel(MagickWand *,const ChannelType,const double),
+ MagickRaiseImage(MagickWand *,const unsigned long,const unsigned long,
+ const long,const long,const MagickBooleanType),
+ MagickRandomThresholdImage(MagickWand *,const double,const double),
+ MagickRandomThresholdImageChannel(MagickWand *,const ChannelType,const double,
+ const double),
+ MagickReadImage(MagickWand *,const char *),
+ MagickReadImageBlob(MagickWand *,const void *,const size_t),
+ MagickReadImageFile(MagickWand *,FILE *),
+ MagickRecolorImage(MagickWand *,const unsigned long,const double *),
+ MagickReduceNoiseImage(MagickWand *,const double),
+ MagickRemapImage(MagickWand *,const MagickWand *,const DitherMethod),
+ MagickRemoveImage(MagickWand *),
+ MagickResampleImage(MagickWand *,const double,const double,const FilterTypes,
+ const double),
+ MagickResetImagePage(MagickWand *,const char *),
+ MagickResizeImage(MagickWand *,const unsigned long,const unsigned long,
+ const FilterTypes,const double),
+ MagickRollImage(MagickWand *,const long,const long),
+ MagickRotateImage(MagickWand *,const PixelWand *,const double),
+ MagickSampleImage(MagickWand *,const unsigned long,const unsigned long),
+ MagickScaleImage(MagickWand *,const unsigned long,const unsigned long),
+ MagickSegmentImage(MagickWand *,const ColorspaceType,const MagickBooleanType,
+ const double,const double),
+ MagickSelectiveBlurImage(MagickWand *,const double,const double,const double),
+ MagickSelectiveBlurImageChannel(MagickWand *,const ChannelType,const double,
+ const double,const double),
+ MagickSeparateImageChannel(MagickWand *,const ChannelType),
+ MagickSepiaToneImage(MagickWand *,const double),
+ MagickSetImage(MagickWand *,const MagickWand *),
+ MagickSetImageAlphaChannel(MagickWand *,const AlphaChannelType),
+ MagickSetImageBackgroundColor(MagickWand *,const PixelWand *),
+ MagickSetImageBias(MagickWand *,const double),
+ MagickSetImageBluePrimary(MagickWand *,const double,const double),
+ MagickSetImageBorderColor(MagickWand *,const PixelWand *),
+ MagickSetImageChannelDepth(MagickWand *,const ChannelType,
+ const unsigned long),
+ MagickSetImageClipMask(MagickWand *,const MagickWand *),
+ MagickSetImageColormapColor(MagickWand *,const unsigned long,
+ const PixelWand *),
+ MagickSetImageColorspace(MagickWand *,const ColorspaceType),
+ MagickSetImageCompose(MagickWand *,const CompositeOperator),
+ MagickSetImageCompression(MagickWand *,const CompressionType),
+ MagickSetImageDelay(MagickWand *,const unsigned long),
+ MagickSetImageDepth(MagickWand *,const unsigned long),
+ MagickSetImageDispose(MagickWand *,const DisposeType),
+ MagickSetImageCompressionQuality(MagickWand *,const unsigned long),
+ MagickSetImageExtent(MagickWand *,const unsigned long,const unsigned long),
+ MagickSetImageFilename(MagickWand *,const char *),
+ MagickSetImageFormat(MagickWand *,const char *),
+ MagickSetImageFuzz(MagickWand *,const double),
+ MagickSetImageGamma(MagickWand *,const double),
+ MagickSetImageGravity(MagickWand *,const GravityType),
+ MagickSetImageGreenPrimary(MagickWand *,const double,const double),
+ MagickSetImageInterlaceScheme(MagickWand *,const InterlaceType),
+ MagickSetImageInterpolateMethod(MagickWand *,const InterpolatePixelMethod),
+ MagickSetImageIterations(MagickWand *,const unsigned long),
+ MagickSetImageMatte(MagickWand *,const MagickBooleanType),
+ MagickSetImageMatteColor(MagickWand *,const PixelWand *),
+ MagickSetImageOpacity(MagickWand *,const double),
+ MagickSetImageOrientation(MagickWand *,const OrientationType),
+ MagickSetImagePage(MagickWand *,const unsigned long,const unsigned long,
+ const long,const long),
+ MagickSetImageRedPrimary(MagickWand *,const double,const double),
+ MagickSetImageRenderingIntent(MagickWand *,const RenderingIntent),
+ MagickSetImageResolution(MagickWand *,const double,const double),
+ MagickSetImageScene(MagickWand *,const unsigned long),
+ MagickSetImageTicksPerSecond(MagickWand *,const long),
+ MagickSetImageType(MagickWand *,const ImageType),
+ MagickSetImageUnits(MagickWand *,const ResolutionType),
+ MagickSetImageWhitePoint(MagickWand *,const double,const double),
+ MagickShadeImage(MagickWand *,const MagickBooleanType,const double,
+ const double),
+ MagickShadowImage(MagickWand *,const double,const double,const long,
+ const long),
+ MagickSharpenImage(MagickWand *,const double,const double),
+ MagickSharpenImageChannel(MagickWand *,const ChannelType,const double,
+ const double),
+ MagickShaveImage(MagickWand *,const unsigned long,const unsigned long),
+ MagickShearImage(MagickWand *,const PixelWand *,const double,const double),
+ MagickSigmoidalContrastImage(MagickWand *,const MagickBooleanType,
+ const double,const double),
+ MagickSigmoidalContrastImageChannel(MagickWand *,const ChannelType,
+ const MagickBooleanType,const double,const double),
+ MagickSketchImage(MagickWand *,const double,const double,const double),
+ MagickSolarizeImage(MagickWand *,const double),
+ MagickSparseColorImage(MagickWand *,const ChannelType,const SparseColorMethod,
+ const unsigned long,const double *),
+ MagickSpliceImage(MagickWand *,const unsigned long,const unsigned long,
+ const long,const long),
+ MagickSpreadImage(MagickWand *,const double),
+ MagickStripImage(MagickWand *),
+ MagickSwirlImage(MagickWand *,const double),
+ MagickTintImage(MagickWand *,const PixelWand *,const PixelWand *),
+ MagickTransformImageColorspace(MagickWand *,const ColorspaceType),
+ MagickTransposeImage(MagickWand *),
+ MagickTransverseImage(MagickWand *),
+ MagickThresholdImage(MagickWand *,const double),
+ MagickThresholdImageChannel(MagickWand *,const ChannelType,const double),
+ MagickThumbnailImage(MagickWand *,const unsigned long,const unsigned long),
+ MagickTrimImage(MagickWand *,const double),
+ MagickUniqueImageColors(MagickWand *),
+ MagickUnsharpMaskImage(MagickWand *,const double,const double,const double,
+ const double),
+ MagickUnsharpMaskImageChannel(MagickWand *,const ChannelType,const double,
+ const double,const double,const double),
+ MagickVignetteImage(MagickWand *,const double,const double,
+ const long,const long),
+ MagickWaveImage(MagickWand *,const double,const double),
+ MagickWhiteThresholdImage(MagickWand *,const PixelWand *),
+ MagickWriteImage(MagickWand *,const char *),
+ MagickWriteImageFile(MagickWand *,FILE *),
+ MagickWriteImages(MagickWand *,const char *,const MagickBooleanType),
+ MagickWriteImagesFile(MagickWand *,FILE *);
+
+WandExport MagickProgressMonitor
+ MagickSetImageProgressMonitor(MagickWand *,const MagickProgressMonitor,
+ void *);
+
+extern WandExport MagickWand
+ *MagickAppendImages(MagickWand *,const MagickBooleanType),
+ *MagickAverageImages(MagickWand *),
+ *MagickCoalesceImages(MagickWand *),
+ *MagickCombineImages(MagickWand *,const ChannelType),
+ *MagickCompareImageChannels(MagickWand *,const MagickWand *,const ChannelType,
+ const MetricType,double *),
+ *MagickCompareImages(MagickWand *,const MagickWand *,const MetricType,
+ double *),
+ *MagickCompareImageLayers(MagickWand *,const ImageLayerMethod),
+ *MagickDeconstructImages(MagickWand *),
+ *MagickFxImage(MagickWand *,const char *),
+ *MagickFxImageChannel(MagickWand *,const ChannelType,const char *),
+ *MagickGetImage(MagickWand *),
+ *MagickGetImageClipMask(MagickWand *),
+ *MagickGetImageRegion(MagickWand *,const unsigned long,const unsigned long,
+ const long,const long),
+ *MagickMergeImageLayers(MagickWand *,const ImageLayerMethod),
+ *MagickMorphImages(MagickWand *,const unsigned long),
+ *MagickMontageImage(MagickWand *,const DrawingWand *,const char *,
+ const char *,const MontageMode,const char *),
+ *MagickOptimizeImageLayers(MagickWand *),
+ *MagickPreviewImages(MagickWand *wand,const PreviewType),
+ *MagickSimilarityImage(MagickWand *,const MagickWand *,RectangleInfo *,
+ double *),
+ *MagickSteganoImage(MagickWand *,const MagickWand *,const long),
+ *MagickStereoImage(MagickWand *,const MagickWand *),
+ *MagickTextureImage(MagickWand *,const MagickWand *),
+ *MagickTransformImage(MagickWand *,const char *,const char *);
+
+extern WandExport OrientationType
+ MagickGetImageOrientation(MagickWand *);
+
+extern WandExport PixelWand
+ **MagickGetImageHistogram(MagickWand *,unsigned long *);
+
+extern WandExport RenderingIntent
+ MagickGetImageRenderingIntent(MagickWand *);
+
+extern WandExport ResolutionType
+ MagickGetImageUnits(MagickWand *);
+
+extern WandExport unsigned char
+ *MagickGetImageBlob(MagickWand *,size_t *),
+ *MagickGetImagesBlob(MagickWand *,size_t *);
+
+extern WandExport unsigned long
+ MagickGetImageColors(MagickWand *),
+ MagickGetImageCompressionQuality(MagickWand *),
+ MagickGetImageDelay(MagickWand *),
+ MagickGetImageChannelDepth(MagickWand *,const ChannelType),
+ MagickGetImageDepth(MagickWand *),
+ MagickGetImageHeight(MagickWand *),
+ MagickGetImageIterations(MagickWand *),
+ MagickGetImageScene(MagickWand *),
+ MagickGetImageTicksPerSecond(MagickWand *),
+ MagickGetImageWidth(MagickWand *),
+ MagickGetNumberImages(MagickWand *);
+
+extern WandExport VirtualPixelMethod
+ MagickGetImageVirtualPixelMethod(MagickWand *),
+ MagickSetImageVirtualPixelMethod(MagickWand *,const VirtualPixelMethod);
+
+#if defined(__cplusplus) || defined(c_plusplus)
+}
+#endif
+
+#endif