Magick++  7.0.7
Convert, Edit, Or Compose Bitmap Images
Montage.cpp
Go to the documentation of this file.
1 // This may look like C code, but it is really -*- C++ -*-
2 //
3 // Copyright Bob Friesenhahn, 1999, 2000, 2001, 2002, 2003
4 //
5 // Implementation of Montage
6 //
7 
8 #define MAGICKCORE_IMPLEMENTATION 1
9 #define MAGICK_PLUSPLUS_IMPLEMENTATION 1
10 
11 #include "Magick++/Include.h"
12 #include <string>
13 #include <string.h>
14 
15 #include "Magick++/Montage.h"
16 #include "Magick++/Functions.h"
17 
19  : _backgroundColor("#ffffff"),
20  _fileName(),
21  _fill("#000000ff"),
22  _font(),
23  _geometry("120x120+4+3>"),
24  _gravity(CenterGravity),
25  _label(),
26  _pointSize(12),
27  _shadow(false),
28  _stroke(),
29  _texture(),
30  _tile("6x4"),
31  _title(),
32  _transparentColor()
33 {
34 }
35 
37 {
38 }
39 
40 void Magick::Montage::backgroundColor(const Magick::Color &backgroundColor_)
41 {
42  _backgroundColor=backgroundColor_;
43 }
44 
46 {
47  return(_backgroundColor);
48 }
49 
50 void Magick::Montage::fileName(const std::string &fileName_)
51 {
52  _fileName=fileName_;
53 }
54 
55 std::string Magick::Montage::fileName(void) const
56 {
57  return(_fileName);
58 }
59 
61 {
62  _fill=fill_;
63 }
64 
66 {
67  return(_fill);
68 }
69 
70 void Magick::Montage::font(const std::string &font_)
71 {
72  _font=font_;
73 }
74 
75 std::string Magick::Montage::font(void) const
76 {
77  return(_font);
78 }
79 
81 {
82  _geometry=geometry_;
83 }
84 
86 {
87  return(_geometry);
88 }
89 
90 void Magick::Montage::gravity(Magick::GravityType gravity_)
91 {
92  _gravity=gravity_;
93 }
94 
95 Magick::GravityType Magick::Montage::gravity(void) const
96 {
97  return(_gravity);
98 }
99 
100 void Magick::Montage::label(const std::string &label_)
101 {
102  _label=label_;
103 }
104 
105 std::string Magick::Montage::label(void) const
106 {
107  return(_label);
108 }
109 
110 void Magick::Montage::pointSize(size_t pointSize_)
111 {
112  _pointSize=pointSize_;
113 }
114 
115 size_t Magick::Montage::pointSize(void) const
116 {
117  return(_pointSize);
118 }
119 
120 void Magick::Montage::shadow(bool shadow_)
121 {
122  _shadow=shadow_;
123 }
124 
125 bool Magick::Montage::shadow(void) const
126 {
127  return(_shadow);
128 }
129 
131 {
132  _stroke=stroke_;
133 }
134 
136 {
137  return(_stroke);
138 }
139 
140 void Magick::Montage::texture(const std::string &texture_)
141 {
142  _texture=texture_;
143 }
144 
145 std::string Magick::Montage::texture(void) const
146 {
147  return(_texture);
148 }
149 
150 void Magick::Montage::tile(const Geometry &tile_)
151 {
152  _tile=tile_;
153 }
154 
156 {
157  return(_tile);
158 }
159 
160 void Magick::Montage::title(const std::string &title_)
161 {
162  _title=title_;
163 }
164 
165 std::string Magick::Montage::title(void) const
166 {
167  return(_title);
168 }
169 
170 void Magick::Montage::transparentColor(const Magick::Color &transparentColor_)
171 {
172  _transparentColor=transparentColor_;
173 }
174 
176 {
177  return(_transparentColor);
178 }
179 
180 void Magick::Montage::updateMontageInfo(MontageInfo &montageInfo_ ) const
181 {
182  (void) memset(&montageInfo_,0,sizeof(montageInfo_));
183 
184  // matte_color
185  montageInfo_.matte_color=Color();
186  // background_color
187  montageInfo_.background_color=_backgroundColor;
188  // border_color
189  montageInfo_.border_color=Color();
190  // border_width
191  montageInfo_.border_width=0;
192  // filename
193  if (_font.length() != 0)
194  {
195  _fileName.copy(montageInfo_.filename,MagickPathExtent-1);
196  montageInfo_.filename[ _fileName.length() ] = 0; // null terminate
197  }
198  // fill
199  montageInfo_.fill=_fill;
200  // font
201  if (_font.length() != 0)
202  Magick::CloneString(&montageInfo_.font,_font);
203  // geometry
204  if (_geometry.isValid())
205  Magick::CloneString(&montageInfo_.geometry,_geometry);
206  // gravity
207  montageInfo_.gravity=_gravity;
208  // pointsize
209  montageInfo_.pointsize=_pointSize;
210  // shadow
211  montageInfo_.shadow=static_cast<MagickBooleanType>
212  (_shadow ? MagickTrue : MagickFalse);
213  // signature (validity stamp)
214  montageInfo_.signature=MagickCoreSignature;
215  // stroke
216  montageInfo_.stroke=_stroke;
217  // texture
218  if (_texture.length() != 0)
219  Magick::CloneString(&montageInfo_.texture,_texture);
220  // tile
221  if (_tile.isValid())
222  Magick::CloneString(&montageInfo_.tile,_tile);
223  // title
224  if (_title.length() != 0)
225  Magick::CloneString(&montageInfo_.title,_title);
226 }
227 
228 //
229 // Implementation of MontageFramed
230 //
231 
233  : _matteColor("#bdbdbd"),
234  _borderColor("#dfdfdf"),
235  _borderWidth(0),
236  _frame()
237 {
238 }
239 
241 {
242 }
243 
245 {
246  _matteColor=matteColor_;
247 }
248 
250 {
251  return(_matteColor);
252 }
253 
255 {
256  _borderColor=borderColor_;
257 }
258 
260 {
261  return(_borderColor);
262 }
263 
264 void Magick::MontageFramed::borderWidth(size_t borderWidth_)
265 {
266  _borderWidth=borderWidth_;
267 }
268 
270 {
271  return(_borderWidth);
272 }
273 
275 {
276  _frame=frame_;
277 }
278 
280 {
281  return(_frame);
282 }
283 
284 void Magick::MontageFramed::updateMontageInfo(MontageInfo &montageInfo_) const
285 {
286  // Do base updates
287  Montage::updateMontageInfo(montageInfo_);
288 
289  // matte_color
290  montageInfo_.matte_color = _matteColor;
291  // border_color
292  montageInfo_.border_color=_borderColor;
293  // border_width
294  montageInfo_.border_width=_borderWidth;
295  // frame
296  if (_frame.isValid())
297  Magick::CloneString(&montageInfo_.frame,_frame);
298 }
class MagickPPExport Color
Definition: Color.h:16
GravityType gravity(void) const
Definition: Montage.cpp:95
std::string texture(void) const
Definition: Montage.cpp:145
Geometry frameGeometry(void) const
Definition: Montage.cpp:279
size_t borderWidth(void) const
Definition: Montage.cpp:269
Color fillColor(void) const
Definition: Montage.cpp:65
Color matteColor(void) const
Definition: Montage.cpp:249
size_t pointSize(void) const
Definition: Montage.cpp:115
virtual ~Montage(void)
Definition: Montage.cpp:36
Color backgroundColor(void) const
Definition: Montage.cpp:45
std::string font(void) const
Definition: Montage.cpp:75
std::string fileName(void) const
Definition: Montage.cpp:55
Color borderColor(void) const
Definition: Montage.cpp:259
Color transparentColor(void) const
Definition: Montage.cpp:175
Geometry geometry(void) const
Definition: Montage.cpp:85
std::string title(void) const
Definition: Montage.cpp:165
MagickPPExport void CloneString(char **destination_, const std::string &source_)
Definition: Functions.cpp:23
Geometry tile(void) const
Definition: Montage.cpp:155
void updateMontageInfo(MagickCore::MontageInfo &montageInfo_) const
Definition: Montage.cpp:284
void isValid(bool isValid_)
Definition: Geometry.cpp:367
virtual void updateMontageInfo(MagickCore::MontageInfo &montageInfo_) const
Definition: Montage.cpp:180
Color strokeColor(void) const
Definition: Montage.cpp:135
bool shadow(void) const
Definition: Montage.cpp:125
std::string label(void) const
Definition: Montage.cpp:105