MagickCore  6.8.9
geometry.h
Go to the documentation of this file.
1 /*
2  Copyright 1999-2014 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  http://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 #undef StaticGravity
75 #endif
76 
77 typedef enum
78 {
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 _RectangleInfo
122 {
123  size_t
125  height;
126 
127  ssize_t
128  x,
129  y;
130 } RectangleInfo;
131 
132 extern MagickExport char
133  *GetPageGeometry(const char *);
134 
136  IsGeometry(const char *),
137  IsSceneGeometry(const char *,const MagickBooleanType);
138 
140  GetGeometry(const char *,ssize_t *,ssize_t *,size_t *,size_t *),
141  ParseAbsoluteGeometry(const char *,RectangleInfo *),
143  ParseGeometry(const char *,GeometryInfo *),
144  ParseGravityGeometry(const Image *,const char *,RectangleInfo *,
145  ExceptionInfo *),
146  ParseMetaGeometry(const char *,ssize_t *,ssize_t *,size_t *,size_t *),
147  ParsePageGeometry(const Image *,const char *,RectangleInfo *,ExceptionInfo *),
148  ParseRegionGeometry(const Image *,const char *,RectangleInfo *,
149  ExceptionInfo *);
150 
151 extern MagickExport void
152  GravityAdjustGeometry(const size_t,const size_t,const GravityType,
153  RectangleInfo *),
154  SetGeometry(const Image *,RectangleInfo *),
156 
157 #if defined(__cplusplus) || defined(c_plusplus)
158 }
159 #endif
160 
161 #endif
double psi
Definition: geometry.h:107
Definition: geometry.h:82
Definition: geometry.h:44
Definition: geometry.h:49
MagickExport MagickStatusType ParseGravityGeometry(const Image *, const char *, RectangleInfo *, ExceptionInfo *)
double rx
Definition: geometry.h:96
Definition: geometry.h:51
Definition: geometry.h:45
ssize_t y
Definition: geometry.h:117
Definition: geometry.h:87
double ty
Definition: geometry.h:96
MagickExport MagickStatusType ParseAffineGeometry(const char *, AffineMatrix *, ExceptionInfo *)
Definition: geometry.h:88
Definition: geometry.h:58
double rho
Definition: geometry.h:107
Definition: exception.h:102
Definition: geometry.h:79
Definition: geometry.h:93
MagickExport void SetGeometry(const Image *, RectangleInfo *)
Definition: geometry.h:85
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:124
Definition: image.h:152
double tx
Definition: geometry.h:96
Definition: geometry.h:55
Definition: geometry.h:114
MagickExport MagickStatusType ParseGeometry(const char *, GeometryInfo *)
Definition: geometry.h:50
Definition: geometry.h:31
MagickBooleanType
Definition: magick-type.h:214
unsigned int MagickStatusType
Definition: magick-type.h:150
Definition: geometry.h:60
MagickExport MagickStatusType ParsePageGeometry(const Image *, const char *, RectangleInfo *, ExceptionInfo *)
Definition: geometry.h:47
Definition: geometry.h:81
MagickExport MagickBooleanType IsSceneGeometry(const char *, const MagickBooleanType)
Definition: geometry.c:610
Definition: geometry.h:53
double ry
Definition: geometry.h:96
Definition: geometry.h:28
Definition: geometry.h:57
MagickExport MagickBooleanType IsGeometry(const char *)
double sx
Definition: geometry.h:96
GravityType
Definition: geometry.h:77
Definition: geometry.h:41
Definition: geometry.h:42
ssize_t x
Definition: geometry.h:128
size_t height
Definition: geometry.h:124
Definition: geometry.h:121
Definition: geometry.h:86
MagickExport MagickStatusType ParseMetaGeometry(const char *, ssize_t *, ssize_t *, size_t *, size_t *)
Definition: geometry.h:84
MagickExport MagickStatusType ParseRegionGeometry(const Image *, const char *, RectangleInfo *, ExceptionInfo *)
Definition: geometry.c:1499
GeometryFlags
Definition: geometry.h:25
Definition: geometry.h:37
double sy
Definition: geometry.h:96
MagickExport void GravityAdjustGeometry(const size_t, const size_t, const GravityType, RectangleInfo *)
double chi
Definition: geometry.h:107
double xi
Definition: geometry.h:107
Definition: geometry.h:40
Definition: geometry.h:104
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:342
ssize_t x
Definition: geometry.h:117
MagickExport void SetGeometryInfo(GeometryInfo *)
Definition: geometry.c:1572
Definition: geometry.h:89
struct _OffsetInfo OffsetInfo
#define MagickExport
Definition: method-attribute.h:98
ssize_t y
Definition: geometry.h:128
Definition: geometry.h:83
MagickExport MagickStatusType ParseAbsoluteGeometry(const char *, RectangleInfo *)
Definition: geometry.h:33
Definition: geometry.h:52
Definition: geometry.h:90
Definition: geometry.h:54
struct _GeometryInfo GeometryInfo
Definition: geometry.h:36
Definition: geometry.h:80
Definition: geometry.h:30