Magick++  7.0.8
Convert, Edit, Or Compose Bitmap Images
Montage.h
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 // Definition of Montage class used to specify montage options.
6 //
7 
8 #if !defined(Magick_Montage_header)
9 #define Magick_Montage_header
10 
11 #include "Magick++/Include.h"
12 #include <string>
13 #include "Magick++/Color.h"
14 #include "Magick++/Geometry.h"
15 
16 //
17 // Basic (Un-framed) Montage
18 //
19 namespace Magick
20 {
22  {
23  public:
24 
25  Montage(void);
26  virtual ~Montage(void);
27 
28  // Color that thumbnails are composed on
29  void backgroundColor(const Color &backgroundColor_);
30  Color backgroundColor(void) const;
31 
32  // Composition algorithm to use (e.g. ReplaceCompositeOp)
33  void compose(CompositeOperator compose_);
34  CompositeOperator compose(void) const;
35 
36  // Filename to save montages to
37  void fileName(const std::string &fileName_);
38  std::string fileName(void) const;
39 
40  // Fill color
41  void fillColor(const Color &fill_);
42  Color fillColor(void) const;
43 
44  // Label font
45  void font(const std::string &font_);
46  std::string font(void) const;
47 
48  // Thumbnail width & height plus border width & height
49  void geometry(const Geometry &geometry_);
50  Geometry geometry(void) const;
51 
52  // Thumbnail position (e.g. SouthWestGravity)
53  void gravity(GravityType gravity_);
54  GravityType gravity(void) const;
55 
56  // Thumbnail label (applied to image prior to montage)
57  void label(const std::string &label_);
58  std::string label(void) const;
59 
60  // Font point size
61  void pointSize(size_t pointSize_);
62  size_t pointSize(void) const;
63 
64  // Enable drop-shadows on thumbnails
65  void shadow(bool shadow_);
66  bool shadow(void) const;
67 
68  // Outline color
69  void strokeColor(const Color &stroke_);
70  Color strokeColor(void) const;
71 
72  // Background texture image
73  void texture(const std::string &texture_);
74  std::string texture(void) const;
75 
76  // Thumbnail rows and colmns
77  void tile(const Geometry &tile_);
78  Geometry tile(void) const;
79 
80  // Montage title
81  void title(const std::string &title_);
82  std::string title(void) const;
83 
84  // Transparent color
85  void transparentColor(const Color &transparentColor_);
86  Color transparentColor(void) const;
87 
88  //
89  // Implementation methods/members
90  //
91 
92  // Update elements in existing MontageInfo structure
93  virtual void updateMontageInfo(MagickCore::MontageInfo &montageInfo_) const;
94 
95  private:
96 
97  Color _backgroundColor;
98  std::string _fileName;
99  Color _fill;
100  std::string _font;
101  Geometry _geometry;
102  GravityType _gravity;
103  std::string _label;
104  size_t _pointSize;
105  bool _shadow;
106  Color _stroke;
107  std::string _texture;
108  Geometry _tile;
109  std::string _title;
110  Color _transparentColor;
111  };
112 
113  //
114  // Montage With Frames (Extends Basic Montage)
115  //
117  {
118  public:
119 
120  MontageFramed(void);
121  ~MontageFramed(void);
122 
123  // Frame foreground color
124  void matteColor(const Color &matteColor_);
125  Color matteColor(void) const;
126 
127  // Frame border color
128  void borderColor(const Color &borderColor_);
129  Color borderColor(void) const;
130 
131  // Pixels between thumbnail and surrounding frame
132  void borderWidth(size_t borderWidth_);
133  size_t borderWidth(void) const;
134 
135  // Frame geometry (width & height frame thickness)
136  void frameGeometry(const Geometry &frame_);
137  Geometry frameGeometry(void) const;
138 
139  //
140  // Implementation methods/members
141  //
142 
143  // Update elements in existing MontageInfo structure
144  void updateMontageInfo(MagickCore::MontageInfo &montageInfo_) const;
145 
146  private:
147 
148  Color _matteColor;
149  Color _borderColor;
150  size_t _borderWidth;
151  Geometry _frame;
152  };
153 } // namespace Magick
154 
155 #endif // Magick_Montage_header
#define MagickPPExport
Definition: Include.h:262
Definition: Blob.h:15