MagickCore  6.8.5
image.h
Go to the documentation of this file.
1 /*
2  Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization
3  dedicated to making software imaging solutions freely available.
4 
5  You may not use this file except in compliance with the License.
6  obtain a copy of the License at
7 
8  http://www.imagemagick.org/script/license.php
9 
10  Unless required by applicable law or agreed to in writing, software
11  distributed under the License is distributed on an "AS IS" BASIS,
12  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  See the License for the specific language governing permissions and
14  limitations under the License.
15 
16  MagickCore image methods.
17 */
18 #ifndef _MAGICKCORE_IMAGE_H
19 #define _MAGICKCORE_IMAGE_H
20 
21 #if defined(__cplusplus) || defined(c_plusplus)
22 extern "C" {
23 #endif
24 
25 #include "magick/color.h"
26 
27 #define OpaqueOpacity ((Quantum) 0UL)
28 #define TransparentOpacity (QuantumRange)
29 
30 typedef enum
31 {
39  ResetAlphaChannel, /* deprecated */
46 
47 typedef enum
48 {
61 } ImageType;
62 
63 typedef enum
64 {
74 
75 typedef enum
76 {
87 
88 typedef enum
89 {
94 
95 typedef struct _PrimaryInfo
96 {
97  double
98  x,
99  y,
100  z;
101 } PrimaryInfo;
102 
103 typedef struct _SegmentInfo
104 {
105  double
106  x1,
107  y1,
108  x2,
109  y2;
110 } SegmentInfo;
111 
112 typedef enum
113 {
119 } TransmitType;
120 
121 typedef struct _ChromaticityInfo
122 {
126  blue_primary,
127  white_point;
129 
130 #include "magick/blob.h"
131 #include "magick/colorspace.h"
132 #include "magick/cache-view.h"
133 #include "magick/color.h"
134 #include "magick/composite.h"
135 #include "magick/compress.h"
136 #include "magick/effect.h"
137 #include "magick/geometry.h"
138 #include "magick/layer.h"
139 #include "magick/locale_.h"
140 #include "magick/monitor.h"
141 #include "magick/pixel.h"
142 #include "magick/profile.h"
143 #include "magick/quantum.h"
144 #include "magick/resample.h"
145 #include "magick/resize.h"
146 #include "magick/semaphore.h"
147 #include "magick/stream.h"
148 #include "magick/timer.h"
149 
150 struct _Image
151 {
152  ClassType
154 
156  colorspace; /* colorspace of image data */
157 
159  compression; /* compression of image when read/write */
160 
161  size_t
162  quality; /* compression quality setting, meaning varies */
163 
165  orientation; /* photo orientation of image */
166 
168  taint, /* has image been modified since reading */
169  matte; /* is transparency channel defined and active */
170 
171  size_t
172  columns, /* physical size of image */
173  rows,
174  depth, /* depth of image on read/write */
175  colors; /* size of color table on read */
176 
179  background_color, /* current background color attribute */
180  border_color, /* current bordercolor attribute */
181  matte_color; /* current mattecolor attribute */
182 
183  double
185 
188 
191 
192  void
194 
196  units; /* resolution/density ppi or ppc */
197 
198  char
200  *directory,
201  *geometry;
202 
203  ssize_t
205 
206  double
207  x_resolution, /* image resolution/density */
208  y_resolution;
209 
211  page, /* virtual canvas size and offset of image */
212  extract_info,
213  tile_info; /* deprecated */
214 
215  double
217  blur, /* deprecated */
218  fuzz; /* current color fuzz attribute */
219 
221  filter; /* resize/distort filter to apply */
222 
225 
226  EndianType
227  endian; /* raw data integer ordering on read/write */
228 
230  gravity; /* Gravity attribute for positioning in image */
231 
233  compose; /* alpha composition method for layered images */
234 
236  dispose; /* GIF animation disposal method */
237 
238  struct _Image
239  *clip_mask;
240 
241  size_t
242  scene, /* index of image in multi-image file */
243  delay; /* Animation delay time */
244 
245  ssize_t
246  ticks_per_second; /* units for delay time, default 100 for GIF */
247 
248  size_t
250  total_colors;
251 
252  ssize_t
254 
255  ErrorInfo
257 
258  TimerInfo
260 
263 
264  void
266  *cache,
267  *attributes; /* deprecated */
268 
271 
272  BlobInfo
274 
275  char
276  filename[MaxTextExtent], /* images input filename */
277  magick_filename[MaxTextExtent], /* ditto with coders, and read_mods */
278  magick[MaxTextExtent]; /* Coder used to decode image */
279 
280  size_t
282  magick_rows;
283 
285  exception; /* Error handling report */
286 
288  debug; /* debug output attribute */
289 
290  volatile ssize_t
292 
295 
298  iptc_profile,
300 
301  size_t
302  generic_profiles; /* this & ProfileInfo is deprecated */
303 
304  size_t
306 
307  struct _Image
308  *previous, /* Image list links */
309  *list, /* Undo/Redo image processing list (for display) */
310  *next; /* Image list links */
311 
313  interpolate; /* Interpolation of color for between pixel lookups */
314 
317 
319  transparent_color; /* color for 'transparent' color index in GIF */
320 
321  struct _Image
322  *mask;
323 
326 
327  void
328  *properties, /* per image properities */
329  *artifacts; /* per image sequence image artifacts */
330 
331  ImageType
333 
335  dither; /* dithering method during color reduction */
336 
339 
342 
343  size_t
345 
346  time_t
348 
350  intensity; /* method to generate an intensity value from a pixel */
351 };
352 
354 {
357 
360 
363  adjoin,
364  affirm,
365  antialias;
366 
367  char
369  *extract,
370  *page,
371  *scenes;
372 
373  size_t
376  depth;
377 
380 
381  EndianType
383 
386 
387  size_t
389 
390  char
392  *server_name,
393  *font,
394  *texture,
395  *density;
396 
397  double
399  fuzz;
400 
403  border_color,
404  matte_color;
405 
408  monochrome;
409 
410  size_t
412 
415 
416  ImageType
418 
421 
422  ssize_t
424 
427  verbose;
428 
429  char
431  *authenticate;
432 
435 
436  Image
437  *attributes; /* deprecated */
438 
439  void
441 
444 
445  void
447  *cache;
448 
451 
452  FILE
454 
455  void
457 
458  size_t
460 
461  char
466 
469 
470  char
471  *tile; /* deprecated */
472 
473  size_t
474  subimage, /* deprecated */
475  subrange; /* deprecated */
476 
478  pen; /* deprecated */
479 
480  size_t
482 
485 
488 
489  void
491 
494 };
495 
498 
499 extern MagickExport FILE
500  *GetImageInfoFile(const ImageInfo *);
501 
502 extern MagickExport Image
503  *AcquireImage(const ImageInfo *),
505  *CloneImage(const Image *,const size_t,const size_t,const MagickBooleanType,
506  ExceptionInfo *),
507  *DestroyImage(Image *),
509  *GetImageMask(const Image *,ExceptionInfo *),
510  *NewMagickImage(const ImageInfo *,const size_t,const size_t,
511  const MagickPixelPacket *),
512  *ReferenceImage(Image *),
513  *SmushImages(const Image *,const MagickBooleanType,const ssize_t,
514  ExceptionInfo *);
515 
516 extern MagickExport ImageInfo
517  *AcquireImageInfo(void),
518  *CloneImageInfo(const ImageInfo *),
520 
522  ClipImage(Image *),
523  ClipImagePath(Image *,const char *,const MagickBooleanType),
524  IsTaintImage(const Image *),
525  IsMagickConflict(const char *),
527  IsImageObject(const Image *),
528  ListMagickInfo(FILE *,ExceptionInfo *),
530  ResetImagePage(Image *,const char *),
532  SetImageClipMask(Image *,const Image *),
534  SetImageExtent(Image *,const size_t,const size_t),
535  SetImageInfo(ImageInfo *,const unsigned int,ExceptionInfo *),
536  SetImageMask(Image *,const Image *),
537  SetImageOpacity(Image *,const Quantum),
538  SetImageChannels(Image *,const size_t),
540  StripImage(Image *),
541  SyncImage(Image *),
542  SyncImageSettings(const ImageInfo *,Image *),
544 
545 extern MagickExport size_t
546  InterpretImageFilename(const ImageInfo *,Image *,const char *,int,char *);
547 
548 extern MagickExport ssize_t
550 
551 extern MagickExport size_t
553 
557 
558 extern MagickExport void
559  AcquireNextImage(const ImageInfo *,Image *),
564  SetImageInfoBlob(ImageInfo *,const void *,const size_t),
565  SetImageInfoFile(ImageInfo *,FILE *);
566 
567 #if defined(__cplusplus) || defined(c_plusplus)
568 }
569 #endif
570 
571 #endif