• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 //
2 // Magick++ demo to generate a simple text button
3 //
4 // Copyright Bob Friesenhahn, 1999, 2000, 2001, 2003
5 //
6 
7 #include <Magick++.h>
8 #include <string>
9 #include <iostream>
10 
11 using namespace std;
12 
13 using namespace Magick;
14 
main(int,char ** argv)15 int main( int /*argc*/, char ** argv)
16 {
17 
18   // Initialize ImageMagick install location for Windows
19   InitializeMagick(*argv);
20 
21   try {
22 
23     string srcdir("");
24     if(getenv("SRCDIR") != 0)
25       srcdir = getenv("SRCDIR");
26 
27     //
28     // Options
29     //
30 
31     string backGround = "xc:#CCCCCC"; // A solid color
32 
33     // Color to use for decorative border
34     Color border = "#D4DCF3";
35 
36     // Button size
37     string buttonSize = "120x20";
38 
39     // Button background texture
40     string buttonTexture = "granite:";
41 
42     // Button text
43     string text = "Button Text";
44 
45     // Button text color
46     string textColor = "red";
47 
48     // Font point size
49     int fontPointSize = 16;
50 
51     //
52     // Magick++ operations
53     //
54 
55     Image button;
56 
57     // Set button size
58     button.size( buttonSize );
59 
60     // Read background image
61     button.read( backGround );
62 
63     // Set background to buttonTexture
64     Image backgroundTexture( buttonTexture );
65     button.texture( backgroundTexture );
66 
67     // Add some text
68     button.fillColor( textColor );
69     button.fontPointsize( fontPointSize );
70     if (getenv("MAGICK_FONT") != 0)
71       button.font(string(getenv("MAGICK_FONT")));
72     button.annotate( text, CenterGravity );
73 
74     // Add a decorative frame
75     button.borderColor( border );
76     button.frame( "6x6+3+3" );
77 
78     button.depth( 8 );
79 
80     // Quantize to desired colors
81     // button.quantizeTreeDepth(8);
82     button.quantizeDither(false);
83     button.quantizeColors(64);
84     button.quantize();
85 
86     // Save to file
87     cout << "Writing to \"button_out.miff\" ..." << endl;
88     button.compressType( RLECompression );
89     button.write("button_out.miff");
90 
91     // Display on screen
92     // button.display();
93 
94   }
95   catch( exception &error_ )
96     {
97       cout << "Caught exception: " << error_.what() << endl;
98       return 1;
99     }
100 
101   return 0;
102 }
103