1 // This may look like C code, but it is really -*- C++ -*-
3 // Copyright Bob Friesenhahn, 1999, 2000, 2001, 2002, 2003
5 // Implementation of Montage
8 #define MAGICKCORE_IMPLEMENTATION 1
9 #define MAGICK_PLUSPLUS_IMPLEMENTATION 1
11 #include "Magick++/Include.h"
15 #include "Magick++/Montage.h"
16 #include "Magick++/Functions.h"
18 Magick::Montage::Montage ( void )
19 : _backgroundColor("#ffffff"),
20 _compose(OverCompositeOp),
24 _geometry("120x120+4+3>"),
25 _gravity(CenterGravity),
37 Magick::Montage::~Montage( void )
42 Magick::MontageFramed::MontageFramed ( void )
43 : _borderColor("#dfdfdf"),
46 _matteColor("#bdbdbd")
50 /* virtual */ Magick::MontageFramed::~MontageFramed ( void )
55 void Magick::Montage::updateMontageInfo ( MontageInfo &montageInfo_ ) const
58 memset(&montageInfo_,0,sizeof(MontageInfo));
61 montageInfo_.background_color = _backgroundColor;
63 montageInfo_.border_color = Color();
65 montageInfo_.border_width = 0;
67 _fileName.copy( montageInfo_.filename, MaxTextExtent - 1 );
68 montageInfo_.filename[ _fileName.length() ] = 0; // null terminate
70 montageInfo_.fill = _fill;
72 if ( _font.length() != 0 )
73 Magick::CloneString( &montageInfo_.font, _font );
75 montageInfo_.font=(char *) RelinquishMagickMemory(montageInfo_.font);
77 montageInfo_.frame=(char *) montageInfo_.frame;
79 if ( _geometry.isValid() )
80 Magick::CloneString( &montageInfo_.geometry, _geometry );
82 montageInfo_.geometry=(char *)
83 RelinquishMagickMemory(montageInfo_.geometry);
85 montageInfo_.gravity = _gravity;
87 montageInfo_.matte_color = Color();
89 montageInfo_.pointsize = _pointSize;
91 montageInfo_.shadow = static_cast<MagickBooleanType>
92 (_shadow ? MagickTrue : MagickFalse);
93 // signature (validity stamp)
94 montageInfo_.signature = MagickSignature;
96 montageInfo_.stroke = _stroke;
98 if ( _texture.length() != 0 )
99 Magick::CloneString( &montageInfo_.texture, _texture );
101 montageInfo_.texture=(char *) RelinquishMagickMemory(montageInfo_.texture);
103 if ( _tile.isValid() )
104 Magick::CloneString( &montageInfo_.tile, _tile );
106 montageInfo_.tile=(char *) RelinquishMagickMemory(montageInfo_.tile);
108 if ( _title.length() != 0 )
109 Magick::CloneString( &montageInfo_.title, _title );
111 montageInfo_.title=(char *) RelinquishMagickMemory(montageInfo_.title);
115 // Implementation of MontageFramed
119 Magick::MontageFramed::updateMontageInfo ( MontageInfo &montageInfo_ ) const
122 Montage::updateMontageInfo ( montageInfo_ );
125 montageInfo_.border_color = _borderColor;
127 montageInfo_.border_width = _borderWidth;
129 if ( _frame.isValid() )
130 Magick::CloneString( &montageInfo_.frame, _frame );
132 montageInfo_.frame=(char *) RelinquishMagickMemory(montageInfo_.frame);
134 montageInfo_.matte_color = _matteColor;