]> granicus.if.org Git - imagemagick/blobdiff - magick/pixel.h
(no commit message)
[imagemagick] / magick / pixel.h
index 74ad0dcb76b043f68ced81e820f6100aa3e2664e..3e6da4f4a44e9b6e8459f3f126e66aee6f86c101 100644 (file)
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2010 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2011 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.
@@ -25,42 +25,88 @@ extern "C" {
 #include <magick/colorspace.h>
 #include <magick/constitute.h>
 
-#define GetRedSample(p) ((p)->red)
-#define GetGreenSample(p) ((p)->green)
-#define GetBlueSample(p) ((p)->blue)
-#define GetOpacitySample(p) ((p)->opacity)
-#define GetIndexSample(p) ((p)->index)
-
-#define SetRedSample(q,sample) ((q)->red=(sample))
-#define SetGreenSample(q,sample) ((q)->green=(sample))
-#define SetBlueSample(q,sample) ((q)->blue=(sample))
-#define SetOpacitySample(q,sample) ((q)->opacity=(sample))
-#define SetIndexSample(q,sample) ((q)->index=(sample))
-
-#define GetGraySample(p) ((p)->red)
-#define SetGraySample(q,sample) ((q)->red=(q)->green=(q)->blue=(sample))
-
-#define GetYSample(p) ((p)->red)
-#define GetCbSample(p) ((p)->green)
-#define GetCrSample(p) ((p)->blue)
-
-#define SetYSample(q,sample) ((q)->red=(sample))
-#define SetCbSample(q,sample) ((q)->green=(sample))
-#define SetCrSample(q,sample) ((q)->blue=(sample))
-
-#define GetCyanSample(p) ((p)->red)
-#define GetMagentaSample(p) ((p)->green)
-#define GetYellowSample(p) ((p)->blue)
-#define GetBlackSample(p) ((p)->opacity)
-
-#define SetCyanSample(q,sample) ((q)->red=(sample))
-#define SetMagentaSample(q,sample) ((q)->green=(sample))
-#define SetYellowSample(q,sample) ((q)->blue=(sample))
-#define SetBlackSample(q,sample) ((q)->opacity=(sample))
+#define ClampRedPixelComponent(pixel) ClampToQuantum((pixel)->red)
+#define ClampGreenPixelComponent(pixel) ClampToQuantum((pixel)->green)
+#define ClampBluePixelComponent(pixel) ClampToQuantum((pixel)->blue)
+#define ClampIndexPixelComponent(indexes) ClampToQuantum(*(indexes))
+#define ClampOpacityPixelComponent(pixel) ClampToQuantum((pixel)->opacity)
+#define GetAlphaPixelComponent(pixel) (QuantumRange-(pixel)->opacity)
+#define GetBlackPixelComponent(index) (*(index))
+#define GetBluePixelComponent(pixel) ((pixel)->blue)
+#define GetCbPixelComponent(pixel) ((pixel)->green)
+#define GetCrPixelComponent(pixel) ((pixel)->blue)
+#define GetCyanPixelComponent(pixel) ((pixel)->red)
+#define GetGrayPixelComponent(pixel) ((pixel)->red)
+#define GetGreenPixelComponent(pixel) ((pixel)->green)
+#define GetIndexPixelComponent(indexes) (*(indexes))
+#define GetMagentaPixelComponent(pixel) ((pixel)->green)
+#define GetNextPixel(pixel)  ((pixel)+1)
+#define GetOpacityPixelComponent(pixel) ((pixel)->opacity)
+#define GetRedPixelComponent(pixel) ((pixel)->red)
+#define GetYPixelComponent(pixel) ((pixel)->red)
+#define GetYellowPixelComponent(pixel) ((pixel)->blue)
+#define SetAlphaPixelComponent(pixel,value) \
+  ((pixel)->opacity=(Quantum) (QuantumRange-(value)))
+#define SetBlackPixelComponent(index,value) (*(index)=(Quantum) (value))
+#define SetBluePixelComponent(pixel,value) ((pixel)->blue=(Quantum) (value))
+#define SetCbPixelComponent(pixel,value) ((pixel)->green=(Quantum) (value))
+#define SetCrPixelComponent(pixel,value) ((pixel)->blue=(Quantum) (value))
+#define SetCyanPixelComponent(pixel,value) ((pixel)->red=(Quantum) (value))
+#define SetGrayPixelComponent(pixel,value) \
+  ((pixel)->red=(pixel)->green=(pixel)->blue=(Quantum) (value))
+#define SetGreenPixelComponent(pixel,value) ((pixel)->green=(Quantum) (value))
+#define SetIndexPixelComponent(indexes,value) (*(indexes)=(IndexPacket) (value))
+#define SetMagentaPixelComponent(pixel,value) ((pixel)->green=(Quantum) (value))
+#define SetOpacityPixelComponent(pixel,value) \
+  ((pixel)->opacity=(Quantum) (value))
+#define SetRedPixelComponent(pixel,value) ((pixel)->red=(Quantum) (value))
+#define SetYellowPixelComponent(pixel,value) ((pixel)->blue=(Quantum) (value))
+#define SetYPixelComponent(pixel,value) ((pixel)->red=(Quantum) (value))
+
+typedef enum
+{
+  UndefinedInterpolatePixel,
+  AverageInterpolatePixel,
+  BicubicInterpolatePixel,
+  BilinearInterpolatePixel,
+  FilterInterpolatePixel,
+  IntegerInterpolatePixel,
+  MeshInterpolatePixel,
+  NearestNeighborInterpolatePixel,
+  SplineInterpolatePixel
+} InterpolatePixelMethod;
+
+typedef enum
+{
+  RedPixelComponent = 0,
+  CyanPixelComponent = 0,
+  GrayPixelComponent = 0,
+  YPixelComponent = 0,
+  GreenPixelComponent = 1,
+  MagentaPixelComponent = 1,
+  CbPixelComponent = 1,
+  BluePixelComponent = 2,
+  YellowPixelComponent = 2,
+  CrPixelComponent = 2,
+  AlphaPixelComponent = 3,
+  BlackPixelComponent = 4,
+  IndexPixelComponent = 4,
+  MaskPixelComponent = 5
+} PixelComponent;
+
+typedef struct _DoublePixelPacket
+{
+  double
+    red,
+    green,
+    blue,
+    opacity,
+    index;
+} DoublePixelPacket;
 
 typedef struct _LongPixelPacket
 {
-  unsigned long
+  unsigned int
     red,
     green,
     blue,
@@ -82,7 +128,7 @@ typedef struct _MagickPixelPacket
   double
     fuzz;
 
-  unsigned long
+  size_t
     depth;
 
   MagickRealType
@@ -114,11 +160,17 @@ typedef struct _PixelPacket
 #endif
 } PixelPacket;
 
+typedef struct _CacheView
+  CacheView_;
+
 extern MagickExport MagickBooleanType
-  ExportImagePixels(const Image *,const long,const long,const unsigned long,
-    const unsigned long,const char *,const StorageType,void *,ExceptionInfo *),
-  ImportImagePixels(Image *,const long,const long,const unsigned long,
-    const unsigned long,const char *,const StorageType,const void *);
+  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 *),
+  InterpolateMagickPixelPacket(const Image *,const CacheView_ *,
+    const InterpolatePixelMethod,const double,const double,MagickPixelPacket *,
+    ExceptionInfo *);
 
 extern MagickExport void
   GetMagickPixelPacket(const Image *,MagickPixelPacket *);