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)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 #if MAGICKCORE_FREETYPE_DELEGATE 68 // Add some text 69 button.fillColor( textColor ); 70 button.fontPointsize( fontPointSize ); 71 if (getenv("MAGICK_FONT") != 0) 72 button.font(string(getenv("MAGICK_FONT"))); 73 button.annotate( text, CenterGravity ); 74 #endif 75 76 // Add a decorative frame 77 button.borderColor( border ); 78 button.frame( "6x6+3+3" ); 79 80 button.depth( 8 ); 81 82 // Quantize to desired colors 83 // button.quantizeTreeDepth(8); 84 button.quantizeDither(false); 85 button.quantizeColors(64); 86 button.quantize(); 87 88 // Save to file 89 cout << "Writing to \"button_out.miff\" ..." << endl; 90 button.compressType( RLECompression ); 91 button.write("button_out.miff"); 92 93 // Display on screen 94 // button.display(); 95 96 } 97 catch( exception &error_ ) 98 { 99 cout << "Caught exception: " << error_.what() << endl; 100 return 1; 101 } 102 103 return 0; 104 } 105