Home | History | Annotate | Download | only in demo
      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     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