MagickCore  6.9.10
Convert, Edit, Or Compose Bitmap Images
geometry.h
Go to the documentation of this file.
1 /*
2  Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization
3  dedicated to making software imaging solutions freely available.
4 
5  You may not use this file except in compliance with the License.
6  obtain a copy of the License at
7 
8  https://www.imagemagick.org/script/license.php
9 
10  Unless required by applicable law or agreed to in writing, software
11  distributed under the License is distributed on an "AS IS" BASIS,
12  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  See the License for the specific language governing permissions and
14  limitations under the License.
15 
16  MagickCore image geometry methods.
17 */
18 #ifndef MAGICKCORE_GEOMETRY_H
19 #define MAGICKCORE_GEOMETRY_H
20 
21 #if defined(__cplusplus) || defined(c_plusplus)
22 extern "C" {
23 #endif
24 
25 typedef enum
26 {
27 #undef NoValue
28  NoValue = 0x0000,
29 #undef XValue
30  XValue = 0x0001,
31  XiValue = 0x0001,
32 #undef YValue
33  YValue = 0x0002,
34  PsiValue = 0x0002,
35 #undef WidthValue
36  WidthValue = 0x0004,
37  RhoValue = 0x0004,
38 #undef HeightValue
39  HeightValue = 0x0008,
40  SigmaValue = 0x0008,
41  ChiValue = 0x0010,
42  XiNegative = 0x0020,
43 #undef XNegative
44  XNegative = 0x0020,
45  PsiNegative = 0x0040,
46 #undef YNegative
47  YNegative = 0x0040,
48  ChiNegative = 0x0080,
49  PercentValue = 0x1000, /* '%' percentage of something */
50  AspectValue = 0x2000, /* '!' resize no-aspect - special use flag */
51  NormalizeValue = 0x2000, /* '!' ScaleKernelValue() in morphology.c */
52  LessValue = 0x4000, /* '<' resize smaller - special use flag */
53  GreaterValue = 0x8000, /* '>' resize larger - spacial use flag */
54  MinimumValue = 0x10000, /* '^' special handling needed */
55  CorrelateNormalizeValue = 0x10000, /* '^' see ScaleKernelValue() */
56  AreaValue = 0x20000, /* '@' resize to area - special use flag */
57  DecimalValue = 0x40000, /* '.' floating point numbers found */
58  SeparatorValue = 0x80000, /* 'x' separator found */
59  AspectRatioValue = 0x100000, /* '~' special handling needed */
60 #undef AllValues
61  AllValues = 0x7fffffff
63 
64 #if defined(ForgetGravity)
65 #undef ForgetGravity
66 #undef NorthWestGravity
67 #undef NorthGravity
68 #undef NorthEastGravity
69 #undef WestGravity
70 #undef CenterGravity
71 #undef EastGravity
72 #undef SouthWestGravity
73 #undef SouthGravity
74 #undef SouthEastGravity
75 #undef StaticGravity
76 #endif
77 
78 typedef enum
79 {
92 } GravityType;
93 
94 typedef struct _AffineMatrix
95 {
96  double
97  sx,
98  rx,
99  ry,
100  sy,
101  tx,
102  ty;
103 } AffineMatrix;
104 
105 typedef struct _GeometryInfo
106 {
107  double
108  rho,
109  sigma,
110  xi,
111  psi,
112  chi;
113 } GeometryInfo;
114 
115 typedef struct _OffsetInfo
116 {
117  ssize_t
118  x,
119  y;
120 } OffsetInfo;
121 
122 typedef struct _RectangleInfo
123 {
124  size_t
126  height;
127 
128  ssize_t
129  x,
130  y;
131 } RectangleInfo;
132 
133 extern MagickExport char
134  *GetPageGeometry(const char *);
135 
137  IsGeometry(const char *),
138  IsSceneGeometry(const char *,const MagickBooleanType);
139 
141  GetGeometry(const char *,ssize_t *,ssize_t *,size_t *,size_t *),
142  ParseAbsoluteGeometry(const char *,RectangleInfo *),
144  ParseGeometry(const char *,GeometryInfo *),
145  ParseGravityGeometry(const Image *,const char *,RectangleInfo *,
146  ExceptionInfo *),
147  ParseMetaGeometry(const char *,ssize_t *,ssize_t *,size_t *,size_t *),
148  ParsePageGeometry(const Image *,const char *,RectangleInfo *,ExceptionInfo *),
149  ParseRegionGeometry(const Image *,const char *,RectangleInfo *,
150  ExceptionInfo *);
151 
152 extern MagickExport void
153  GravityAdjustGeometry(const size_t,const size_t,const GravityType,
154  RectangleInfo *),
155  SetGeometry(const Image *,RectangleInfo *),
157 
158 #if defined(__cplusplus) || defined(c_plusplus)
159 }
160 #endif
161 
162 #endif
Definition: geometry.h:83
Definition: geometry.h:44
Definition: geometry.h:49
MagickExport MagickStatusType ParseGravityGeometry(const Image *, const char *, RectangleInfo *, ExceptionInfo *)
double rx
Definition: geometry.h:97
Definition: geometry.h:51
Definition: geometry.h:45
ssize_t y
Definition: geometry.h:118
Definition: geometry.h:88
double ty
Definition: geometry.h:97
MagickExport MagickStatusType ParseAffineGeometry(const char *, AffineMatrix *, ExceptionInfo *)
Definition: geometry.h:89
Definition: geometry.h:58
Definition: exception.h:102
Definition: geometry.h:80
Definition: geometry.h:94
MagickExport void SetGeometry(const Image *, RectangleInfo *)
Definition: geometry.h:86
struct _RectangleInfo RectangleInfo
MagickExport MagickStatusType GetGeometry(const char *, ssize_t *, ssize_t *, size_t *, size_t *)
size_t width
Definition: geometry.h:125
Definition: image.h:152
double tx
Definition: geometry.h:97
Definition: geometry.h:55
Definition: geometry.h:115
MagickExport MagickStatusType ParseGeometry(const char *, GeometryInfo *)
Definition: geometry.h:50
Definition: geometry.h:31
MagickBooleanType
Definition: magick-type.h:189
unsigned int MagickStatusType
Definition: magick-type.h:125
Definition: geometry.h:61
MagickExport MagickStatusType ParsePageGeometry(const Image *, const char *, RectangleInfo *, ExceptionInfo *)
Definition: geometry.h:47
Definition: geometry.h:82
MagickExport MagickBooleanType IsSceneGeometry(const char *, const MagickBooleanType)
Definition: geometry.c:654
Definition: geometry.h:53
double ry
Definition: geometry.h:97
Definition: geometry.h:28
Definition: geometry.h:57
Definition: geometry.h:59
MagickExport MagickBooleanType IsGeometry(const char *)
double sx
Definition: geometry.h:97
GravityType
Definition: geometry.h:78
Definition: geometry.h:41
Definition: geometry.h:42
Definition: geometry.h:122
Definition: geometry.h:87
MagickExport MagickStatusType ParseMetaGeometry(const char *, ssize_t *, ssize_t *, size_t *, size_t *)
Definition: geometry.h:85
MagickExport MagickStatusType ParseRegionGeometry(const Image *, const char *, RectangleInfo *, ExceptionInfo *)
Definition: geometry.c:1604
GeometryFlags
Definition: geometry.h:25
Definition: geometry.h:37
double sy
Definition: geometry.h:97
MagickExport void GravityAdjustGeometry(const size_t, const size_t, const GravityType, RectangleInfo *)
double xi
Definition: geometry.h:108
Definition: geometry.h:40
Definition: geometry.h:105
Definition: geometry.h:39
Definition: geometry.h:56
Definition: geometry.h:48
struct _AffineMatrix AffineMatrix
Definition: geometry.h:34
MagickExport char * GetPageGeometry(const char *)
Definition: geometry.c:363
MagickExport void SetGeometryInfo(GeometryInfo *)
Definition: geometry.c:1677
Definition: geometry.h:90
struct _OffsetInfo OffsetInfo
#define MagickExport
Definition: method-attribute.h:98
ssize_t y
Definition: geometry.h:129
Definition: geometry.h:84
MagickExport MagickStatusType ParseAbsoluteGeometry(const char *, RectangleInfo *)
Definition: geometry.h:33
Definition: geometry.h:52
Definition: geometry.h:91
Definition: geometry.h:54
struct _GeometryInfo GeometryInfo
Definition: geometry.h:36
Definition: geometry.h:81
Definition: geometry.h:30