MagickCore 6.9.11-60
Convert, Edit, Or Compose Bitmap Images
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)
22extern "C" {
23#endif
24
25typedef 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#undef StaticGravity
77#endif
78
79typedef enum
80{
92 StaticGravity = 10
94
95typedef struct _AffineMatrix
96{
97 double
105
106typedef struct _GeometryInfo
107{
108 double
115
116typedef struct _OffsetInfo
117{
118 ssize_t
122
123typedef struct _RectangleInfo
124{
125 size_t
128
129 ssize_t
133
134extern MagickExport char
135 *GetPageGeometry(const char *);
136
138 IsGeometry(const char *),
139 IsSceneGeometry(const char *,const MagickBooleanType);
140
142 GetGeometry(const char *,ssize_t *,ssize_t *,size_t *,size_t *),
147 ExceptionInfo *),
148 ParseMetaGeometry(const char *,ssize_t *,ssize_t *,size_t *,size_t *),
150 ParseRegionGeometry(const Image *,const char *,RectangleInfo *,
151 ExceptionInfo *);
152
153extern MagickExport void
154 GravityAdjustGeometry(const size_t,const size_t,const GravityType,
155 RectangleInfo *),
158
159#if defined(__cplusplus) || defined(c_plusplus)
160}
161#endif
162
163#endif
MagickExport void SetGeometryInfo(GeometryInfo *)
Definition geometry.c:1719
MagickExport MagickStatusType ParseGravityGeometry(const Image *, const char *, RectangleInfo *, ExceptionInfo *)
MagickExport MagickStatusType ParseAffineGeometry(const char *, AffineMatrix *, ExceptionInfo *)
struct _GeometryInfo GeometryInfo
GeometryFlags
Definition geometry.h:26
@ CorrelateNormalizeValue
Definition geometry.h:55
@ ChiNegative
Definition geometry.h:48
@ XNegative
Definition geometry.h:44
@ RhoValue
Definition geometry.h:37
@ PercentValue
Definition geometry.h:49
@ ChiValue
Definition geometry.h:41
@ NoValue
Definition geometry.h:28
@ XValue
Definition geometry.h:30
@ WidthValue
Definition geometry.h:36
@ YNegative
Definition geometry.h:47
@ NormalizeValue
Definition geometry.h:51
@ YValue
Definition geometry.h:33
@ XiNegative
Definition geometry.h:42
@ HeightValue
Definition geometry.h:39
@ LessValue
Definition geometry.h:52
@ PsiNegative
Definition geometry.h:45
@ AreaValue
Definition geometry.h:56
@ AlphaValue
Definition geometry.h:60
@ SeparatorValue
Definition geometry.h:58
@ AspectValue
Definition geometry.h:50
@ XiValue
Definition geometry.h:31
@ MinimumValue
Definition geometry.h:54
@ GreaterValue
Definition geometry.h:53
@ AllValues
Definition geometry.h:62
@ DecimalValue
Definition geometry.h:57
@ AspectRatioValue
Definition geometry.h:59
@ PsiValue
Definition geometry.h:34
@ SigmaValue
Definition geometry.h:40
MagickExport MagickStatusType ParseRegionGeometry(const Image *, const char *, RectangleInfo *, ExceptionInfo *)
Definition geometry.c:1646
MagickExport void SetGeometry(const Image *, RectangleInfo *)
MagickExport MagickStatusType ParseAbsoluteGeometry(const char *, RectangleInfo *)
MagickExport MagickBooleanType IsGeometry(const char *)
MagickExport MagickStatusType ParsePageGeometry(const Image *, const char *, RectangleInfo *, ExceptionInfo *)
MagickExport MagickStatusType GetGeometry(const char *, ssize_t *, ssize_t *, size_t *, size_t *)
MagickExport void GravityAdjustGeometry(const size_t, const size_t, const GravityType, RectangleInfo *)
struct _OffsetInfo OffsetInfo
struct _RectangleInfo RectangleInfo
MagickExport MagickStatusType ParseGeometry(const char *, GeometryInfo *)
struct _AffineMatrix AffineMatrix
MagickExport char * GetPageGeometry(const char *)
Definition geometry.c:368
MagickExport MagickBooleanType IsSceneGeometry(const char *, const MagickBooleanType)
Definition geometry.c:661
MagickExport MagickStatusType ParseMetaGeometry(const char *, ssize_t *, ssize_t *, size_t *, size_t *)
GravityType
Definition geometry.h:80
@ NorthWestGravity
Definition geometry.h:83
@ CenterGravity
Definition geometry.h:87
@ SouthGravity
Definition geometry.h:90
@ StaticGravity
Definition geometry.h:92
@ NorthGravity
Definition geometry.h:84
@ ForgetGravity
Definition geometry.h:82
@ NorthEastGravity
Definition geometry.h:85
@ SouthEastGravity
Definition geometry.h:91
@ WestGravity
Definition geometry.h:86
@ SouthWestGravity
Definition geometry.h:89
@ UndefinedGravity
Definition geometry.h:81
@ EastGravity
Definition geometry.h:88
unsigned int MagickStatusType
Definition magick-type.h:131
MagickBooleanType
Definition magick-type.h:203
#define MagickExport
Definition method-attribute.h:80
Definition geometry.h:96
double sy
Definition geometry.h:101
double ty
Definition geometry.h:103
double rx
Definition geometry.h:99
double tx
Definition geometry.h:102
double ry
Definition geometry.h:100
double sx
Definition geometry.h:98
Definition exception.h:103
Definition geometry.h:107
double rho
Definition geometry.h:109
double sigma
Definition geometry.h:110
double chi
Definition geometry.h:113
double xi
Definition geometry.h:111
double psi
Definition geometry.h:112
Definition image.h:153
Definition geometry.h:117
ssize_t y
Definition geometry.h:120
ssize_t x
Definition geometry.h:119
Definition geometry.h:124
size_t width
Definition geometry.h:126
ssize_t x
Definition geometry.h:130
size_t height
Definition geometry.h:127
ssize_t y
Definition geometry.h:131