MagickCore  7.0.7
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 #undef AllValues
60  AllValues = 0x7fffffff
62 
63 #if defined(ForgetGravity)
64 #undef ForgetGravity
65 #undef NorthWestGravity
66 #undef NorthGravity
67 #undef NorthEastGravity
68 #undef WestGravity
69 #undef CenterGravity
70 #undef EastGravity
71 #undef SouthWestGravity
72 #undef SouthGravity
73 #undef SouthEastGravity
74 #endif
75 
76 typedef enum
77 {
89 } GravityType;
90 
91 typedef struct _AffineMatrix
92 {
93  double
94  sx,
95  rx,
96  ry,
97  sy,
98  tx,
99  ty;
100 } AffineMatrix;
101 
102 typedef struct _GeometryInfo
103 {
104  double
105  rho,
106  sigma,
107  xi,
108  psi,
109  chi;
110 } GeometryInfo;
111 
112 typedef struct _OffsetInfo
113 {
114  ssize_t
115  x,
116  y;
117 } OffsetInfo;
118 
119 typedef struct _PointInfo
120 {
121  double
122  x,
123  y;
124 } PointInfo;
125 
126 typedef struct _RectangleInfo
127 {
128  size_t
130  height;
131 
132  ssize_t
133  x,
134  y;
135 } RectangleInfo;
136 
137 extern MagickExport char
138  *GetPageGeometry(const char *);
139 
141  IsGeometry(const char *),
142  IsSceneGeometry(const char *,const MagickBooleanType);
143 
145  GetGeometry(const char *,ssize_t *,ssize_t *,size_t *,size_t *),
146  ParseAbsoluteGeometry(const char *,RectangleInfo *),
148  ParseGeometry(const char *,GeometryInfo *),
149  ParseGravityGeometry(const Image *,const char *,RectangleInfo *,
150  ExceptionInfo *),
151  ParseMetaGeometry(const char *,ssize_t *,ssize_t *,size_t *,size_t *),
152  ParsePageGeometry(const Image *,const char *,RectangleInfo *,ExceptionInfo *),
153  ParseRegionGeometry(const Image *,const char *,RectangleInfo *,
154  ExceptionInfo *);
155 
156 extern MagickExport void
157  GravityAdjustGeometry(const size_t,const size_t,const GravityType,
158  RectangleInfo *),
159  SetGeometry(const Image *,RectangleInfo *),
161 
162 #if defined(__cplusplus) || defined(c_plusplus)
163 }
164 #endif
165 
166 #endif
MagickExport MagickStatusType ParseGravityGeometry(const Image *, const char *, RectangleInfo *, ExceptionInfo *)
double rx
Definition: geometry.h:94
ssize_t y
Definition: geometry.h:115
double ty
Definition: geometry.h:94
MagickExport MagickStatusType ParseAffineGeometry(const char *, AffineMatrix *, ExceptionInfo *)
MagickExport void SetGeometry(const Image *, RectangleInfo *)
struct _RectangleInfo RectangleInfo
MagickExport MagickStatusType GetGeometry(const char *, ssize_t *, ssize_t *, size_t *, size_t *)
size_t width
Definition: geometry.h:129
Definition: image.h:151
double tx
Definition: geometry.h:94
MagickExport MagickStatusType ParseGeometry(const char *, GeometryInfo *)
MagickBooleanType
Definition: magick-type.h:156
unsigned int MagickStatusType
Definition: magick-type.h:119
MagickExport MagickStatusType ParsePageGeometry(const Image *, const char *, RectangleInfo *, ExceptionInfo *)
double y
Definition: geometry.h:122
MagickExport MagickBooleanType IsSceneGeometry(const char *, const MagickBooleanType)
Definition: geometry.c:634
double ry
Definition: geometry.h:94
MagickExport MagickBooleanType IsGeometry(const char *)
double sx
Definition: geometry.h:94
GravityType
Definition: geometry.h:76
MagickExport MagickStatusType ParseMetaGeometry(const char *, ssize_t *, ssize_t *, size_t *, size_t *)
MagickExport MagickStatusType ParseRegionGeometry(const Image *, const char *, RectangleInfo *, ExceptionInfo *)
Definition: geometry.c:1532
GeometryFlags
Definition: geometry.h:25
double sy
Definition: geometry.h:94
MagickExport void GravityAdjustGeometry(const size_t, const size_t, const GravityType, RectangleInfo *)
struct _PointInfo PointInfo
double xi
Definition: geometry.h:105
struct _AffineMatrix AffineMatrix
MagickExport char * GetPageGeometry(const char *)
Definition: geometry.c:349
MagickExport void SetGeometryInfo(GeometryInfo *)
Definition: geometry.c:1605
struct _OffsetInfo OffsetInfo
#define MagickExport
ssize_t y
Definition: geometry.h:133
MagickExport MagickStatusType ParseAbsoluteGeometry(const char *, RectangleInfo *)
struct _GeometryInfo GeometryInfo