25 #if MAGICKCORE_FREETYPE_DELEGATE    26   #define MakeLabel(image, text) image.label( (text) )    28   #define MakeLabel(image, text)    31 int main( 
int , 
char ** argv)
    37   const char *
const p = getenv(
"MAGICK_FONT");
    38   const string MAGICK_FONT(p ? p : 
"");
    43     if(getenv(
"SRCDIR") != 0)
    44       srcdir = getenv(
"SRCDIR");
    52       cout << 
"Read images ..." << endl;
    54       Image model( srcdir + 
"model.miff" );
    59       Image smile( srcdir + 
"smile.miff" );
    66       cout << 
"Creating thumbnails..." << endl;
    71       null.
read( 
"NULL:black" );
    72       list<Image> images( 7, null );
    74       Image example = model;
    82       cout << 
"  add noise ..." << endl;
    85       images.push_back( example );
    87       cout << 
"  add noise (blue) ..." << endl;
    88       MakeLabel(example, 
"Add Noise\n(Blue Channel)");
    90       images.push_back( example );
    92 #if MAGICKCORE_FREETYPE_DELEGATE    93       cout << 
"  annotate ..." << endl;
    98       example.
font(MAGICK_FONT);
   101       example.
annotate( 
"Magick++", 
"+0+20", NorthGravity );
   102       images.push_back( example );
   105       cout << 
"  blur ..." << endl;
   108       example.
blur( 0, 1.5 );
   109       images.push_back( example );
   111       cout << 
"  blur red channel ..." << endl;
   113       MakeLabel(example, 
"Blur Channel\n(Red Channel)");
   115       images.push_back( example );
   117       cout << 
"  border ..." << endl;
   122       images.push_back( example );
   124       cout << 
"  channel ..." << endl;
   126       MakeLabel(example, 
"Channel\n(Red Channel)");
   128       images.push_back( example );
   130       cout << 
"  charcoal ..." << endl;
   134       images.push_back( example );
   136       cout << 
"  composite ..." << endl;
   139       example.
composite( smile, 
"+35+65", OverCompositeOp);
   140       images.push_back( example );
   142       cout << 
"  contrast ..." << endl;
   146       images.push_back( example );
   148       cout << 
"  convolve ..." << endl;
   153         const double kernel[] = { 1, 1, 1, 1, 4, 1, 1, 1, 1 };
   156       images.push_back( example );
   158       cout << 
"  crop ..." << endl;
   161       example.
crop( 
"80x80+25+50" );
   162       images.push_back( example );
   164       cout << 
"  despeckle ..." << endl;
   168       images.push_back( example );
   170       cout << 
"  draw ..." << endl;
   177       images.push_back( example );
   179       cout << 
"  edge ..." << endl;
   183       images.push_back( example );
   185       cout << 
"  emboss ..." << endl;
   189       images.push_back( example );
   191       cout << 
"  equalize ..." << endl;
   195       images.push_back( example );
   197       cout << 
"  explode ..." << endl;
   202       images.push_back( example );
   204       cout << 
"  flip ..." << endl;
   208       images.push_back( example );
   210       cout << 
"  flop ..." << endl;
   214       images.push_back( example );
   216       cout << 
"  frame ..." << endl;
   220       images.push_back( example );
   222       cout << 
"  gamma ..." << endl;
   225       example.
gamma( 1.6 );
   226       images.push_back( example );
   228       cout << 
"  gaussian blur ..." << endl;
   232       images.push_back( example );
   234       cout << 
"  gaussian blur channel ..." << endl;
   236       MakeLabel(example, 
"Gaussian Blur\n(Green Channel)");
   238       images.push_back( example );
   240       cout << 
"  gradient ..." << endl;
   242       gradient.
size( 
"130x194" );
   243       gradient.
read( 
"gradient:#20a0ff-#ffff00" );
   245       images.push_back( gradient );
   247       cout << 
"  grayscale ..." << endl;
   252       images.push_back( example );
   254       cout << 
"  implode ..." << endl;
   258       images.push_back( example );
   260       cout << 
"  level ..." << endl;
   263       example.
level( 0.20*QuantumRange, 0.90*QuantumRange, 1.20 );
   264       images.push_back( example );
   266       cout << 
"  level red channel ..." << endl;
   268       MakeLabel(example, 
"Level Channel\n(Red Channel)");
   269       example.
levelChannel( RedChannel, 0.20*QuantumRange, 0.90*QuantumRange, 1.20 );
   270       images.push_back( example );
   272       cout << 
"  median filter ..." << endl;
   276       images.push_back( example );
   278       cout << 
"  modulate ..." << endl;
   282       images.push_back( example );
   284       cout << 
"  monochrome ..." << endl;
   291       images.push_back( example );
   293       cout << 
"  motion blur ..." << endl;
   297       images.push_back( example );
   299       cout << 
"  negate ..." << endl;
   303       images.push_back( example );
   305       cout << 
"  normalize ..." << endl;
   309       images.push_back( example );
   311       cout << 
"  oil paint ..." << endl;
   315       images.push_back( example );
   317       cout << 
"  ordered dither 2x2 ..." << endl;
   319       MakeLabel(example, 
"Ordered Dither\n(2x2)");
   321       images.push_back( example );
   323       cout << 
"  ordered dither 3x3..." << endl;
   325       MakeLabel(example, 
"Ordered Dither\n(3x3)");
   327       images.push_back( example );
   329       cout << 
"  ordered dither 4x4..." << endl;
   331       MakeLabel(example, 
"Ordered Dither\n(4x4)");
   333       images.push_back( example );
   335       cout << 
"  ordered dither red 4x4..." << endl;
   337       MakeLabel(example, 
"Ordered Dither\n(Red 4x4)");
   339       images.push_back( example );
   341       cout << 
"  plasma ..." << endl;
   343       plasma.
size( 
"130x194" );
   344       plasma.
read( 
"plasma:fractal" );
   346       images.push_back( plasma );
   348       cout << 
"  quantize ..." << endl;
   352       images.push_back( example );
   354       cout << 
"  quantum operator ..." << endl;
   356       MakeLabel(example, 
"Quantum Operator\nRed * 0.4");
   357       example.
evaluate( RedChannel,MultiplyEvaluateOperator,0.40 );
   358       images.push_back( example );
   360       cout << 
"  raise ..." << endl;
   364       images.push_back( example );
   366       cout << 
"  reduce noise ..." << endl;
   370       images.push_back( example );
   372       cout << 
"  resize ..." << endl;
   375       example.
zoom( 
"50%" );
   376       images.push_back( example );
   378       cout << 
"  roll ..." << endl;
   381       example.
roll( 
"+20+10" );
   382       images.push_back( example );
   384       cout << 
"  rotate ..." << endl;
   389       images.push_back( example );
   391       cout << 
"  scale ..." << endl;
   394       example.
scale( 
"60%" );
   395       images.push_back( example );
   397       cout << 
"  segment ..." << endl;
   401       images.push_back( example );
   403       cout << 
"  shade ..." << endl;
   406       example.
shade( 30, 30, 
false );
   407       images.push_back( example );
   409       cout << 
"  sharpen ..." << endl;
   413       images.push_back( example );
   415       cout << 
"  shave ..." << endl;
   419       images.push_back( example );
   421       cout << 
"  shear ..." << endl;
   424       example.
shear( 45, 45 );
   426       images.push_back( example );
   428       cout << 
"  spread ..." << endl;
   432       images.push_back( example );
   434       cout << 
"  solarize ..." << endl;
   438       images.push_back( example );
   440       cout << 
"  swirl ..." << endl;
   445       images.push_back( example );
   447       cout << 
"  threshold ..." << endl;
   451       images.push_back( example );
   453       cout << 
"  threshold random ..." << endl;
   457         (0.85*QuantumRange) );
   458       images.push_back( example );
   460       cout << 
"  unsharp mask ..." << endl;
   465       images.push_back( example );
   467       cout << 
"  wave ..." << endl;
   470       example.
alpha( 
true );
   472       example.
wave( 25, 150 );
   473       images.push_back( example );
   478       cout <<  
"Montage images..." << endl;
   483       montageOpts.
geometry( 
"130x194+10+5>" );
   484       montageOpts.gravity( CenterGravity );
   485       montageOpts.borderColor( 
"green" );
   486       montageOpts.borderWidth( 1 );
   487       montageOpts.tile( 
"7x4" );
   488       montageOpts.backgroundColor( 
"#ffffff" );
   489       montageOpts.pointSize( 18 );
   490       montageOpts.font(MAGICK_FONT);
   491       montageOpts.fillColor( 
"#600" );
   492       montageOpts.strokeColor( 
Color() );
   493       montageOpts.fileName( 
"Magick++ Demo" );
   494       montageImages( &montage, images.begin(), images.end(), montageOpts );
   497     Image& montage_image = montage.front();
   500       cout << 
"Adding logo image ..." << endl;
   501       Image logo( 
"logo:" );
   506       montage_image.
composite( logo, placement, OverCompositeOp );
   509     for_each( montage.begin(), montage.end(), 
depthImage(8) );
   510     for_each( montage.begin(), montage.end(), 
alphaImage( 
false ) );
   513     cout << 
"Writing image \"demo_out.miff\" ..." << endl;
   514     writeImages(montage.begin(),montage.end(),
"demo_out_%d.miff");
   521   catch( exception &error_ )
   523       cout << 
"Caught exception: " << error_.what() << endl;
 void gaussianBlur(const double radius_, const double sigma_)
void swirl(const double degrees_)
class MagickPPExport Color
void modulate(const double brightness_, const double saturation_, const double hue_)
void annotate(const std::string &text_, const Geometry &location_)
void charcoal(const double radius_=0.0, const double sigma_=1.0)
void blur(const double radius_=0.0, const double sigma_=1.0)
void contrast(const bool sharpen_)
void medianFilter(const double radius_=0.0)
void composite(const Image &compositeImage_, const Geometry &offset_, const CompositeOperator compose_=InCompositeOp)
void unsharpmask(const double radius_, const double sigma_, const double amount_, const double threshold_)
void negate(const bool grayscale_=false)
#define MakeLabel(image, text)
void raise(const Geometry &geometry_=raiseGeometryDefault, const bool raisedFlag_=false)
void crop(const Geometry &geometry_)
void density(const Point &density_)
void shade(const double azimuth_=30, const double elevation_=30, const bool colorShading_=false)
void zoom(const Geometry &geometry_)
void strokeWidth(const double strokeWidth_)
void blurChannel(const ChannelType channel_, const double radius_=0.0, const double sigma_=1.0)
void strokeColor(const Color &strokeColor_)
void oilPaint(const double radius_=0.0, const double sigma=1.0)
void spread(const double amount_=3.0)
void randomThresholdChannel(const ChannelType channel_, const double low_, const double high_)
void motionBlur(const double radius_, const double sigma_, const double angle_)
void emboss(const double radius_=0.0, const double sigma_=1.0)
void segment(const double clusterThreshold_=1.0, const double smoothingThreshold_=1.5)
void sharpen(const double radius_=0.0, const double sigma_=1.0)
void montageImages(Container *montageImages_, InputIterator first_, InputIterator last_, const Montage &options_)
void solarize(const double factor_=50.0)
void geometry(const Geometry &geometry_)
void quantize(const bool measureError_=false)
void read(const Blob &blob_)
void frame(const Geometry &geometry_=frameGeometryDefault)
void shave(const Geometry &geometry_)
void borderColor(const Color &color_)
void font(const std::string &font_)
void fontPointsize(const double pointSize_)
class MagickPPExport Geometry
void writeImages(InputIterator first_, InputIterator last_, const std::string &imageSpec_, bool adjoin_=true)
void edge(const double radius_=0.0)
void fillColor(const Color &fillColor_)
void scale(const Geometry &geometry_)
void size(const Geometry &geometry_)
void draw(const Drawable &drawable_)
void randomThreshold(const double low_, const double high_)
void evaluate(const ChannelType channel_, const MagickEvaluateOperator operator_, double rvalue_)
void implode(const double factor_)
void addNoiseChannel(const ChannelType channel_, const NoiseType noiseType_, const double attenuate_=1.0)
void wave(const double amplitude_=25.0, const double wavelength_=150.0)
void threshold(const double threshold_)
void convolve(const size_t order_, const double *kernel_)
void roll(const Geometry &roll_)
void gaussianBlurChannel(const ChannelType channel_, const double radius_, const double sigma_)
void transparent(const Color &color_, const bool inverse_=false)
void alpha(const bool alphaFlag_)
void border(const Geometry &geometry_=borderGeometryDefault)
void addNoise(const NoiseType noiseType_, const double attenuate_=1.0)
size_t columns(void) const
void quantizeColors(const size_t colors_)
void levelChannel(const ChannelType channel_, const double blackPoint_, const double whitePoint_, const double gamma_=1.0)
void channel(const ChannelType channel_)
MagickPPExport void InitializeMagick(const char *path_)
int main(int, char **argv)
void backgroundColor(const Color &color_)
void quantizeDither(const bool ditherFlag_)
void level(const double blackPoint_, const double whitePoint_, const double gamma_=1.0)
void quantizeColorSpace(const ColorspaceType colorSpace_)
void shear(const double xShearAngle_, const double yShearAngle_)
void rotate(const double degrees_)