xref: /imagick/ImagickDraw.stub.php (revision 940e9b16)
1<?php
2
3/** @generate-function-entries */
4class ImagickDraw
5{
6#if MagickLibVersion > 0x628
7    public function resetVectorGraphics(): bool {}
8#endif
9#if MagickLibVersion > 0x649
10    public function getTextKerning(): float {}
11    public function setTextKerning(float $kerning): bool {}
12    public function getTextInterwordSpacing(): float {}
13
14    public function setTextInterwordSpacing(float $spacing): bool {}
15#endif
16#if MagickLibVersion > 0x655
17    public function getTextInterlineSpacing(): float {}
18    public function setTextInterlineSpacing(float $spacing): bool {}
19#endif
20
21    public function __construct() {}
22
23    public function setFillColor(ImagickPixel|string $fill_color): bool {}
24
25    public function setFillAlpha(float $alpha): bool {}
26
27    public function setResolution(float $resolution_x, float $resolution_y): bool {}
28
29    public function setStrokeColor(ImagickPixel|string $color): bool {}
30
31    public function setStrokeAlpha(float $alpha): bool {}
32
33    public function setStrokeWidth(float $width): bool {}
34
35    public function clear(): bool {}
36
37    public function circle(
38        float $origin_x,
39        float $origin_y,
40        float $perimeter_x,
41        float $perimeter_y
42    ): bool {}
43
44    public function annotation(float $x, float $y, string $text): bool {}
45
46    public function setTextAntialias(bool $antialias): bool {}
47
48    public function setTextEncoding(string $encoding): bool {}
49
50    public function setFont(string $font_name): bool {}
51
52    public function setFontFamily(string $font_family): bool {}
53
54    public function setFontSize(float $point_size): bool {}
55
56    // STYLE_*
57    public function setFontStyle(int $style): bool {}
58
59    /**
60     * @param int $weight font weight (valid range 100-900)
61     * @return bool
62     */
63    public function setFontWeight(int $weight): bool {}
64
65    public function getFont(): string {}
66
67    public function getFontFamily(): string {}
68
69    public function getFontSize(): float {}
70
71    public function getFontStyle(): int {}
72
73    public function getFontWeight(): int {}
74
75    /** @alias ImagickDraw::clear */
76    public function destroy(): bool {}
77
78    public function rectangle(float $top_left_x, float $top_left_y, float $bottom_right_x, float $bottom_right_y): bool {}
79
80    public function roundRectangle(float $top_left_x, float $top_left_y, float $bottom_right_x, float $bottom_right_y, float $rounding_x, float $rounding_y): bool {}
81
82
83    //ox
84    //origin x ordinate
85    //oy
86    //origin y ordinate
87    //rx
88    //radius in x
89    //ry
90    //radius in y
91    //start
92    //starting rotation in degrees
93    //end
94    //ending rotation in degrees
95
96    public function ellipse(float $origin_x, float $origin_y, float $radius_x, float $radius_y, float $angle_start, float $angle_end): bool {}
97
98    public function skewX(float $degrees): bool {}
99
100    public function skewY(float $degrees): bool {}
101
102    public function translate(float $x, float $y): bool {}
103
104    public function line(float $start_x, float $start_y, float $end_x, float $end_y): bool {}
105
106
107//sx
108//starting x ordinate of bounding rectangle
109//sy
110//starting y ordinate of bounding rectangle
111//ex
112//ending x ordinate of bounding rectangle
113//ey
114//ending y ordinate of bounding rectangle
115//sd
116//starting degrees of rotation
117//ed
118//ending degrees of rotation
119
120    public function arc(
121        float $start_x,
122        float $start_y,
123        float $end_x,
124        float $end_y,
125        float $start_angle,
126        float $end_angle
127    ): bool {}
128
129#if MagickLibVersion >= 0x700
130	// PAINT_*
131    public function alpha(float $x, float $y, int $paint): bool {}
132#else
133    /** @deprecated */
134	// PAINT_*
135    public function matte(float $x, float $y, int $paint): bool {}
136#endif
137
138    public function polygon(array $coordinates): bool {}
139
140    public function point(float $x, float $y): bool {}
141
142    public function getTextDecoration(): int {}
143
144    public function getTextEncoding(): string {}
145
146    public function getFontStretch(): int {}
147
148    //  STRETCH_* font_stretch
149    public function setFontStretch(int $stretch): bool {}
150
151    public function setStrokeAntialias(bool $enabled): bool {}
152
153    // ALIGN_*
154    public function setTextAlignment(int $align): bool {}
155
156    // DECORATION_*
157    public function setTextDecoration(int $decoration): bool {}
158
159    public function setTextUnderColor(ImagickPixel|string $under_color): bool {}
160
161    public function setViewbox(int $left_x, int $top_y, int $right_x, int $bottom_y): bool {}
162
163    public function clone(): ImagickDraw {}
164
165    public function affine(array $affine): bool {}
166
167    public function bezier(array $coordinates): bool {}
168
169    // COMPOSITE_*
170    public function composite(
171        int $composite,
172        float $x,
173        float $y,
174        float $width,
175        float $height,
176        Imagick $image
177    ): bool {}
178
179    // PAINT_*
180    public function color(float $x, float $y, int $paint): bool {}
181
182    public function comment(string $comment): bool {}
183
184    public function getClipPath(): string {}
185
186    public function getClipRule(): int {}
187
188    public function getClipUnits(): int {}
189
190    public function getFillColor(): ImagickPixel {}
191
192    public function getFillOpacity(): float {}
193
194    public function getFillRule(): int {}
195
196    public function getGravity(): int {}
197
198    public function getStrokeAntialias(): bool {}
199
200    public function getStrokeColor(): ImagickPixel {}
201
202    public function getStrokeDashArray(): array {}
203
204    public function getStrokeDashOffset(): float {}
205
206    public function getStrokeLineCap(): int {}
207
208    public function getStrokeLineJoin(): int {}
209
210    public function getStrokeMiterLimit(): int {}
211
212    public function getStrokeOpacity(): float {}
213
214    public function getStrokeWidth(): float {}
215
216    public function getTextAlignment(): int {}
217
218    public function getTextAntialias(): bool {}
219
220    public function getVectorGraphics(): string {}
221
222    public function getTextUnderColor(): ImagickPixel {}
223
224    public function pathClose(): bool {}
225
226    // We use the following scheme for naming:
227    // * control points are numbered e.g. x1
228    // * end points are not numbered. e.g. x
229    //
230    // This makes the functions that have control points match those which
231    // don't have control points.
232
233//x1
234//x ordinate of control point for curve beginning
235//y1
236//y ordinate of control point for curve beginning
237//x2
238//x ordinate of control point for curve ending
239//y2
240//y ordinate of control point for curve ending
241//x
242//x ordinate of the end of the curve
243//y
244//y ordinate of the end of the curve
245    public function pathCurveToAbsolute(float $x1, float $y1, float $x2, float $y2, float $x, float $y): bool {}
246
247    public function pathCurveToRelative(float $x1, float $y1, float $x2, float $y2, float $x, float $y): bool {}
248
249    public function pathCurveToQuadraticBezierAbsolute(float $x1, float $y1, float $x_end, float $y): bool {}
250
251    public function pathCurveToQuadraticBezierRelative(float $x1, float $y1, float $x_end, float $y): bool {}
252
253    // TODO - should these be $x_end, float $y_end to be consistent?
254    // Or should the $x_end be $x above.
255    public function pathCurveToQuadraticBezierSmoothAbsolute(float $x, float $y): bool {}
256
257    // TODO - should these be $x_end, float $y_end to be consistent
258    public function pathCurveToQuadraticBezierSmoothRelative(float $x, float $y): bool {}
259
260    public function pathCurveToSmoothAbsolute(float $x2, float $y2, float $x, float $y): bool {}
261
262    public function pathCurveToSmoothRelative(float $x2, float $y2, float $x, float $y): bool {}
263
264    // rx x radius
265    // ry y radius
266    // x_axis_rotation	indicates how the ellipse as a whole is rotated relative to the current coordinate system
267    // large_arc If non-zero (true) then draw the larger of the available arcs
268    // sweep If non-zero (true) then draw the arc matching a clock-wise rotation
269    public function pathEllipticArcAbsolute(
270        float $rx,
271        float $ry,
272        float $x_axis_rotation,
273        bool $large_arc,
274        bool $sweep,
275        float $x, float $y
276    ): bool {}
277
278    public function pathEllipticArcRelative(
279        float $rx,
280        float $ry,
281        float $x_axis_rotation,
282        bool $large_arc,
283        bool $sweep,
284        float $x,
285        float $y
286    ): bool {}
287
288    public function pathFinish(): bool {}
289
290    public function pathLineToAbsolute(float $x, float $y): bool {}
291
292    public function pathLineToRelative(float $x, float $y): bool {}
293
294    public function pathLineToHorizontalAbsolute(float $x): bool {}
295
296    public function pathLineToHorizontalRelative(float $x): bool {}
297
298    public function pathLineToVerticalAbsolute(float $y): bool {}
299
300    public function pathLineToVerticalRelative(float $y): bool {}
301
302    public function pathMoveToAbsolute(float $x, float $y): bool {}
303
304    public function pathMoveToRelative(float $x, float $y): bool {}
305
306    public function pathStart(): bool {}
307
308    public function polyline(array $coordinates): bool {}
309
310    public function popClipPath(): bool {}
311
312    public function popDefs(): bool {}
313
314    public function popPattern(): bool {}
315
316    public function pushClipPath(string $clip_mask_id): bool {}
317
318    public function pushDefs(): bool {}
319
320    public function pushPattern(
321        string $pattern_id,
322        float $x,
323        float $y,
324        float $width,
325        float $height
326    ): bool {}
327
328    public function render(): bool {}
329
330    public function rotate(float $degrees): bool {}
331
332    public function scale(float $x, float $y): bool {}
333
334    public function setClipPath(string $clip_mask): bool {}
335
336    // FILLRULE_*
337    public function setClipRule(int $fillrule): bool {}
338
339    // PATHUNITS_* uh, this is unfortunate. The ImageMagick constant
340	// is call ClipPathUnits. The constant dropped the 'clip' and the
341	// method call dropped the 'path'. _Maybe_ add a setClipPathUnits
342	// method, and deprecate this one. Or just ignore the issue.
343    public function setClipUnits(int $pathunits): bool {}
344
345    public function setFillOpacity(float $opacity): bool {}
346
347    public function setFillPatternUrl(string $fill_url): bool {}
348
349    // FILLRULE_*
350    public function setFillRule(int $fillrule): bool {}
351
352    // GRAVITY_*
353    public function setGravity(int $gravity): bool {}
354
355    public function setStrokePatternUrl(string $stroke_url): bool {}
356
357    public function setStrokeDashOffset(float $dash_offset): bool {}
358
359    // LINECAP_*
360    public function setStrokeLineCap(int $linecap): bool {}
361
362    // LINEJOIN_*
363    public function setStrokeLineJoin(int $linejoin): bool {}
364
365    // The miterLimit' imposes a limit on the ratio of the miter length to the 'lineWidth'.
366    public function setStrokeMiterLimit(int $miterlimit): bool {}
367
368    // range 0-1
369    public function setStrokeOpacity(float $opacity): bool {}
370
371    public function setVectorGraphics(string $xml): bool {}
372
373    public function pop(): bool {}
374
375    public function push(): bool {}
376
377    // A typical stroke dash array might contain the members 5 3 2.
378    public function setStrokeDashArray(array $dashes): bool {}
379
380#if MagickLibVersion >= 0x693
381    public function getOpacity(): float {}
382
383    // TODO - imply 0 to 1 range.
384    public function setOpacity(float $opacity): bool {}
385#endif
386
387#if MagickLibVersion >= 0x675
388    public function getFontResolution(): array {}
389
390    public function setFontResolution(float $x, float $y): bool {}
391
392    public function getBorderColor(): ImagickPixel {}
393
394    public function setBorderColor(ImagickPixel|string $color): bool {}
395#endif
396
397#if MagickLibVersion >= 0x693
398    public function setDensity(string $density): bool {}
399
400    public function getDensity(): ?string {}
401#endif
402
403#if MagickLibVersion >= 0x692
404    public function getTextDirection(): int {}
405
406    // DIRECTION_*
407    public function setTextDirection(int $direction): bool {}
408#endif
409}
410