color-private.h

Go to the documentation of this file.
00001 /*
00002   Copyright 1999-2020 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.  You may
00006   obtain a copy of the License at
00007 
00008     https://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   MagickCore private image color methods.
00017 */
00018 #ifndef MAGICKCORE_COLOR_PRIVATE_H
00019 #define MAGICKCORE_COLOR_PRIVATE_H
00020 
00021 #include "MagickCore/image.h"
00022 #include "MagickCore/image-private.h"
00023 
00024 #if defined(__cplusplus) || defined(c_plusplus)
00025 extern "C" {
00026 #endif
00027 
00028 extern MagickPrivate MagickBooleanType
00029   ColorComponentGenesis(void),
00030   IsEquivalentAlpha(const Image *,const PixelInfo *,const PixelInfo *),
00031   IsEquivalentIntensity(const Image *,const PixelInfo *,const PixelInfo *);
00032 
00033 extern MagickPrivate void
00034   ColorComponentTerminus(void);
00035 
00036 static inline MagickBooleanType GetColorRange(const char *color,
00037   PixelInfo *start,PixelInfo *stop,ExceptionInfo *exception)
00038 {
00039   char
00040     start_color[MagickPathExtent] = "white",
00041     stop_color[MagickPathExtent] = "black";
00042 
00043   MagickBooleanType
00044     status;
00045 
00046   if (*color != '\0')
00047     {
00048       register char
00049         *p;
00050 
00051       (void) CopyMagickString(start_color,color,MagickPathExtent);
00052       for (p=start_color; (*p != '-') && (*p != '\0'); p++)
00053         if (*p == '(')
00054           {
00055             for (p++; (*p != ')') && (*p != '\0'); p++);
00056             if (*p == '\0')
00057               break;
00058           }
00059       if (*p == '-')
00060         (void) CopyMagickString(stop_color,p+1,MagickPathExtent);
00061       *p='\0';
00062     }
00063   status=QueryColorCompliance(start_color,AllCompliance,start,exception);
00064   if (status == MagickFalse)
00065     return(status);
00066   return(QueryColorCompliance(stop_color,AllCompliance,stop,exception));
00067 }
00068 
00069 static inline double GetFuzzyColorDistance(const Image *p,const Image *q)
00070 {
00071   double
00072     fuzz;
00073 
00074   fuzz=(double) MagickMax(MagickMax(p->fuzz,q->fuzz),(MagickRealType)
00075     MagickSQ1_2);
00076   return(fuzz*fuzz);
00077 }
00078 
00079 #if defined(__cplusplus) || defined(c_plusplus)
00080 }
00081 #endif
00082 
00083 #endif

Generated on 9 Jun 2020 for MagickCore by  doxygen 1.6.1