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