blob: 88db625b14e9ee82ad619a16103b4aa207060254 [file] [log] [blame]
cristy3ed852e2009-09-05 21:47:34 +00001//
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
11using namespace std;
12
13using namespace Magick;
14
15int 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 );
Cristy0da8c562018-12-09 18:11:23 -050070 if (getenv("MAGICK_FONT") != 0)
71 button.font(string(getenv("MAGICK_FONT")));
cristy3ed852e2009-09-05 21:47:34 +000072 button.annotate( text, CenterGravity );
73
74 // Add a decorative frame
75 button.borderColor( border );
76 button.frame( "6x6+3+3" );
77
cristy4a16cd52010-01-05 14:04:01 +000078 button.depth( 8 );
79
cristy3ed852e2009-09-05 21:47:34 +000080 // 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}