]> granicus.if.org Git - imagemagick/commitdiff
(no commit message)
authorcristy <urban-warrior@git.imagemagick.org>
Sat, 14 Aug 2010 20:48:24 +0000 (20:48 +0000)
committercristy <urban-warrior@git.imagemagick.org>
Sat, 14 Aug 2010 20:48:24 +0000 (20:48 +0000)
wand/compare.c

index b0a3a8ee8bb2e79c03873d39c984a9e11de06841..d5d921b553c1add7a787133ac78ee588381bdfb6 100644 (file)
@@ -933,52 +933,49 @@ WandExport MagickBooleanType CompareImageCommand(ImageInfo *image_info,
     ThrowCompareException(OptionError,"MissingAnImageFilename",argv[i]);
   image=GetImageFromList(image,0);
   reconstruct_image=GetImageFromList(image,1);
-  similarity_image=SimilarityImage(image,reconstruct_image,&offset,
-    &similarity_metric,exception);
-  if (similarity_metric > dissimilarity_threshold)
-    ThrowCompareException(ImageError,"ImagesTooDissimilar",image->filename);
+  if (subimage_search != MagickFalse)
+    {
+      similarity_image=SimilarityImage(image,reconstruct_image,&offset,
+        &similarity_metric,exception);
+      if (similarity_metric > dissimilarity_threshold)
+        ThrowCompareException(ImageError,"ImagesTooDissimilar",image->filename);
+    }
   if ((reconstruct_image->columns == image->columns) &&
       (reconstruct_image->rows == image->rows))
     difference_image=CompareImageChannels(image,reconstruct_image,channels,
       metric,&distortion,exception);
   else
-    if (subimage_search == MagickFalse)
-      difference_image=CompareImageChannels(image,reconstruct_image,channels,
-        metric,&distortion,exception);
-    else
-      if (similarity_image != (Image *) NULL)
-        {
-          Image
-            *composite_image;
+    if (similarity_image != (Image *) NULL)
+      {
+        Image
+          *composite_image;
 
-          /*
-            Determine if reconstructed image is a subimage of the image.
-          */
-          composite_image=CloneImage(image,0,0,MagickTrue,exception);
-          if (composite_image == (Image *) NULL)
-            difference_image=CompareImageChannels(image,reconstruct_image,
+        /*
+          Determine if reconstructed image is a subimage of the image.
+        */
+        composite_image=CloneImage(image,0,0,MagickTrue,exception);
+        if (composite_image == (Image *) NULL)
+          difference_image=CompareImageChannels(image,reconstruct_image,
+            channels,metric,&distortion,exception);
+        else
+          {
+            (void) CompositeImage(composite_image,CopyCompositeOp,
+              reconstruct_image,offset.x,offset.y);
+            difference_image=CompareImageChannels(image,composite_image,
               channels,metric,&distortion,exception);
-          else
-            {
-              (void) CompositeImage(composite_image,CopyCompositeOp,
-                reconstruct_image,offset.x,offset.y);
-              difference_image=CompareImageChannels(image,composite_image,
-                channels,metric,&distortion,exception);
-              if (difference_image != (Image *) NULL)
-                {
-                  difference_image->page.x=offset.x;
-                  difference_image->page.y=offset.y;
-                }
-              composite_image=DestroyImage(composite_image);
-            }
-          if (difference_image == (Image *) NULL)
-            similarity_image=DestroyImage(similarity_image);
-          else
-            {
-              AppendImageToList(&difference_image,similarity_image);
-              similarity_image=(Image *) NULL;
-            }
-        }
+            if (difference_image != (Image *) NULL)
+              {
+                difference_image->page.x=offset.x;
+                difference_image->page.y=offset.y;
+              }
+            composite_image=DestroyImage(composite_image);
+          }
+        if (difference_image != (Image *) NULL)
+          {
+            AppendImageToList(&difference_image,similarity_image);
+            similarity_image=(Image *) NULL;
+          }
+      }
   if (difference_image == (Image *) NULL)
     status=0;
   else