]> granicus.if.org Git - imagemagick/commitdiff
(no commit message)
authorcristy <urban-warrior@git.imagemagick.org>
Thu, 26 Jun 2014 10:30:53 +0000 (10:30 +0000)
committercristy <urban-warrior@git.imagemagick.org>
Thu, 26 Jun 2014 10:30:53 +0000 (10:30 +0000)
MagickCore/composite.c
MagickCore/composite.h
MagickCore/option.c

index fe51f239230488d079fc4dc40bb1576713502ce1..46f99ac72300ebe5a479dd79f860ff739e1eb813 100644 (file)
@@ -1364,6 +1364,7 @@ MagickExport MagickBooleanType CompositeImage(Image *image,
         case DivideSrcCompositeOp:
         case ExclusionCompositeOp:
         case HardLightCompositeOp:
+        case HardMixCompositeOp:
         case LinearBurnCompositeOp:
         case LinearDodgeCompositeOp:
         case LinearLightCompositeOp:
@@ -1880,6 +1881,18 @@ MagickExport MagickBooleanType CompositeImage(Image *image,
               Dca*(1.0-Sa));
             break;
           }
+          case HardMixCompositeOp:
+          {
+            if ((2.0*Sca) < Sa)
+              {
+                pixel=QuantumRange*gamma*(2.0*Sca*Dca+Sca*(1.0-Da)+Dca*
+                  (1.0-Sa));
+                break;
+              }
+            pixel=QuantumRange*gamma*(Sa*Da-2.0*(Da-Dca)*(Sa-Sca)+Sca*(1.0-Da)+
+              Dca*(1.0-Sa));
+            break;
+          }
           case HueCompositeOp:
           {
             if (fabs(QuantumRange*Sa-TransparentAlpha) < MagickEpsilon)
index 4bc019a4459a7237b7d9c8bf986f21904b003151..a2d494a999dc8fa0cd1d1d472cc3e5080810bc87 100644 (file)
@@ -58,6 +58,7 @@ typedef enum
   DstOverCompositeOp,
   ExclusionCompositeOp,
   HardLightCompositeOp,
+  HardMixCompositeOp,
   HueCompositeOp,
   InCompositeOp,
   IntensityCompositeOp,
index 23b367a5be888b800b13e38e39249ed0cf08b450..a5561478002f395405232b547de77b56c04b8492 100644 (file)
@@ -823,6 +823,7 @@ static const OptionInfo
     { "DstOver", DstOverCompositeOp, UndefinedOptionFlag, MagickFalse },
     { "Exclusion", ExclusionCompositeOp, UndefinedOptionFlag, MagickFalse },
     { "HardLight", HardLightCompositeOp, UndefinedOptionFlag, MagickFalse },
+    { "HardMix", HardMixCompositeOp, UndefinedOptionFlag, MagickFalse },
     { "Hue", HueCompositeOp, UndefinedOptionFlag, MagickFalse },
     { "In", InCompositeOp, UndefinedOptionFlag, MagickFalse },
     { "Intensity", IntensityCompositeOp, UndefinedOptionFlag, MagickFalse },