]> granicus.if.org Git - imagemagick/blob - utilities/compare.c
(no commit message)
[imagemagick] / utilities / compare.c
1 /*
2 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3 %                                                                             %
4 %                                                                             %
5 %                                                                             %
6 %               CCCC   OOO   M   M  PPPP    AAA   RRRR    EEEEE               %
7 %              C      O   O  MM MM  P   P  A   A  R   R   E                   %
8 %              C      O   O  M M M  PPPP   AAAAA  RRRR    EEE                 %
9 %              C      O   O  M   M  P      A   A  R R     E                   %
10 %               CCCC   OOO   M   M  P      A   A  R  R    EEEEE               %
11 %                                                                             %
12 %                                                                             %
13 %                        Image Comparison Utility                             %
14 %                                                                             %
15 %                                                                             %
16 %                           Software Design                                   %
17 %                                Cristy                                       %
18 %                            December 2003                                    %
19 %                                                                             %
20 %                                                                             %
21 %  Copyright 1999-2015 ImageMagick Studio LLC, a non-profit organization      %
22 %  dedicated to making software imaging solutions freely available.           %
23 %                                                                             %
24 %  You may not use this file except in compliance with the License.  You may  %
25 %  obtain a copy of the License at                                            %
26 %                                                                             %
27 %    http://www.imagemagick.org/script/license.php                            %
28 %                                                                             %
29 %  Unless required by applicable law or agreed to in writing, software        %
30 %  distributed under the License is distributed on an "AS IS" BASIS,          %
31 %  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.   %
32 %  See the License for the specific language governing permissions and        %
33 %  limitations under the License.                                             %
34 %                                                                             %
35 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
36 %
37 % The compare utility mathematically and visually annotates the difference
38 % between an image and its reconstruction.
39 %
40 */
41 \f
42 /*
43   Include declarations.
44 */
45 #include "MagickWand/studio.h"
46 #include "MagickWand/MagickWand.h"
47 \f
48 /*
49 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
50 %                                                                             %
51 %                                                                             %
52 %                                                                             %
53 %  M a i n                                                                    %
54 %                                                                             %
55 %                                                                             %
56 %                                                                             %
57 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
58 %
59 %
60 */
61 static int CompareMain(int argc,char **argv)
62 {
63   char
64     *metadata;
65
66   const char
67     *option;
68
69   ExceptionInfo
70     *exception;
71
72   ImageInfo
73     *image_info;
74
75   MagickBooleanType
76     dissimilar,
77     status;
78
79   MagickCoreGenesis(*argv,MagickTrue);
80   exception=AcquireExceptionInfo();
81   image_info=AcquireImageInfo();
82   metadata=(char *) NULL;
83   status=MagickCommandGenesis(image_info,CompareImagesCommand,argc,argv,
84     &metadata,exception);
85   if (metadata != (char *) NULL)
86     metadata=DestroyString(metadata);
87   option=GetImageOption(image_info,"compare:dissimilar");
88   dissimilar=IsStringTrue(option);
89   image_info=DestroyImageInfo(image_info);
90   exception=DestroyExceptionInfo(exception);
91   MagickCoreTerminus();
92   if (dissimilar != MagickFalse)
93     return(1);
94   return(status != MagickFalse ? 0 : 2);
95 }
96
97 #if !defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(__CYGWIN__) || defined(__MINGW32__) || defined(__MINGW64__)
98 int main(int argc,char **argv)
99 {
100   return(CompareMain(argc,argv));
101 }
102 #else
103 int wmain(int argc,wchar_t *argv[])
104 {
105   char
106     **utf8;
107
108   int
109     status;
110
111   register int
112     i;
113
114   utf8=NTArgvToUTF8(argc,argv);
115   status=CompareMain(argc,utf8);
116   for (i=0; i < argc; i++)
117     utf8[i]=DestroyString(utf8[i]);
118   utf8=(char **) RelinquishMagickMemory(utf8);
119   return(status);
120 }
121 #endif