blob: c383feac44343830a0c31ac26cb952d35b79752a [file] [log] [blame]
cristy3ed852e2009-09-05 21:47:34 +00001/*
2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3% %
4% %
5% %
6% CCCC OOO M M PPPP OOO SSSSS IIIII TTTTT EEEEE %
7% C O O MM MM P P O O SS I T E %
8% C O O M.M M PPPP O O SSS I T EEE %
9% C O O M M P O O SS I T E %
10% CCCC OOO M M P OOO SSSSS IIIII T EEEEE %
11% %
12% %
13% Digitally composite two images. %
14% %
15% Software Design %
16% John Cristy %
17% January 1993 %
18% %
19% %
cristy7e41fe82010-12-04 23:12:08 +000020% Copyright 1999-2011 ImageMagick Studio LLC, a non-profit organization %
cristy3ed852e2009-09-05 21:47:34 +000021% dedicated to making software imaging solutions freely available. %
22% %
23% You may not use this file except in compliance with the License. You may %
24% obtain a copy of the License at %
25% %
26% http://www.imagemagick.org/script/license.php %
27% %
28% Unless required by applicable law or agreed to in writing, software %
29% distributed under the License is distributed on an "AS IS" BASIS, %
30% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. %
31% See the License for the specific language governing permissions and %
32% limitations under the License. %
33% %
34%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
35%
36% Program Composite composites images to create new images.
37%
38%
39*/
40
41/*
42 Include declarations.
43*/
cristyee678102011-07-01 23:32:11 +000044#include "MagickWand/studio.h"
45#include "MagickWand/MagickWand.h"
cristy3ed852e2009-09-05 21:47:34 +000046
47/*
48%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
49% %
50% %
51% %
52% M a i n %
53% %
54% %
55% %
56%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
57%
58%
59*/
cristy66f9c3c2011-08-13 17:12:28 +000060
cristy9c88feb2011-09-21 13:06:09 +000061static int CompositeMain(int argc,char **argv)
cristy3ed852e2009-09-05 21:47:34 +000062{
cristy3ed852e2009-09-05 21:47:34 +000063 ExceptionInfo
64 *exception;
65
66 ImageInfo
67 *image_info;
68
69 MagickBooleanType
cristy3ed852e2009-09-05 21:47:34 +000070 status;
71
cristy3ed852e2009-09-05 21:47:34 +000072 MagickCoreGenesis(*argv,MagickTrue);
73 exception=AcquireExceptionInfo();
cristy3980b0d2009-10-25 14:37:13 +000074 image_info=AcquireImageInfo();
cristy3980b0d2009-10-25 14:37:13 +000075 status=MagickCommandGenesis(image_info,CompositeImageCommand,argc,argv,
cristy4e1dff62009-10-25 20:36:03 +000076 (char **) NULL,exception);
cristy3980b0d2009-10-25 14:37:13 +000077 image_info=DestroyImageInfo(image_info);
cristy3ed852e2009-09-05 21:47:34 +000078 exception=DestroyExceptionInfo(exception);
79 MagickCoreTerminus();
cristy3980b0d2009-10-25 14:37:13 +000080 return(status);
cristy3ed852e2009-09-05 21:47:34 +000081}
cristy66f9c3c2011-08-13 17:12:28 +000082
83#if !defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(__CYGWIN__) || defined(__MINGW32__)
84int main(int argc,char **argv)
85{
86 return(CompositeMain(argc,argv));
87}
88#else
89int wmain(int argc,wchar_t *argv[])
90{
91 char
92 **utf8;
93
94 int
95 status;
96
97 register int
98 i;
99
100 utf8=NTArgvToUTF8(argc,argv);
101 status=CompositeMain(argc,utf8);
102 for (i=0; i < argc; i++)
103 utf8[i]=DestroyString(utf8[i]);
104 utf8=(char **) RelinquishMagickMemory(utf8);
105 return(status);
106}
107#endif