Magick++ 7.0.10

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 {
21 class MagickPPExport Montage
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 //
116 class MagickPPExport MontageFramed : public Montage
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
Magick::Montage
Definition: Montage.h:21
MagickPPExport
#define MagickPPExport
Definition: Include.h:281
Magick::Color
Definition: Color.h:34
Magick::Geometry
Definition: Geometry.h:35
Color.h
Include.h
Magick::MontageFramed
Definition: Montage.h:116
Magick
Definition: Blob.h:15
Geometry.h