MagickCore  7.0.11
geometry.h
Go to the documentation of this file.
1 /*
2  Copyright 1999-2021 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. You may
6  obtain a copy of the License at
7 
8  https://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  AlphaValue = 0x200000, /* '/' alpha */
61 #undef AllValues
62  AllValues = 0x7fffffff
64 
65 #if defined(ForgetGravity)
66 #undef ForgetGravity
67 #undef NorthWestGravity
68 #undef NorthGravity
69 #undef NorthEastGravity
70 #undef WestGravity
71 #undef CenterGravity
72 #undef EastGravity
73 #undef SouthWestGravity
74 #undef SouthGravity
75 #undef SouthEastGravity
76 #endif
77 
78 typedef enum
79 {
91 } GravityType;
92 
93 typedef struct _AffineMatrix
94 {
95  double
96  sx,
97  rx,
98  ry,
99  sy,
100  tx,
101  ty;
102 } AffineMatrix;
103 
104 typedef struct _GeometryInfo
105 {
106  double
108  sigma,
109  xi,
110  psi,
111  chi;
112 } GeometryInfo;
113 
114 typedef struct _OffsetInfo
115 {
116  ssize_t
117  x,
118  y;
119 } OffsetInfo;
120 
121 typedef struct _PointInfo
122 {
123  double
124  x,
125  y;
126 } PointInfo;
127 
128 typedef struct _RectangleInfo
129 {
130  size_t
132  height;
133 
134  ssize_t
135  x,
136  y;
137 } RectangleInfo;
138 
139 extern MagickExport char
140  *GetPageGeometry(const char *);
141 
143  IsGeometry(const char *),
144  IsSceneGeometry(const char *,const MagickBooleanType);
145 
147  GetGeometry(const char *,ssize_t *,ssize_t *,size_t *,size_t *),
148  ParseAbsoluteGeometry(const char *,RectangleInfo *),
150  ParseGeometry(const char *,GeometryInfo *),
151  ParseGravityGeometry(const Image *,const char *,RectangleInfo *,
152  ExceptionInfo *),
153  ParseMetaGeometry(const char *,ssize_t *,ssize_t *,size_t *,size_t *),
154  ParsePageGeometry(const Image *,const char *,RectangleInfo *,ExceptionInfo *),
155  ParseRegionGeometry(const Image *,const char *,RectangleInfo *,
156  ExceptionInfo *);
157 
158 extern MagickExport void
159  GravityAdjustGeometry(const size_t,const size_t,const GravityType,
160  RectangleInfo *),
161  SetGeometry(const Image *,RectangleInfo *),
163 
164 #if defined(__cplusplus) || defined(c_plusplus)
165 }
166 #endif
167 
168 #endif
double psi
Definition: geometry.h:107
MagickExport MagickStatusType ParseGravityGeometry(const Image *, const char *, RectangleInfo *, ExceptionInfo *)
double rx
Definition: geometry.h:96
ssize_t y
Definition: geometry.h:117
double ty
Definition: geometry.h:96
MagickExport MagickStatusType ParseAffineGeometry(const char *, AffineMatrix *, ExceptionInfo *)
double rho
Definition: geometry.h:107
MagickExport void SetGeometry(const Image *, RectangleInfo *)
struct _RectangleInfo RectangleInfo
MagickExport MagickStatusType GetGeometry(const char *, ssize_t *, ssize_t *, size_t *, size_t *)
double sigma
Definition: geometry.h:107
size_t width
Definition: geometry.h:131
Definition: image.h:151
double tx
Definition: geometry.h:96
double x
Definition: geometry.h:124
MagickExport MagickStatusType ParseGeometry(const char *, GeometryInfo *)
MagickBooleanType
Definition: magick-type.h:169
unsigned int MagickStatusType
Definition: magick-type.h:125
MagickExport MagickStatusType ParsePageGeometry(const Image *, const char *, RectangleInfo *, ExceptionInfo *)
double y
Definition: geometry.h:124
MagickExport MagickBooleanType IsSceneGeometry(const char *, const MagickBooleanType)
Definition: geometry.c:653
double ry
Definition: geometry.h:96
MagickExport MagickBooleanType IsGeometry(const char *)
double sx
Definition: geometry.h:96
GravityType
Definition: geometry.h:78
ssize_t x
Definition: geometry.h:135
size_t height
Definition: geometry.h:131
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:1657
GeometryFlags
Definition: geometry.h:25
double sy
Definition: geometry.h:96
MagickExport void GravityAdjustGeometry(const size_t, const size_t, const GravityType, RectangleInfo *)
struct _PointInfo PointInfo
double chi
Definition: geometry.h:107
double xi
Definition: geometry.h:107
struct _AffineMatrix AffineMatrix
MagickExport char * GetPageGeometry(const char *)
Definition: geometry.c:362
ssize_t x
Definition: geometry.h:117
MagickExport void SetGeometryInfo(GeometryInfo *)
Definition: geometry.c:1730
struct _OffsetInfo OffsetInfo
#define MagickExport
ssize_t y
Definition: geometry.h:135
MagickExport MagickStatusType ParseAbsoluteGeometry(const char *, RectangleInfo *)
struct _GeometryInfo GeometryInfo