# mogrify-private.h

Go to the documentation of this file.

    00001 /*
    00002   Copyright 1999-2009 ImageMagick Studio LLC, a non-profit organization
    00003   dedicated to making software imaging solutions freely available.
    00004
    00005   You may not use this file except in compliance with the License.
    00006   obtain a copy of the License at
    00007
    00008     http://www.imagemagick.org/script/license.php
    00009
    00010   Unless required by applicable law or agreed to in writing, software
    00011   distributed under the License is distributed on an "AS IS" BASIS,
    00012   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    00013   See the License for the specific language governing permissions and
    00014   limitations under the License.
    00015
    00016   MagickWand mogrify command-line private methods.
    00017 */
    00018 #ifndef _MAGICKWAND_MOGRIFY_PRIVATE_H
    00019 #define _MAGICKWAND_MOGRIFY_PRIVATE_H
    00020
    00021 #if defined(__cplusplus) || defined(c_plusplus)
    00022 extern "C" {
    00023 #endif
    00024
    00025 #define MaxImageStackDepth  32
    00026 #define MogrifyImageStack(image,advance,fire) \
    00027   if ((j <= i) && (i < argc)) \
    00028     { \
    00029       if ((image) == (Image *) NULL) \
    00030         status&=MogrifyImageInfo(image_info,(int) (i-j+1),(const char **) \
    00031           argv+j,exception); \
    00032       else \
    00033         if ((fire) != MagickFalse) \
    00034           { \
    00035             status&=MogrifyImages(image_info,(int) (i-j+1),(const char **) \
    00036               argv+j,&(image),exception); \
    00037             if ((advance) != MagickFalse) \
    00038               j=i+1; \
    00039             pend=MagickFalse; \
    00040           } \
    00041     }
    00042 #define DegreesToRadians(x)  (MagickPI*(x)/180.0)
    00043 #define MagickPI  3.14159265358979323846264338327950288419716939937510
    00044 #define QuantumScale  ((MagickRealType) 1.0/(MagickRealType) QuantumRange)
    00045 #define QuantumTick(i,span) ((MagickBooleanType) ((((i) & ((i)-1)) == 0) || \
    00046    (((i) & 0xfff) == 0) || \
    00047    ((MagickOffsetType) (i) == ((MagickOffsetType) (span)-1))))
    00048 #define RadiansToDegrees(x) (180.0*(x)/MagickPI)
    00049
    00050 static inline MagickRealType MagickPixelIntensity(
    00051   const MagickPixelPacket *pixel)
    00052 {
    00053   MagickRealType
    00054     intensity;
    00055
    00056   intensity=0.299*pixel->red+0.587*pixel->green+0.114*pixel->blue;
    00057   return(intensity);
    00058 }
    00059
    00060 static inline Quantum MagickPixelIntensityToQuantum(
    00061   const MagickPixelPacket *pixel)
    00062 {
    00063   MagickRealType
    00064     intensity;
    00065
    00066   intensity=0.299*pixel->red+0.587*pixel->green+0.114*pixel->blue;
    00067   return((Quantum) (intensity+0.5));
    00068 }
    00069
    00070 static inline MagickRealType PixelIntensity(const PixelPacket *pixel)
    00071 {
    00072   MagickRealType
    00073     intensity;
    00074
    00075   intensity=(MagickRealType) (0.299*pixel->red+0.587*pixel->green+
    00076     0.114*pixel->blue);
    00077   return(intensity);
    00078 }
    00079
    00080 static inline Quantum PixelIntensityToQuantum(const PixelPacket *pixel)
    00081 {
    00082   MagickRealType
    00083     intensity;
    00084
    00085   intensity=(MagickRealType) (0.299*pixel->red+0.587*pixel->green+
    00086     0.114*pixel->blue);
    00087 #if !defined(MAGICKCORE_HDRI_SUPPORT)
    00088   return((Quantum) (intensity+0.5));
    00089 #else
    00090   return((Quantum) intensity);
    00091 #endif
    00092 }
    00093
    00094 static inline void SetMagickPixelPacket(const Image *image,
    00095   const PixelPacket *color,const IndexPacket *index,MagickPixelPacket *pixel)
    00096 {
    00097   pixel->red=(MagickRealType) color->red;
    00098   pixel->green=(MagickRealType) color->green;
    00099   pixel->blue=(MagickRealType) color->blue;
    00100   if (image->matte != MagickFalse)
    00101     pixel->opacity=(MagickRealType) color->opacity;
    00102   if (((image->colorspace == CMYKColorspace) ||
    00103        (image->storage_class == PseudoClass)) &&
    00104       (index != (const IndexPacket *) NULL))
    00105     pixel->index=(MagickRealType) *index;
    00106 }
    00107
    00108 #if defined(__cplusplus) || defined(c_plusplus)
    00109 }
    00110 #endif
    00111
    00112 #endif