]> granicus.if.org Git - imagemagick/blob - Magick++/demo/button.cpp
(no commit message)
[imagemagick] / Magick++ / demo / button.cpp
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
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     button.annotate( text, CenterGravity );
71
72     // Add a decorative frame
73     button.borderColor( border );
74     button.frame( "6x6+3+3" );
75
76     button.depth( 8 );
77
78     // Quantize to desired colors
79     // button.quantizeTreeDepth(8);
80     button.quantizeDither(false);
81     button.quantizeColors(64);
82     button.quantize();
83
84     // Save to file
85     cout << "Writing to \"button_out.miff\" ..." << endl;
86     button.compressType( RLECompression );
87     button.write("button_out.miff");
88
89     // Display on screen
90     // button.display();
91
92   }
93   catch( exception &error_ )
94     {
95       cout << "Caught exception: " << error_.what() << endl;
96       return 1;
97     }
98
99   return 0;
100 }