image.h revision 60ad75213b67ee94ece907f3ed634eeda0ed0e6b
13473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor/*
23473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  Copyright 1999-2012 ImageMagick Studio LLC, a non-profit organization
33473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  dedicated to making software imaging solutions freely available.
43473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
53473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  You may not use this file except in compliance with the License.
63473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  obtain a copy of the License at
73473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
83473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    http://www.imagemagick.org/script/license.php
93473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
103473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  Unless required by applicable law or agreed to in writing, software
11c5d64345cf19bfd72418eb0a837869b0462e9130Daniel Veillard  distributed under the License is distributed on an "AS IS" BASIS,
123473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
133473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  See the License for the specific language governing permissions and
143473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  limitations under the License.
153473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
163473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  MagickCore image methods.
17f3afa7dd4e8daacfa62f7345b7d7071e0cb33423Daniel Veillard*/
1834ce8bece2f22cc99d25221b77315cd008f4866bDaniel Veillard#ifndef _MAGICKCORE_IMAGE_H
1970a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese#define _MAGICKCORE_IMAGE_H
203473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
213473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#if defined(__cplusplus) || defined(c_plusplus)
223473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorextern "C" {
233473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#endif
243473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
253473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#include <MagickCore/color.h>
263473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#include <MagickCore/pixel.h>
273473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
283473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#define OpaqueAlpha  ((Quantum) QuantumRange)
293473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#define TransparentAlpha  ((Quantum) 0)
3075eb1adc04eb72a061d5b37bc0c73f4d92400d57Daniel Veillard
3175eb1adc04eb72a061d5b37bc0c73f4d92400d57Daniel Veillardtypedef enum
3275eb1adc04eb72a061d5b37bc0c73f4d92400d57Daniel Veillard{
333473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  UndefinedAlphaChannel,
343473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  ActivateAlphaChannel,
353473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  BackgroundAlphaChannel,
363473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  CopyAlphaChannel,
373473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  DeactivateAlphaChannel,
383473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  ExtractAlphaChannel,
393473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  OpaqueAlphaChannel,
403473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  RemoveAlphaChannel,
413473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  SetAlphaChannel,
423473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  ShapeAlphaChannel,
433473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  TransparentAlphaChannel
443473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor} AlphaChannelType;
45d85f4f437c9d54a658b229a77426e693bd328787Daniel Veillard
469b731d709ee99b59b815d51ad80ebba409f0f20dDaniel Veillardtypedef enum
479b731d709ee99b59b815d51ad80ebba409f0f20dDaniel Veillard{
489b731d709ee99b59b815d51ad80ebba409f0f20dDaniel Veillard  UndefinedType,
49d85f4f437c9d54a658b229a77426e693bd328787Daniel Veillard  BilevelType,
50d85f4f437c9d54a658b229a77426e693bd328787Daniel Veillard  GrayscaleType,
513473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  GrayscaleMatteType,
523473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  PaletteType,
533473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  PaletteMatteType,
543473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  TrueColorType,
553473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  TrueColorMatteType,
563473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  ColorSeparationType,
573473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  ColorSeparationMatteType,
583473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  OptimizeType,
593473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  PaletteBilevelMatteType
603473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor} ImageType;
613473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
623473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef enum
633473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor{
643473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  UndefinedInterlace,
653473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  NoInterlace,
663473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  LineInterlace,
673473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  PlaneInterlace,
683473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  PartitionInterlace,
693473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  GIFInterlace,
703473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  JPEGInterlace,
713473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  PNGInterlace
72c284c64ff9bb42be244193f959210154a0cfa518Daniel Veillard} InterlaceType;
733473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
743473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef enum
753473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor{
761638a47a884b089825e26459081e137483b7d454Daniel Veillard  UndefinedOrientation,
771638a47a884b089825e26459081e137483b7d454Daniel Veillard  TopLeftOrientation,
781638a47a884b089825e26459081e137483b7d454Daniel Veillard  TopRightOrientation,
791638a47a884b089825e26459081e137483b7d454Daniel Veillard  BottomRightOrientation,
801638a47a884b089825e26459081e137483b7d454Daniel Veillard  BottomLeftOrientation,
81c284c64ff9bb42be244193f959210154a0cfa518Daniel Veillard  LeftTopOrientation,
82c284c64ff9bb42be244193f959210154a0cfa518Daniel Veillard  RightTopOrientation,
831638a47a884b089825e26459081e137483b7d454Daniel Veillard  RightBottomOrientation,
841638a47a884b089825e26459081e137483b7d454Daniel Veillard  LeftBottomOrientation
851638a47a884b089825e26459081e137483b7d454Daniel Veillard} OrientationType;
86d0463560300f1d8b3e41d70c3728ed84fdc8dd30Daniel Veillard
87f012a64d13d85d53eac0d4d6625508109e7c9e9dDaniel Veillardtypedef enum
883473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor{
893473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  UndefinedResolution,
903473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  PixelsPerInchResolution,
913c01b1d81b696fe8624b6d7e26ec0ebffcc7c06bDaniel Veillard  PixelsPerCentimeterResolution
928efff671578465d3bf122cc0a6811bc3763ee519Daniel Veillard} ResolutionType;
933473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
943473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef struct _PrimaryInfo
953473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor{
963473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  double
973473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    x,
98a9cce9cd0d7aff3ec318b5d8d376da131b6aaad4Daniel Veillard    y,
993473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    z;
100a9cce9cd0d7aff3ec318b5d8d376da131b6aaad4Daniel Veillard} PrimaryInfo;
1013473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
1023473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef struct _SegmentInfo
1033473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor{
10489f7f27a9b06d1cf8b72557296350b47691493acDaniel Veillard  double
10589f7f27a9b06d1cf8b72557296350b47691493acDaniel Veillard    x1,
10689f7f27a9b06d1cf8b72557296350b47691493acDaniel Veillard    y1,
10789f7f27a9b06d1cf8b72557296350b47691493acDaniel Veillard    x2,
10889f7f27a9b06d1cf8b72557296350b47691493acDaniel Veillard    y2;
10989f7f27a9b06d1cf8b72557296350b47691493acDaniel Veillard} SegmentInfo;
110c284c64ff9bb42be244193f959210154a0cfa518Daniel Veillard
111c284c64ff9bb42be244193f959210154a0cfa518Daniel Veillardtypedef enum
11275be0130855fe02d238bbbf19a04d3c5eb45f494Daniel Veillard{
11375be0130855fe02d238bbbf19a04d3c5eb45f494Daniel Veillard  UndefinedTransmitType,
11475be0130855fe02d238bbbf19a04d3c5eb45f494Daniel Veillard  FileTransmitType,
11575be0130855fe02d238bbbf19a04d3c5eb45f494Daniel Veillard  BlobTransmitType,
116f012a64d13d85d53eac0d4d6625508109e7c9e9dDaniel Veillard  StreamTransmitType,
1173473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  ImageTransmitType
1183473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor} TransmitType;
1193473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
1203473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef struct _ChromaticityInfo
1213473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor{
1223473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  PrimaryInfo
1233473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    red_primary,
1243473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    green_primary,
1253473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    blue_primary,
1263473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    white_point;
1273473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor} ChromaticityInfo;
1283473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
1293473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#include "MagickCore/blob.h"
1303473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#include "MagickCore/colorspace.h"
1313473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#include "MagickCore/cache-view.h"
1323473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#include "MagickCore/color.h"
1333473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#include "MagickCore/composite.h"
1343473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#include "MagickCore/compress.h"
1353473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#include "MagickCore/effect.h"
1363473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#include "MagickCore/geometry.h"
137351f2d6e1ae97775a2458b86cdb110d00332834aDaniel Veillard#include "MagickCore/layer.h"
1383473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#include "MagickCore/locale_.h"
1393473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#include "MagickCore/monitor.h"
1403473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#include "MagickCore/pixel.h"
1413473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#include "MagickCore/profile.h"
1423473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#include "MagickCore/quantum.h"
1433473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#include "MagickCore/resample.h"
1443473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#include "MagickCore/resize.h"
1453473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#include "MagickCore/semaphore.h"
1463473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#include "MagickCore/stream.h"
1473473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#include "MagickCore/timer.h"
1483473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
149f012a64d13d85d53eac0d4d6625508109e7c9e9dDaniel Veillardstruct _Image
1503473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor{
1513473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  ClassType
1523473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    storage_class;
153847332a0da596e84f00acc9d692e0e582b8b12eaDaniel Veillard
154a840b69261c44760d45370bef989c77f84727406Daniel Veillard  ColorspaceType
1553473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    colorspace;         /* colorspace of image data */
1563473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
1573473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  CompressionType
1583473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    compression;        /* compression of image when read/write */
1593473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
1603473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  size_t
1613473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    quality;            /* compression quality setting, meaning varies */
162a2351322c89608d09ce1a99e5eccd62d00c79890Daniel Veillard
163f012a64d13d85d53eac0d4d6625508109e7c9e9dDaniel Veillard  OrientationType
1643473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    orientation;        /* photo orientation of image */
1652b0f8799086f2a54444c618ab3ed01a8177491f2Daniel Veillard
1662b0f8799086f2a54444c618ab3ed01a8177491f2Daniel Veillard  MagickBooleanType
1672b0f8799086f2a54444c618ab3ed01a8177491f2Daniel Veillard    taint,              /* has image been modified since reading */
1682b0f8799086f2a54444c618ab3ed01a8177491f2Daniel Veillard    matte;              /* is transparency channel defined and active */
1692b0f8799086f2a54444c618ab3ed01a8177491f2Daniel Veillard
1702b0f8799086f2a54444c618ab3ed01a8177491f2Daniel Veillard  size_t
1712b0f8799086f2a54444c618ab3ed01a8177491f2Daniel Veillard    columns,            /* physical size of image */
1722b0f8799086f2a54444c618ab3ed01a8177491f2Daniel Veillard    rows,
1732b0f8799086f2a54444c618ab3ed01a8177491f2Daniel Veillard    depth,              /* depth of image on read/write */
1742b0f8799086f2a54444c618ab3ed01a8177491f2Daniel Veillard    colors;             /* Size of color table, or actual color count */
1752b0f8799086f2a54444c618ab3ed01a8177491f2Daniel Veillard                        /* Only valid if image is not DirectClass */
1762b0f8799086f2a54444c618ab3ed01a8177491f2Daniel Veillard
1773473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  PixelInfo
1783473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    *colormap,
17956a4cb8c4d3eab4ab3295a61c87e8e92483922c6Daniel Veillard    background_color,   /* current background color attribute */
1803473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    border_color,       /* current bordercolor attribute */
1813473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    matte_color,        /* current mattecolor attribute */
1823473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    transparent_color;  /* color for 'transparent' color index in GIF */
1833473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
1843473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  double
1853473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    gamma;
1863473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
187de2a67b430ddc59690b707ac0119cb26366631d4Daniel Veillard  ChromaticityInfo
1882db8c125be777d642fc1143f23a77d8cf0aa4de1Daniel Veillard    chromaticity;
1892db8c125be777d642fc1143f23a77d8cf0aa4de1Daniel Veillard
190de2a67b430ddc59690b707ac0119cb26366631d4Daniel Veillard  RenderingIntent
191de2a67b430ddc59690b707ac0119cb26366631d4Daniel Veillard    rendering_intent;
192de2a67b430ddc59690b707ac0119cb26366631d4Daniel Veillard
193de2a67b430ddc59690b707ac0119cb26366631d4Daniel Veillard  void
194de2a67b430ddc59690b707ac0119cb26366631d4Daniel Veillard    *profiles;
195de2a67b430ddc59690b707ac0119cb26366631d4Daniel Veillard
196de2a67b430ddc59690b707ac0119cb26366631d4Daniel Veillard  ResolutionType
197de2a67b430ddc59690b707ac0119cb26366631d4Daniel Veillard    units;          /* resolution/density  ppi or ppc */
198de2a67b430ddc59690b707ac0119cb26366631d4Daniel Veillard
199de2a67b430ddc59690b707ac0119cb26366631d4Daniel Veillard  char
200de2a67b430ddc59690b707ac0119cb26366631d4Daniel Veillard    *montage,
2013473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    *directory,
2023473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    *geometry;
2033473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
2043473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  ssize_t
2053473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    offset;         /* ??? */
2063473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
2073473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  PointInfo
2083473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    resolution;     /* image resolution/density */
2093473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
2103473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  RectangleInfo
2113473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    page,           /* virtual canvas size and offset of image */
2123473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    extract_info;
2133473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
2143473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  double
2153473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    fuzz;           /* current color fuzz attribute - make image_info */
2163473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
2173473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  FilterTypes
2183473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    filter;         /* resize/distort filter to apply */
2193473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
2203473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  InterlaceType
2213473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    interlace;
2223473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
2233473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  EndianType
2243473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    endian;         /* raw data integer ordering on read/write */
2253473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
22629b1748205897f727696b62fdba333efc9671440Daniel Veillard  GravityType
2273473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    gravity;        /* Gravity attribute for positioning in image */
2283473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
2293473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  CompositeOperator
2303473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    compose;        /* alpha composition method for layered images */
2313473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
2323473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  DisposeType
2333473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    dispose;        /* GIF animation disposal method */
2343473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
2353473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  size_t
2363473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    scene,          /* index of image in multi-image file */
2373473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    delay;          /* Animation delay time */
2383473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
2393473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  ssize_t
2403473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    ticks_per_second;  /* units for delay time, default 100 for GIF */
2413473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
2423473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  size_t
2433473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    iterations,        /* ??? */
2445e2dace1ca6fbb023d1ce848d4e98deefbbfec31Daniel Veillard    total_colors;
2453473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
2463473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  ssize_t
2473473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    start_loop;        /* ??? */
2483473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
2493473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  PixelInterpolateMethod
2503473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    interpolate;       /* Interpolation of color for between pixel lookups */
251744acfffe537ed3922c57d28d8ea304ee9403942Daniel Veillard
2523473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  MagickBooleanType
253744acfffe537ed3922c57d28d8ea304ee9403942Daniel Veillard    black_point_compensation;
254744acfffe537ed3922c57d28d8ea304ee9403942Daniel Veillard
2553473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  RectangleInfo
2563473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    tile_offset;
2573473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
2583473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  void
2593473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    *properties,       /* per image properities */
2603473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    *artifacts;        /* per image sequence image artifacts */
2613473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
2623473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  ImageType
2633473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    type;
2643473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
2653473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  MagickBooleanType
2663473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    dither;            /* dithering on/off */
2673473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
2683473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  MagickSizeType
2693473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    extent;            /* Size of image read from disk */
2703473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
2713473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  MagickBooleanType
2723473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    ping;              /* no image data read, just attributes */
2733473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
274015ccb2c747fb73561e2fe72d6214585dd9985e8William M. Brack  MagickBooleanType
275015ccb2c747fb73561e2fe72d6214585dd9985e8William M. Brack    mask;
276015ccb2c747fb73561e2fe72d6214585dd9985e8William M. Brack
277015ccb2c747fb73561e2fe72d6214585dd9985e8William M. Brack  PixelTrait
2783473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    alpha_trait;
2793473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
2803473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  size_t
2813473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    number_channels,
2823473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    number_meta_channels,
2833473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    metacontent_extent;
2843473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
2853473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  ChannelType
2863473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    channel_mask;
2873473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
2883473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  PixelChannelMap
2893473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    *channel_map;
290351f2d6e1ae97775a2458b86cdb110d00332834aDaniel Veillard
291351f2d6e1ae97775a2458b86cdb110d00332834aDaniel Veillard  void
292351f2d6e1ae97775a2458b86cdb110d00332834aDaniel Veillard    *cache;
293351f2d6e1ae97775a2458b86cdb110d00332834aDaniel Veillard
2943473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  ErrorInfo
295de2a67b430ddc59690b707ac0119cb26366631d4Daniel Veillard    error;
296015ccb2c747fb73561e2fe72d6214585dd9985e8William M. Brack
297015ccb2c747fb73561e2fe72d6214585dd9985e8William M. Brack  TimerInfo
298015ccb2c747fb73561e2fe72d6214585dd9985e8William M. Brack    timer;
299de2a67b430ddc59690b707ac0119cb26366631d4Daniel Veillard
300015ccb2c747fb73561e2fe72d6214585dd9985e8William M. Brack  MagickProgressMonitor
301015ccb2c747fb73561e2fe72d6214585dd9985e8William M. Brack    progress_monitor;
302015ccb2c747fb73561e2fe72d6214585dd9985e8William M. Brack
3033473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  void
304015ccb2c747fb73561e2fe72d6214585dd9985e8William M. Brack    *client_data;
305015ccb2c747fb73561e2fe72d6214585dd9985e8William M. Brack
306015ccb2c747fb73561e2fe72d6214585dd9985e8William M. Brack  Ascii85Info
307015ccb2c747fb73561e2fe72d6214585dd9985e8William M. Brack    *ascii85;
308015ccb2c747fb73561e2fe72d6214585dd9985e8William M. Brack
309015ccb2c747fb73561e2fe72d6214585dd9985e8William M. Brack  ProfileInfo
310015ccb2c747fb73561e2fe72d6214585dd9985e8William M. Brack    *generic_profile;
311351f2d6e1ae97775a2458b86cdb110d00332834aDaniel Veillard
312351f2d6e1ae97775a2458b86cdb110d00332834aDaniel Veillard  char
313015ccb2c747fb73561e2fe72d6214585dd9985e8William M. Brack    filename[MaxTextExtent],        /* images input filename */
314015ccb2c747fb73561e2fe72d6214585dd9985e8William M. Brack    magick_filename[MaxTextExtent], /* given image filename (with read mods) */
315015ccb2c747fb73561e2fe72d6214585dd9985e8William M. Brack    magick[MaxTextExtent];          /* images file format (file magic) */
316015ccb2c747fb73561e2fe72d6214585dd9985e8William M. Brack
3173473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  size_t
3183473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    magick_columns,     /* size of image when read/created */
3193473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    magick_rows;
3203473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
3213473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  BlobInfo
3223473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    *blob;             /* image file as in-memory string of 'extent' */
3233473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
3243473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  MagickBooleanType
3253473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    debug;             /* debug output attribute */
3263473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
3273473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  volatile ssize_t
3283473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    reference_count;   /* image data sharing memory management */
3293473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
3303473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  SemaphoreInfo
331015ccb2c747fb73561e2fe72d6214585dd9985e8William M. Brack    *semaphore;
3323473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
3333473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
3343473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  struct _Image
3353473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    *list,             /* Undo/Redo image processing list (for display) */
3363473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    *previous,         /* Image list links */
337015ccb2c747fb73561e2fe72d6214585dd9985e8William M. Brack    *next;
338015ccb2c747fb73561e2fe72d6214585dd9985e8William M. Brack
3393473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  size_t
3403473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    signature;
3413473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor};
3423473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
3433473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorstruct _ImageInfo
3443473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor{
3453473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  CompressionType
3463473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    compression;        /* compression method when reading/saving image */
3473473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
348de2a67b430ddc59690b707ac0119cb26366631d4Daniel Veillard  OrientationType
349015ccb2c747fb73561e2fe72d6214585dd9985e8William M. Brack    orientation;        /* orientation setting */
350015ccb2c747fb73561e2fe72d6214585dd9985e8William M. Brack
351015ccb2c747fb73561e2fe72d6214585dd9985e8William M. Brack  MagickBooleanType
352015ccb2c747fb73561e2fe72d6214585dd9985e8William M. Brack    temporary,          /* image file to be deleted after read "empemeral:" */
353015ccb2c747fb73561e2fe72d6214585dd9985e8William M. Brack    adjoin,             /* save images to seperate scene files */
354015ccb2c747fb73561e2fe72d6214585dd9985e8William M. Brack    affirm,
355015ccb2c747fb73561e2fe72d6214585dd9985e8William M. Brack    antialias;
3563473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
357015ccb2c747fb73561e2fe72d6214585dd9985e8William M. Brack  char
358015ccb2c747fb73561e2fe72d6214585dd9985e8William M. Brack    *size,              /* image generation size */
359015ccb2c747fb73561e2fe72d6214585dd9985e8William M. Brack    *extract,           /* crop/resize string on image read */
360015ccb2c747fb73561e2fe72d6214585dd9985e8William M. Brack    *page,
361015ccb2c747fb73561e2fe72d6214585dd9985e8William M. Brack    *scenes;            /* scene numbers that is to be read in */
362015ccb2c747fb73561e2fe72d6214585dd9985e8William M. Brack
3633473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  size_t
3643473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    scene,              /* starting value for image save numbering */
3653473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    number_scenes,      /* total number of images in list - for escapes */
3663473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    depth;              /* current read/save depth of images */
3673473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
3683473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  InterlaceType
3693473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    interlace;          /* interlace for image write */
3703473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
3713473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  EndianType
3723473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    endian;             /* integer endian order for raw image data */
3733473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
3743473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  ResolutionType
3753473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    units;              /* denisty pixels/inch or pixel/cm */
3763473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
3773473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  size_t
3783473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    quality;            /* compression quality */
3792b0f8799086f2a54444c618ab3ed01a8177491f2Daniel Veillard
3802b0f8799086f2a54444c618ab3ed01a8177491f2Daniel Veillard  char
3812b0f8799086f2a54444c618ab3ed01a8177491f2Daniel Veillard    *sampling_factor,   /* JPEG write sampling factor */
3822b0f8799086f2a54444c618ab3ed01a8177491f2Daniel Veillard    *server_name,       /* X windows server name - display/animate */
3833473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    *font,              /* DUP for draw_info */
3843473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    *texture,           /* montage/display background tile */
3853473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    *density;           /* DUP for image and draw_info */
3863473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
3873473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  double
388f012a64d13d85d53eac0d4d6625508109e7c9e9dDaniel Veillard    pointsize,
3893473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    fuzz;               /* current color fuzz attribute */
390cacbe5d110d469463edb0dd8e11e493daaf3dbc4Daniel Veillard
3913473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  PixelInfo
3923473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    background_color,   /* user set background color */
3933473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    border_color,       /* user set border color */
3943473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    matte_color,        /* matte (frame) color */
3953473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    transparent_color;  /* color for transparent index in color tables */
3963473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor                        /* NB: fill color is only needed in draw_info! */
3973473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor                        /* the same for undercolor (for font drawing) */
3983473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
3993473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  MagickBooleanType
4003473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    dither,             /* dither enable-disable */
4013473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    monochrome;         /* read/write pcl,pdf,ps,xps as monocrome image */
4023473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
4033473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  ColorspaceType
4043473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    colorspace;
4053473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
4063473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  CompositeOperator
4073473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    compose;
408351f2d6e1ae97775a2458b86cdb110d00332834aDaniel Veillard
4093473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  ImageType
4103473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    type;
4113473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
412847332a0da596e84f00acc9d692e0e582b8b12eaDaniel Veillard  PreviewType
413a840b69261c44760d45370bef989c77f84727406Daniel Veillard    preview_type;
4143473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
4153473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  ssize_t
4163473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    group;
4173473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
4183473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  MagickBooleanType
4193473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    ping,                    /* fast read image attributes, not image data */
4203473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    verbose;                 /* verbose output enable/disable */
4213473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
4223473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  char
4233473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    *view;
4243473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
4253473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  ChannelType
4263473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    channel;
427f012a64d13d85d53eac0d4d6625508109e7c9e9dDaniel Veillard
4283473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  void
4293473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    *options;                /* splay tree of use options */
430f012a64d13d85d53eac0d4d6625508109e7c9e9dDaniel Veillard
431f012a64d13d85d53eac0d4d6625508109e7c9e9dDaniel Veillard  void
432f012a64d13d85d53eac0d4d6625508109e7c9e9dDaniel Veillard    *profile;
433f012a64d13d85d53eac0d4d6625508109e7c9e9dDaniel Veillard
434f012a64d13d85d53eac0d4d6625508109e7c9e9dDaniel Veillard  MagickBooleanType
435f012a64d13d85d53eac0d4d6625508109e7c9e9dDaniel Veillard    synchronize;
436f012a64d13d85d53eac0d4d6625508109e7c9e9dDaniel Veillard
437f012a64d13d85d53eac0d4d6625508109e7c9e9dDaniel Veillard  MagickProgressMonitor
438f012a64d13d85d53eac0d4d6625508109e7c9e9dDaniel Veillard    progress_monitor;
4393473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
4403473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  void
441f012a64d13d85d53eac0d4d6625508109e7c9e9dDaniel Veillard    *client_data,
442ba6db03c40b3ac223695fe08e96744ab389c6dabDaniel Veillard    *cache;
443f012a64d13d85d53eac0d4d6625508109e7c9e9dDaniel Veillard
444ba6db03c40b3ac223695fe08e96744ab389c6dabDaniel Veillard  StreamHandler
445f012a64d13d85d53eac0d4d6625508109e7c9e9dDaniel Veillard    stream;
4462b0f8799086f2a54444c618ab3ed01a8177491f2Daniel Veillard
447f012a64d13d85d53eac0d4d6625508109e7c9e9dDaniel Veillard  FILE
448f012a64d13d85d53eac0d4d6625508109e7c9e9dDaniel Veillard    *file;
449f012a64d13d85d53eac0d4d6625508109e7c9e9dDaniel Veillard
450f012a64d13d85d53eac0d4d6625508109e7c9e9dDaniel Veillard  void
451f012a64d13d85d53eac0d4d6625508109e7c9e9dDaniel Veillard    *blob;
452f012a64d13d85d53eac0d4d6625508109e7c9e9dDaniel Veillard
453f012a64d13d85d53eac0d4d6625508109e7c9e9dDaniel Veillard  size_t
454f012a64d13d85d53eac0d4d6625508109e7c9e9dDaniel Veillard    length;
455f012a64d13d85d53eac0d4d6625508109e7c9e9dDaniel Veillard
456f012a64d13d85d53eac0d4d6625508109e7c9e9dDaniel Veillard  char
457f012a64d13d85d53eac0d4d6625508109e7c9e9dDaniel Veillard    magick[MaxTextExtent],    /* image file format (file magick) */
458f012a64d13d85d53eac0d4d6625508109e7c9e9dDaniel Veillard    unique[MaxTextExtent],    /* unique tempory filename - delegates */
459f012a64d13d85d53eac0d4d6625508109e7c9e9dDaniel Veillard    zero[MaxTextExtent],      /* unique filename ? - delegates */
460f012a64d13d85d53eac0d4d6625508109e7c9e9dDaniel Veillard    filename[MaxTextExtent];  /* filename when reading/writing image */
461f012a64d13d85d53eac0d4d6625508109e7c9e9dDaniel Veillard
462f012a64d13d85d53eac0d4d6625508109e7c9e9dDaniel Veillard  MagickBooleanType
463f012a64d13d85d53eac0d4d6625508109e7c9e9dDaniel Veillard    debug;
464f012a64d13d85d53eac0d4d6625508109e7c9e9dDaniel Veillard
465f012a64d13d85d53eac0d4d6625508109e7c9e9dDaniel Veillard  size_t
466f012a64d13d85d53eac0d4d6625508109e7c9e9dDaniel Veillard    signature;
467f012a64d13d85d53eac0d4d6625508109e7c9e9dDaniel Veillard};
46856a4cb8c4d3eab4ab3295a61c87e8e92483922c6Daniel Veillard
4693473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorextern MagickExport ChannelType
470f012a64d13d85d53eac0d4d6625508109e7c9e9dDaniel Veillard  SetImageChannelMask(Image *,const ChannelType);
471f012a64d13d85d53eac0d4d6625508109e7c9e9dDaniel Veillard
4723473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorextern MagickExport const char
4733473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  DefaultTileGeometry[],
4743473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  DefaultTileLabel[],
4753473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  LoadImageTag[],
4763473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  LoadImagesTag[],
4773473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  PSDensityGeometry[],
4783473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  PSPageGeometry[],
4793473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  SaveImageTag[],
4803473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  SaveImagesTag[];
4813473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
4823473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorextern MagickExport const double
4833473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  DefaultResolution;
4843473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
4853473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorextern MagickExport ExceptionType
4863473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  CatchImageException(Image *);
4873473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
4883473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorextern MagickExport FILE
4893473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  *GetImageInfoFile(const ImageInfo *);
4903473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
4913473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorextern MagickExport Image
4923c908dca479ed50dca24b8593bca90e40dbde6b8Daniel Veillard  *AcquireImage(const ImageInfo *,ExceptionInfo *),
4933473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  *AppendImages(const Image *,const MagickBooleanType,ExceptionInfo *),
4942b0f8799086f2a54444c618ab3ed01a8177491f2Daniel Veillard  *CloneImage(const Image *,const size_t,const size_t,const MagickBooleanType,
4953473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    ExceptionInfo *),
4963473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  *DestroyImage(Image *),
4973473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  *GetImageClipMask(const Image *,ExceptionInfo *),
4983473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  *GetImageMask(const Image *,ExceptionInfo *),
4993473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  *NewMagickImage(const ImageInfo *,const size_t,const size_t,const PixelInfo *,
5003473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    ExceptionInfo *),
5013473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  *ReferenceImage(Image *),
5023473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  *SmushImages(const Image *,const MagickBooleanType,const ssize_t,
5033473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    ExceptionInfo *);
5043473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
5053473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorextern MagickExport ImageInfo
5063473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  *AcquireImageInfo(void),
5073473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  *CloneImageInfo(const ImageInfo *),
5083473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  *DestroyImageInfo(ImageInfo *);
5093473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
5103473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorextern MagickExport MagickBooleanType
5113473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  ClipImage(Image *,ExceptionInfo *),
5123473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  ClipImagePath(Image *,const char *,const MagickBooleanType,ExceptionInfo *),
5133473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  GetImageAlphaChannel(const Image *),
514f012a64d13d85d53eac0d4d6625508109e7c9e9dDaniel Veillard  IsTaintImage(const Image *),
5153473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  IsHighDynamicRangeImage(const Image *,ExceptionInfo *),
5163473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  IsImageObject(const Image *),
517f012a64d13d85d53eac0d4d6625508109e7c9e9dDaniel Veillard  ListMagickInfo(FILE *,ExceptionInfo *),
5183473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  ModifyImage(Image **,ExceptionInfo *),
5192b0f8799086f2a54444c618ab3ed01a8177491f2Daniel Veillard  ResetImagePage(Image *,const char *),
520f012a64d13d85d53eac0d4d6625508109e7c9e9dDaniel Veillard  SetImageAlpha(Image *,const Quantum,ExceptionInfo *),
5213473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  SetImageAlphaChannel(Image *,const AlphaChannelType,ExceptionInfo *),
5223473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  SetImageBackgroundColor(Image *,ExceptionInfo *),
5233473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  SetImageColor(Image *,const PixelInfo *,ExceptionInfo *),
5243473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  SetImageExtent(Image *,const size_t,const size_t,ExceptionInfo *),
5253473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  SetImageInfo(ImageInfo *,const unsigned int,ExceptionInfo *),
5263473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  SetImageMask(Image *,const Image *,ExceptionInfo *),
5273473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  SetImageStorageClass(Image *,const ClassType,ExceptionInfo *),
5283473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  StripImage(Image *,ExceptionInfo *),
5293473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  SyncImage(Image *,ExceptionInfo *),
5303473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  SyncImageSettings(const ImageInfo *,Image *,ExceptionInfo *),
5313473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  SyncImagesSettings(ImageInfo *,Image *,ExceptionInfo *);
5323473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
5333473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorextern MagickExport size_t
5343473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  InterpretImageFilename(const ImageInfo *,Image *,const char *,int,char *,
5353473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    ExceptionInfo *);
5363473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
5373473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorextern MagickExport ssize_t
5383473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  GetImageReferenceCount(Image *);
5393473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
5403473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorextern MagickExport VirtualPixelMethod
5413473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  GetImageVirtualPixelMethod(const Image *),
5423473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  SetImageVirtualPixelMethod(Image *,const VirtualPixelMethod,ExceptionInfo *);
5433473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
544f012a64d13d85d53eac0d4d6625508109e7c9e9dDaniel Veillardextern MagickExport void
545f012a64d13d85d53eac0d4d6625508109e7c9e9dDaniel Veillard  AcquireNextImage(const ImageInfo *,Image *,ExceptionInfo *),
546f012a64d13d85d53eac0d4d6625508109e7c9e9dDaniel Veillard  DestroyImagePixels(Image *),
547f012a64d13d85d53eac0d4d6625508109e7c9e9dDaniel Veillard  DisassociateImageStream(Image *),
548f012a64d13d85d53eac0d4d6625508109e7c9e9dDaniel Veillard  GetImageInfo(ImageInfo *),
5493473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor  SetImageInfoBlob(ImageInfo *,const void *,const size_t),
5502b0f8799086f2a54444c618ab3ed01a8177491f2Daniel Veillard  SetImageInfoFile(ImageInfo *,FILE *);
551f012a64d13d85d53eac0d4d6625508109e7c9e9dDaniel Veillard
5523473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#if defined(__cplusplus) || defined(c_plusplus)
5533473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor}
5543473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#endif
5553473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
5563473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#endif
5573473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor