• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 //
2 // Replace transparency in an image with a solid color using Magick++
3 //
4 // Useful to see how a transparent image looks on a particular
5 // background color, or to create a similar looking effect without
6 // transparency.
7 //
8 // Copyright Bob Friesenhahn, 2000
9 //
10 // Usage: detrans color file...
11 //
12 
13 #include <Magick++.h>
14 #include <iostream>
15 using namespace std;
16 using namespace Magick;
main(int argc,char ** argv)17 int main(int argc,char **argv)
18 {
19   if ( argc < 3 )
20     {
21       cout << "Usage: " << argv[0] << " background_color file..." << endl;
22       exit( 1 );
23     }
24 
25   // Initialize ImageMagick install location for Windows
26   InitializeMagick(*argv);
27 
28   {
29     Color color;
30     try {
31       color = Color(argv[1]);
32     }
33     catch ( Exception &error_ )
34       {
35         cout << error_.what() << endl;
36         cout.flush();
37         exit(1);
38       }
39 
40     char **arg = &argv[2];
41     while ( *arg )
42       {
43         string fname(*arg);
44         try {
45           Image overlay( fname );
46           Image base( overlay.size(), color );
47           base.composite( overlay, 0, 0, OverCompositeOp );
48           base.alpha( false );
49           base.write( fname );
50         }
51         catch( Exception &error_ )
52           {
53             cout << error_.what() << endl;
54           }
55         ++arg;
56       }
57   }
58 
59   return 0;
60 }
61