1 /*
2 +----------------------------------------------------------------------+
3 | PHP Version 5 / Imagick |
4 +----------------------------------------------------------------------+
5 | Copyright (c) 2006-2013 Mikko Koppanen, Scott MacVicar |
6 | ImageMagick (c) ImageMagick Studio LLC |
7 +----------------------------------------------------------------------+
8 | This source file is subject to version 3.01 of the PHP license, |
9 | that is bundled with this package in the file LICENSE, and is |
10 | available through the world-wide-web at the following url: |
11 | http://www.php.net/license/3_01.txt |
12 | If you did not receive a copy of the PHP license and are unable to |
13 | obtain it through the world-wide-web, please send a note to |
14 | license@php.net so we can mail you a copy immediately. |
15 +----------------------------------------------------------------------+
16 | Author: Mikko Kopppanen <mkoppanen@php.net> |
17 | Scott MacVicar <scottmac@php.net> |
18 +----------------------------------------------------------------------+
19 */
20
21 #include "php_imagick.h"
22 #include "php_imagick_defs.h"
23 #include "php_imagick_macros.h"
24 #include "php_imagick_helpers.h"
25 #include "php_imagick_shared.h"
26
27 #if PHP_VERSION_ID >= 70000
28 #include "ext/standard/php_smart_string.h"
29 #else
30 #include "ext/standard/php_smart_str.h"
31 #endif
32
33 /* For the countable interface */
34 #include "ext/spl/spl_iterators.h"
35
36 #include "shim_php7_to_php8.h"
37
38 #if HAVE_OMP_PAUSE_RESOURCE_ALL
39 #include <omp.h>
40 #endif
41
42 ZEND_DECLARE_MODULE_GLOBALS(imagick)
43
44 #ifdef IMAGICK_WITH_KERNEL
45 #if PHP_VERSION_ID >= 80000
46 HashTable* php_imagickkernel_get_debug_info(zend_object *obj, int *is_temp TSRMLS_DC); /* {{{ */
47 #else
48 HashTable* php_imagickkernel_get_debug_info(zval *obj, int *is_temp TSRMLS_DC); /* {{{ */
49 #endif
50 #endif
51
52 #if MAGICKCORE_HDRI_ENABLE
53 #define IMAGICK_QUANTUM_TYPE IS_DOUBLE
54 #else
55 #define IMAGICK_QUANTUM_TYPE IS_LONG
56 #endif
57
58 zend_class_entry *php_imagick_sc_entry;
59 zend_class_entry *php_imagick_exception_class_entry;
60 zend_class_entry *php_imagickdraw_sc_entry;
61 zend_class_entry *php_imagickdraw_exception_class_entry;
62 zend_class_entry *php_imagickpixel_sc_entry;
63 zend_class_entry *php_imagickpixel_exception_class_entry;
64 zend_class_entry *php_imagickpixeliterator_sc_entry;
65 zend_class_entry *php_imagickpixeliterator_exception_class_entry;
66 #ifdef IMAGICK_WITH_KERNEL
67 zend_class_entry *php_imagickkernel_sc_entry;
68 zend_class_entry *php_imagickkernel_exception_class_entry;
69 #endif
70
71 #if defined(ZTS) && defined(PHP_WIN32)
72 static MUTEX_T imagick_mutex;
73 static THREAD_T imagick_thread_id;
74 #endif
75
76 /* Handlers */
77 static zend_object_handlers imagick_object_handlers;
78 static zend_object_handlers imagickdraw_object_handlers;
79 static zend_object_handlers imagickpixel_object_handlers;
80 static zend_object_handlers imagickpixeliterator_object_handlers;
81 #ifdef IMAGICK_WITH_KERNEL
82 static zend_object_handlers imagickkernel_object_handlers;
83 #endif
84
85 /* External API */
php_imagick_get_class_entry()86 PHP_IMAGICK_API zend_class_entry *php_imagick_get_class_entry()
87 {
88 return php_imagick_sc_entry;
89 }
90
91
92
php_imagickdraw_get_class_entry()93 PHP_IMAGICK_API zend_class_entry *php_imagickdraw_get_class_entry()
94 {
95 return php_imagickdraw_sc_entry;
96 }
97
php_imagickpixel_get_class_entry()98 PHP_IMAGICK_API zend_class_entry *php_imagickpixel_get_class_entry()
99 {
100 return php_imagickpixel_sc_entry;
101 }
102
103
104 ///* Imagick */
105 //#if MagickLibVersion > 0x628
106 // ZEND_BEGIN_ARG_INFO_EX(imagick_shadeimage_args, 0, 0, 3)
107 // ZEND_ARG_INFO(0, gray)
108 // ZEND_ARG_INFO(0, azimuth)
109 // ZEND_ARG_INFO(0, elevation)
110 // ZEND_END_ARG_INFO()
111 //
112 // ZEND_BEGIN_ARG_INFO_EX(imagick_setimagematte_args, 0, 0, 1)
113 // ZEND_ARG_INFO(0, enable)
114 // ZEND_END_ARG_INFO()
115 //
116 // ZEND_BEGIN_ARG_INFO_EX(imagick_sketchimage_args, 0, 0, 3)
117 // ZEND_ARG_INFO(0, radius)
118 // ZEND_ARG_INFO(0, sigma)
119 // ZEND_ARG_INFO(0, angle)
120 // ZEND_END_ARG_INFO()
121 //
122 // ZEND_BEGIN_ARG_INFO_EX(imagick_pingimageblob_args, 0, 0, 1)
123 // ZEND_ARG_INFO(0, imageContents)
124 // ZEND_END_ARG_INFO()
125 //
126 // ZEND_BEGIN_ARG_INFO_EX(imagick_pingimagefile_args, 0, 0, 1)
127 // ZEND_ARG_INFO(0, fp)
128 // ZEND_END_ARG_INFO()
129 //
130 // ZEND_BEGIN_ARG_INFO_EX(imagick_trimimage_args, 0, 0, 1)
131 // ZEND_ARG_INFO(0, fuzz)
132 // ZEND_END_ARG_INFO()
133 //
134 // ZEND_BEGIN_ARG_INFO_EX(imagick_waveimage_args, 0, 0, 2)
135 // ZEND_ARG_INFO(0, amplitude)
136 // ZEND_ARG_INFO(0, waveLenght)
137 // ZEND_END_ARG_INFO()
138 //
139 // ZEND_BEGIN_ARG_INFO_EX(imagick_vignetteimage_args, 0, 0, 4)
140 // ZEND_ARG_INFO(0, blackPoint)
141 // ZEND_ARG_INFO(0, whitePoint)
142 // ZEND_ARG_INFO(0, x)
143 // ZEND_ARG_INFO(0, y)
144 // ZEND_END_ARG_INFO()
145 //
146 // ZEND_BEGIN_ARG_INFO_EX(imagick_adaptiveresizeimage_args, 0, 0, 2)
147 // ZEND_ARG_INFO(0, columns)
148 // ZEND_ARG_INFO(0, rows)
149 // ZEND_ARG_INFO(0, bestfit)
150 // ZEND_ARG_INFO(0, legacy)
151 // ZEND_END_ARG_INFO()
152 //
153 // ZEND_BEGIN_ARG_INFO_EX(imagick_contraststretchimage_args, 0, 0, 2)
154 // ZEND_ARG_INFO(0, blackPoint)
155 // ZEND_ARG_INFO(0, whitePoint)
156 // ZEND_ARG_INFO(0, CHANNEL)
157 // ZEND_END_ARG_INFO()
158 //
159 // ZEND_BEGIN_ARG_INFO_EX(imagick_adaptiveblurimage_args, 0, 0, 2)
160 // ZEND_ARG_INFO(0, radius)
161 // ZEND_ARG_INFO(0, sigma)
162 // ZEND_ARG_INFO(0, CHANNEL)
163 // ZEND_END_ARG_INFO()
164 //
165 // ZEND_BEGIN_ARG_INFO_EX(imagick_adaptivesharpenimage_args, 0, 0, 2)
166 // ZEND_ARG_INFO(0, radius)
167 // ZEND_ARG_INFO(0, sigma)
168 // ZEND_ARG_INFO(0, CHANNEL)
169 // ZEND_END_ARG_INFO()
170 //
171 // ZEND_BEGIN_ARG_INFO_EX(imagick_setsizeoffset_args, 0, 0, 3)
172 // ZEND_ARG_INFO(0, columns)
173 // ZEND_ARG_INFO(0, rows)
174 // ZEND_ARG_INFO(0, offset)
175 // ZEND_END_ARG_INFO()
176 //
177 // ZEND_BEGIN_ARG_INFO_EX(imagick_randomthresholdimage_args, 0, 0, 2)
178 // ZEND_ARG_INFO(0, low)
179 // ZEND_ARG_INFO(0, high)
180 // ZEND_ARG_INFO(0, CHANNELTYPE)
181 // ZEND_END_ARG_INFO()
182 //
183 // ZEND_BEGIN_ARG_INFO_EX(imagick_compareimagelayers_args, 0, 0, 1)
184 // ZEND_ARG_INFO(0, LAYER)
185 // ZEND_END_ARG_INFO()
186 //
187 //#if MagickLibVersion < 0x700
188 // ZEND_BEGIN_ARG_INFO_EX(imagick_roundcornersimage_args, 0, 0, 2)
189 // ZEND_ARG_INFO(0, xRounding)
190 // ZEND_ARG_INFO(0, yRounding)
191 // ZEND_ARG_INFO(0, strokeWidth)
192 // ZEND_ARG_INFO(0, displace)
193 // ZEND_ARG_INFO(0, sizeCorrection)
194 // ZEND_END_ARG_INFO()
195 //#endif
196 //
197 // ZEND_BEGIN_ARG_INFO_EX(imagick_setiteratorindex_args, 0, 0, 1)
198 // ZEND_ARG_INFO(0, index)
199 // ZEND_END_ARG_INFO()
200 //
201 //#if MagickLibVersion < 0x700
202 // ZEND_BEGIN_ARG_INFO_EX(imagick_transformimage_args, 0, 0, 2)
203 // ZEND_ARG_INFO(0, crop)
204 // ZEND_ARG_INFO(0, geometry)
205 // ZEND_END_ARG_INFO()
206 //#endif
207 //#endif
208 //
209 //#if MagickLibVersion > 0x631
210 // ZEND_BEGIN_ARG_INFO_EX(imagick_polaroidimage_args, 0, 0, 2)
211 // ZEND_ARG_OBJ_INFO(0, ImagickDraw, ImagickDraw, 0)
212 // ZEND_ARG_INFO(0, angle)
213 // ZEND_END_ARG_INFO()
214 //
215 // ZEND_BEGIN_ARG_INFO_EX(imagick_getimageproperty_args, 0, 0, 1)
216 // ZEND_ARG_INFO(0, name)
217 // ZEND_END_ARG_INFO()
218 //
219 // ZEND_BEGIN_ARG_INFO_EX(imagick_setimageproperty_args, 0, 0, 2)
220 // ZEND_ARG_INFO(0, name)
221 // ZEND_ARG_INFO(0, value)
222 // ZEND_END_ARG_INFO()
223 //
224 // ZEND_BEGIN_ARG_INFO_EX(imagick_deleteimageproperty_args, 0, 0, 1)
225 // ZEND_ARG_INFO(0, name)
226 // ZEND_END_ARG_INFO()
227 //
228 // ZEND_BEGIN_ARG_INFO_EX(imagick_identifyformat_args, 0, 0, 1)
229 // ZEND_ARG_INFO(0, embedText)
230 // ZEND_END_ARG_INFO()
231 //
232 // ZEND_BEGIN_ARG_INFO_EX(imagick_setimageinterpolatemethod_args, 0, 0, 1)
233 // ZEND_ARG_INFO(0, INTERPOLATE)
234 // ZEND_END_ARG_INFO()
235 //
236 // ZEND_BEGIN_ARG_INFO_EX(imagick_linearstretchimage_args, 0, 0, 2)
237 // ZEND_ARG_INFO(0, blackPoint)
238 // ZEND_ARG_INFO(0, whitePoint)
239 // ZEND_END_ARG_INFO()
240 //
241 // ZEND_BEGIN_ARG_INFO_EX(imagick_extentimage_args, 0, 0, 4)
242 // ZEND_ARG_INFO(0, width)
243 // ZEND_ARG_INFO(0, height)
244 // ZEND_ARG_INFO(0, x)
245 // ZEND_ARG_INFO(0, y)
246 // ZEND_END_ARG_INFO()
247 //#endif
248 //
249 //#if MagickLibVersion > 0x633
250 // ZEND_BEGIN_ARG_INFO_EX(imagick_setimageorientation_args, 0, 0, 1)
251 // ZEND_ARG_INFO(0, ORIENTATION)
252 // ZEND_END_ARG_INFO()
253 //#endif
254 //
255 //#if MagickLibVersion > 0x634 && MagickLibVersion < 0x700
256 // ZEND_BEGIN_ARG_INFO_EX(imagick_paintfloodfillimage_args, 0, 0, 6)
257 // ZEND_ARG_INFO(0, CHANNEL)
258 // ZEND_ARG_INFO(0, fill)
259 // ZEND_ARG_INFO(0, fuzz)
260 // ZEND_ARG_INFO(0, bordercolor)
261 // ZEND_ARG_INFO(0, x)
262 // ZEND_ARG_INFO(0, y)
263 // ZEND_END_ARG_INFO()
264 //#endif
265 //
266 //#if MagickLibVersion > 0x630
267 //#if MagickLibVersion < 0x700
268 // ZEND_BEGIN_ARG_INFO_EX(imagick_setimageopacity_args, 0, 0, 1)
269 // ZEND_ARG_INFO(0, opacity)
270 // ZEND_END_ARG_INFO()
271 //#endif
272 //
273 //#if MagickLibVersion < 0x700
274 // ZEND_BEGIN_ARG_INFO_EX(imagick_orderedposterizeimage_args, 0, 0, 1)
275 // ZEND_ARG_INFO(0, threshold_map)
276 // ZEND_ARG_INFO(0, CHANNEL)
277 // ZEND_END_ARG_INFO()
278 //#endif
279 //#endif
280 //
281 //#if MagickLibVersion > 0x700
282 // ZEND_BEGIN_ARG_INFO_EX(imagick_setimagealpha_args, 0, 0, 1)
283 // ZEND_ARG_INFO(0, alpha)
284 // ZEND_END_ARG_INFO()
285 //#endif
286 //
287 //
288 //#if MagickLibVersion > 0x635
289 // ZEND_BEGIN_ARG_INFO_EX(imagick_clutimage_args, 0, 0, 1)
290 // ZEND_ARG_OBJ_INFO(0, Imagick, Imagick, 0)
291 // ZEND_ARG_INFO(0, CHANNELTYPE)
292 // ZEND_END_ARG_INFO()
293 //
294 // ZEND_BEGIN_ARG_INFO_EX(imagick_getimageproperties_args, 0, 0, 0)
295 // ZEND_ARG_INFO(0, pattern)
296 // ZEND_ARG_INFO(0, values)
297 // ZEND_END_ARG_INFO()
298 //
299 // ZEND_BEGIN_ARG_INFO_EX(imagick_getimageprofiles_args, 0, 0, 0)
300 // ZEND_ARG_INFO(0, pattern)
301 // ZEND_ARG_INFO(0, values)
302 // ZEND_END_ARG_INFO()
303 //#endif
304 //
305 //#if MagickLibVersion > 0x635
306 // ZEND_BEGIN_ARG_INFO_EX(imagick_distortimage_args, 0, 0, 3)
307 // ZEND_ARG_INFO(0, method)
308 // ZEND_ARG_INFO(0, arguments)
309 // ZEND_ARG_INFO(0, bestfit)
310 // ZEND_END_ARG_INFO()
311 //
312 // ZEND_BEGIN_ARG_INFO_EX(imagick_writeimagefile_args, 0, 0, 1)
313 // ZEND_ARG_INFO(0, handle)
314 // ZEND_ARG_INFO(0, format)
315 // ZEND_END_ARG_INFO()
316 //
317 // ZEND_BEGIN_ARG_INFO_EX(imagick_writeimagesfile_args, 0, 0, 1)
318 // ZEND_ARG_INFO(0, handle)
319 // ZEND_ARG_INFO(0, format)
320 // ZEND_END_ARG_INFO()
321 //
322 // ZEND_BEGIN_ARG_INFO_EX(imagick_resetimagepage_args, 0, 0, 1)
323 // ZEND_ARG_INFO(0, page)
324 // ZEND_END_ARG_INFO()
325 //
326 //#if MagickLibVersion < 0x700
327 // ZEND_BEGIN_ARG_INFO_EX(imagick_setimageclipmask_args, 0, 0, 1)
328 // ZEND_ARG_OBJ_INFO(0, Imagick, Imagick, 0)
329 // ZEND_END_ARG_INFO()
330 //#endif
331 //
332 // ZEND_BEGIN_ARG_INFO_EX(imagick_animateimages_args, 0, 0, 1)
333 // ZEND_ARG_INFO(0, server_name)
334 // ZEND_END_ARG_INFO()
335 //#if !defined(MAGICKCORE_EXCLUDE_DEPRECATED)
336 //#if MagickLibVersion < 0x700
337 // ZEND_BEGIN_ARG_INFO_EX(imagick_recolorimage_args, 0, 0, 1)
338 // ZEND_ARG_INFO(0, matrix)
339 // ZEND_END_ARG_INFO()
340 //#endif
341 //#endif
342 //#endif
343 //
344 //#if MagickLibVersion > 0x636
345 // ZEND_BEGIN_ARG_INFO_EX(imagick_setfont_args, 0, 0, 1)
346 // ZEND_ARG_INFO(0, font)
347 // ZEND_END_ARG_INFO()
348 //
349 // ZEND_BEGIN_ARG_INFO_EX(imagick_setpointsize_args, 0, 0, 1)
350 // ZEND_ARG_INFO(0, pointsize)
351 // ZEND_END_ARG_INFO()
352 //
353 // ZEND_BEGIN_ARG_INFO_EX(imagick_mergeimagelayers_args, 0, 0, 1)
354 // ZEND_ARG_INFO(0, LAYERMETHOD)
355 // ZEND_END_ARG_INFO()
356 //#endif
357 //
358 //#if MagickLibVersion > 0x637
359 // ZEND_BEGIN_ARG_INFO_EX(imagick_setimagealphachannel_args, 0, 0, 1)
360 // ZEND_ARG_INFO(0, ALPHACHANNELTYPE)
361 // ZEND_END_ARG_INFO()
362 //
363 // ZEND_BEGIN_ARG_INFO_EX(imagick_floodfillpaintimage_args, 0, 0, 6)
364 // ZEND_ARG_INFO(0, fill)
365 // ZEND_ARG_INFO(0, fuzz)
366 // ZEND_ARG_INFO(0, bordercolor)
367 // ZEND_ARG_INFO(0, x)
368 // ZEND_ARG_INFO(0, y)
369 // ZEND_ARG_INFO(0, invert)
370 // ZEND_ARG_INFO(0, CHANNEL)
371 // ZEND_END_ARG_INFO()
372 //
373 // ZEND_BEGIN_ARG_INFO_EX(imagick_opaquepaintimage_args, 0, 0, 4)
374 // ZEND_ARG_INFO(0, target)
375 // ZEND_ARG_INFO(0, fill)
376 // ZEND_ARG_INFO(0, fuzz)
377 // ZEND_ARG_INFO(0, invert)
378 // ZEND_ARG_INFO(0, CHANNEL)
379 // ZEND_END_ARG_INFO()
380 //
381 // ZEND_BEGIN_ARG_INFO_EX(imagick_transparentpaintimage_args, 0, 0, 4)
382 // ZEND_ARG_INFO(0, target)
383 // ZEND_ARG_INFO(0, alpha)
384 // ZEND_ARG_INFO(0, fuzz)
385 // ZEND_ARG_INFO(0, invert)
386 // ZEND_END_ARG_INFO()
387 //#endif
388 //
389 //#if MagickLibVersion > 0x638
390 // ZEND_BEGIN_ARG_INFO_EX(imagick_liquidrescaleimage_args, 0, 0, 4)
391 // ZEND_ARG_INFO(0, columns)
392 // ZEND_ARG_INFO(0, rows)
393 // ZEND_ARG_INFO(0, delta_x)
394 // ZEND_ARG_INFO(0, rigidity)
395 // ZEND_END_ARG_INFO()
396 //
397 // ZEND_BEGIN_ARG_INFO_EX(imagick_encipherimage_args, 0, 0, 1)
398 // ZEND_ARG_INFO(0, passphrase)
399 // ZEND_END_ARG_INFO()
400 //
401 // ZEND_BEGIN_ARG_INFO_EX(imagick_decipherimage_args, 0, 0, 1)
402 // ZEND_ARG_INFO(0, passphrase)
403 // ZEND_END_ARG_INFO()
404 //#endif
405 //
406 //#if MagickLibVersion > 0x639
407 // ZEND_BEGIN_ARG_INFO_EX(imagick_setgravity_args, 0, 0, 1)
408 // ZEND_ARG_INFO(0, GRAVITY)
409 // ZEND_END_ARG_INFO()
410 //
411 // ZEND_BEGIN_ARG_INFO_EX(imagick_getimagechannelrange_args, 0, 0, 1)
412 // ZEND_ARG_INFO(0, CHANNEL)
413 // ZEND_END_ARG_INFO()
414 //#endif
415 //
416 //#if MagickLibVersion > 0x642
417 // ZEND_BEGIN_ARG_INFO_EX(imagick_getimagechanneldistortions_args, 0, 0, 1)
418 // ZEND_ARG_OBJ_INFO(0, Imagick, Imagick, 0)
419 // ZEND_ARG_INFO(0, METRICTYPE)
420 // ZEND_ARG_INFO(0, CHANNEL)
421 // ZEND_END_ARG_INFO()
422 //#endif
423 //
424 //#if MagickLibVersion > 0x643
425 // ZEND_BEGIN_ARG_INFO_EX(imagick_setimagegravity_args, 0, 0, 1)
426 // ZEND_ARG_INFO(0, GRAVITY)
427 // ZEND_END_ARG_INFO()
428 //#endif
429 //
430 //#if MagickLibVersion >= 0x645
431 // ZEND_BEGIN_ARG_INFO_EX(imagick_importimagepixels_args, 0, 0, 7)
432 // ZEND_ARG_INFO(0, x)
433 // ZEND_ARG_INFO(0, y)
434 // ZEND_ARG_INFO(0, width)
435 // ZEND_ARG_INFO(0, height)
436 // ZEND_ARG_INFO(0, map)
437 // ZEND_ARG_INFO(0, storage)
438 // ZEND_ARG_INFO(0, PIXEL)
439 // ZEND_END_ARG_INFO()
440 //
441 // ZEND_BEGIN_ARG_INFO_EX(imagick_deskewimage_args, 0, 0, 1)
442 // ZEND_ARG_INFO(0, threshold)
443 // ZEND_END_ARG_INFO()
444 //
445 //#if PHP_IMAGICK_HAVE_HOUGHLINE
446 // ZEND_BEGIN_ARG_INFO_EX(imagick_houghlineimage_args, 0, 0, 3)
447 // ZEND_ARG_INFO(0, width)
448 // ZEND_ARG_INFO(0, height)
449 // ZEND_ARG_INFO(0, threshold)
450 // ZEND_END_ARG_INFO()
451 //#endif
452 //
453 // ZEND_BEGIN_ARG_INFO_EX(imagick_segmentimage_args, 0, 0, 3)
454 // ZEND_ARG_INFO(0, COLORSPACE)
455 // ZEND_ARG_INFO(0, cluster_threshold)
456 // ZEND_ARG_INFO(0, smooth_threshold)
457 // ZEND_ARG_INFO(0, verbose)
458 // ZEND_END_ARG_INFO()
459 //
460 // ZEND_BEGIN_ARG_INFO_EX(imagick_sparsecolorimage_args, 0, 0, 2)
461 // ZEND_ARG_INFO(0, SPARSE_METHOD)
462 // ZEND_ARG_INFO(0, arguments)
463 // ZEND_ARG_INFO(0, CHANNEL)
464 // ZEND_END_ARG_INFO()
465 //
466 // ZEND_BEGIN_ARG_INFO_EX(imagick_remapimage_args, 0, 0, 2)
467 // ZEND_ARG_OBJ_INFO(0, Imagick, Imagick, 0)
468 // ZEND_ARG_INFO(0, DITHER)
469 // ZEND_END_ARG_INFO()
470 //#endif
471 //
472 //#if MagickLibVersion > 0x646
473 // ZEND_BEGIN_ARG_INFO_EX(imagick_exportimagepixels_args, 0, 0, 6)
474 // ZEND_ARG_INFO(0, x)
475 // ZEND_ARG_INFO(0, y)
476 // ZEND_ARG_INFO(0, width)
477 // ZEND_ARG_INFO(0, height)
478 // ZEND_ARG_INFO(0, map)
479 // ZEND_ARG_INFO(0, STORAGE)
480 // ZEND_END_ARG_INFO()
481 //#endif
482 //
483 //#if MagickLibVersion > 0x648
484 // ZEND_BEGIN_ARG_INFO_EX(imagick_getimagechannelkurtosis_args, 0, 0, 0)
485 // ZEND_ARG_INFO(0, CHANNEL)
486 // ZEND_END_ARG_INFO()
487 //
488 // ZEND_BEGIN_ARG_INFO_EX(imagick_functionimage_args, 0, 0, 2)
489 // ZEND_ARG_INFO(0, FUNCTION)
490 // ZEND_ARG_INFO(0, arguments)
491 // ZEND_END_ARG_INFO()
492 //#endif
493 //
494 //#if MagickLibVersion > 0x652
495 // ZEND_BEGIN_ARG_INFO_EX(imagick_haldclutimage_args, 0, 0, 1)
496 // ZEND_ARG_OBJ_INFO(0, Imagick, Imagick, 0)
497 // ZEND_ARG_INFO(0, CHANNEL)
498 // ZEND_END_ARG_INFO()
499 //
500 // ZEND_BEGIN_ARG_INFO_EX(imagick_transformimagecolorspace_args, 0, 0, 1)
501 // ZEND_ARG_INFO(0, COLORSPACE)
502 // ZEND_END_ARG_INFO()
503 //#endif
504 //
505 //#if MagickLibVersion > 0x655
506 // ZEND_BEGIN_ARG_INFO_EX(imagick_autolevelimage_args, 0, 0, 0)
507 // ZEND_ARG_INFO(0, CHANNEL)
508 // ZEND_END_ARG_INFO()
509 //
510 // ZEND_BEGIN_ARG_INFO_EX(imagick_blueshiftimage_args, 0, 0, 0)
511 // ZEND_ARG_INFO(0, factor)
512 // ZEND_END_ARG_INFO()
513 //#endif
514 //
515 //#if MagickLibVersion > 0x656
516 // ZEND_BEGIN_ARG_INFO_EX(imagick_setimageartifact_args, 0, 0, 2)
517 // ZEND_ARG_INFO(0, artifact)
518 // ZEND_ARG_INFO(0, value)
519 // ZEND_END_ARG_INFO()
520 //
521 // ZEND_BEGIN_ARG_INFO_EX(imagick_getimageartifact_args, 0, 0, 1)
522 // ZEND_ARG_INFO(0, artifact)
523 // ZEND_END_ARG_INFO()
524 //
525 // ZEND_BEGIN_ARG_INFO_EX(imagick_deleteimageartifact_args, 0, 0, 1)
526 // ZEND_ARG_INFO(0, artifact)
527 // ZEND_END_ARG_INFO()
528 //
529 // ZEND_BEGIN_ARG_INFO_EX(imagick_setcolorspace_args, 0, 0, 1)
530 // ZEND_ARG_INFO(0, COLORSPACE)
531 // ZEND_END_ARG_INFO()
532 //
533 // ZEND_BEGIN_ARG_INFO_EX(imagick_clampimage_args, 0, 0, 0)
534 // ZEND_ARG_INFO(0, CHANNEL)
535 // ZEND_END_ARG_INFO()
536 //#endif
537 //#if MagickLibVersion > 0x667
538 // ZEND_BEGIN_ARG_INFO_EX(imagick_smushimages_args, 0, 0, 2)
539 // ZEND_ARG_INFO(0, stack)
540 // ZEND_ARG_INFO(0, offset)
541 // ZEND_END_ARG_INFO()
542 //#endif
543 //
544 // ZEND_BEGIN_ARG_INFO_EX(imagick_zero_args, 0, 0, 0)
545 // ZEND_END_ARG_INFO()
546 //
547 // ZEND_BEGIN_ARG_INFO_EX(imagick_construct_args, 0, 0, 0)
548 // ZEND_ARG_INFO(0, files)
549 // ZEND_END_ARG_INFO()
550 //
551 // ZEND_BEGIN_ARG_INFO_EX(imagick_getpixelregioniterator_args, 0, 0, 5)
552 // ZEND_ARG_INFO(0, x)
553 // ZEND_ARG_INFO(0, y)
554 // ZEND_ARG_INFO(0, columns)
555 // ZEND_ARG_INFO(0, rows)
556 // ZEND_ARG_INFO(0, modify)
557 // ZEND_END_ARG_INFO()
558 //
559 // ZEND_BEGIN_ARG_INFO_EX(imagick_readimage_args, 0, 0, 1)
560 // ZEND_ARG_INFO(0, filename)
561 // ZEND_END_ARG_INFO()
562 //
563 // ZEND_BEGIN_ARG_INFO_EX(imagick_readimages_args, 0, 0, 1)
564 // ZEND_ARG_INFO(0, filenames)
565 // ZEND_END_ARG_INFO()
566 //
567 // ZEND_BEGIN_ARG_INFO_EX(imagick_readimageblob_args, 0, 0, 1)
568 // ZEND_ARG_INFO(0, imageContents)
569 // ZEND_ARG_INFO(0, filename)
570 // ZEND_END_ARG_INFO()
571 //
572 // ZEND_BEGIN_ARG_INFO_EX(imagick_setimageformat_args, 0, 0, 1)
573 // ZEND_ARG_INFO(0, imageFormat)
574 // ZEND_END_ARG_INFO()
575 //
576 // ZEND_BEGIN_ARG_INFO_EX(imagick_scaleimage_args, 0, 0, 2)
577 // ZEND_ARG_INFO(0, width)
578 // ZEND_ARG_INFO(0, height)
579 // ZEND_ARG_INFO(0, bestfit)
580 // ZEND_ARG_INFO(0, legacy)
581 // ZEND_END_ARG_INFO()
582 //
583 // ZEND_BEGIN_ARG_INFO_EX(imagick_writeimage_args, 0, 0, 0)
584 // ZEND_ARG_INFO(0, filename)
585 // ZEND_END_ARG_INFO()
586 //
587 // ZEND_BEGIN_ARG_INFO_EX(imagick_writeimages_args, 0, 0, 2)
588 // ZEND_ARG_INFO(0, filename)
589 // ZEND_ARG_INFO(0, adjoin)
590 // ZEND_END_ARG_INFO()
591 //
592 // ZEND_BEGIN_ARG_INFO_EX(imagick_blurimage_args, 0, 0, 2)
593 // ZEND_ARG_INFO(0, radius)
594 // ZEND_ARG_INFO(0, sigma)
595 // ZEND_ARG_INFO(0, CHANNELTYPE)
596 // ZEND_END_ARG_INFO()
597 //
598 // ZEND_BEGIN_ARG_INFO_EX(imagick_thumbnailimage_args, 0, 0, 2)
599 // ZEND_ARG_INFO(0, width)
600 // ZEND_ARG_INFO(0, height)
601 // ZEND_ARG_INFO(0, bestfit)
602 // ZEND_ARG_INFO(0, fill)
603 // ZEND_ARG_INFO(0, legacy)
604 // ZEND_END_ARG_INFO()
605 //
606 // ZEND_BEGIN_ARG_INFO_EX(imagick_cropthumbnailimage_args, 0, 0, 2)
607 // ZEND_ARG_INFO(0, width)
608 // ZEND_ARG_INFO(0, height)
609 // ZEND_ARG_INFO(0, legacy)
610 // ZEND_END_ARG_INFO()
611 //
612 // ZEND_BEGIN_ARG_INFO_EX(imagick_setimagefilename_args, 0, 0, 1)
613 // ZEND_ARG_INFO(0, filename)
614 // ZEND_END_ARG_INFO()
615 //
616 //#if MagickLibVersion < 0x700
617 // ZEND_BEGIN_ARG_INFO_EX(imagick_setimageindex_args, 0, 0, 1)
618 // ZEND_ARG_INFO(0, index)
619 // ZEND_END_ARG_INFO()
620 //#endif
621 //
622 // ZEND_BEGIN_ARG_INFO_EX(imagick_commentimage_args, 0, 0, 1)
623 // ZEND_ARG_INFO(0, comment)
624 // ZEND_END_ARG_INFO()
625 //
626 // ZEND_BEGIN_ARG_INFO_EX(imagick_cropimage_args, 0, 0, 4)
627 // ZEND_ARG_INFO(0, width)
628 // ZEND_ARG_INFO(0, height)
629 // ZEND_ARG_INFO(0, x)
630 // ZEND_ARG_INFO(0, y)
631 // ZEND_END_ARG_INFO()
632 //
633 // ZEND_BEGIN_ARG_INFO_EX(imagick_labelimage_args, 0, 0, 1)
634 // ZEND_ARG_INFO(0, label)
635 // ZEND_END_ARG_INFO()
636 //
637 // ZEND_BEGIN_ARG_INFO_EX(imagick_drawimage_args, 0, 0, 1)
638 // ZEND_ARG_OBJ_INFO(0, ImagickDraw, ImagickDraw, 0)
639 // ZEND_END_ARG_INFO()
640 //
641 // ZEND_BEGIN_ARG_INFO_EX(imagick_setimagecompressionquality_args, 0, 0, 1)
642 // ZEND_ARG_INFO(0, quality)
643 // ZEND_END_ARG_INFO()
644 //
645 // ZEND_BEGIN_ARG_INFO_EX(imagick_annotateimage_args, 0, 0, 5)
646 // ZEND_ARG_OBJ_INFO(0, ImagickDraw, ImagickDraw, 0)
647 // ZEND_ARG_INFO(0, x)
648 // ZEND_ARG_INFO(0, y)
649 // ZEND_ARG_INFO(0, angle)
650 // ZEND_ARG_INFO(0, text)
651 // ZEND_END_ARG_INFO()
652 //
653 // ZEND_BEGIN_ARG_INFO_EX(imagick_compositeimage_args, 0, 0, 4)
654 // ZEND_ARG_OBJ_INFO(0, Imagick, Imagick, 0)
655 // ZEND_ARG_INFO(0, COMPOSITE)
656 // ZEND_ARG_INFO(0, x)
657 // ZEND_ARG_INFO(0, y)
658 // ZEND_ARG_INFO(0, CHANNELTYPE)
659 // ZEND_END_ARG_INFO()
660 //
661 // ZEND_BEGIN_ARG_INFO_EX(imagick_modulateimage_args, 0, 0, 3)
662 // ZEND_ARG_INFO(0, brightness)
663 // ZEND_ARG_INFO(0, saturation)
664 // ZEND_ARG_INFO(0, hue)
665 // ZEND_END_ARG_INFO()
666 //
667 // ZEND_BEGIN_ARG_INFO_EX(imagick_montageimage_args, 0, 0, 5)
668 // ZEND_ARG_OBJ_INFO(0, ImagickDraw, ImagickDraw, 0)
669 // ZEND_ARG_INFO(0, tileGeometry)
670 // ZEND_ARG_INFO(0, thumbnailGeometry)
671 // ZEND_ARG_INFO(0, MONTAGEMODE)
672 // ZEND_ARG_INFO(0, frame)
673 // ZEND_END_ARG_INFO()
674 //
675 //#ifdef IMAGICK_WITH_KERNEL
676 // ZEND_BEGIN_ARG_INFO_EX(imagick_morphology_args, 0, 0, 3)
677 // ZEND_ARG_INFO(0, morphologyMethod)
678 // ZEND_ARG_INFO(0, iterations)
679 // ZEND_ARG_OBJ_INFO(0, ImagickKernel, ImagickKernel, 0)
680 // ZEND_ARG_INFO(0, CHANNEL)
681 // ZEND_END_ARG_INFO()
682 //
683 //#if MagickLibVersion < 0x700
684 // ZEND_BEGIN_ARG_INFO_EX(imagick_filter_args, 0, 0, 1)
685 // ZEND_ARG_OBJ_INFO(0, ImagickKernel, ImagickKernel, 0)
686 // ZEND_ARG_INFO(0, CHANNEL)
687 // ZEND_END_ARG_INFO()
688 //#endif
689 //#endif
690 //
691 // ZEND_BEGIN_ARG_INFO_EX(imagick_identifyimage_args, 0, 0, 0)
692 // ZEND_ARG_INFO(0, appendRawOutput)
693 // ZEND_END_ARG_INFO()
694 //
695 // ZEND_BEGIN_ARG_INFO_EX(imagick_thresholdimage_args, 0, 0, 1)
696 // ZEND_ARG_INFO(0, threshold)
697 // ZEND_ARG_INFO(0, CHANNELTYPE)
698 // ZEND_END_ARG_INFO()
699 //
700 // ZEND_BEGIN_ARG_INFO_EX(imagick_adaptivethresholdimage_args, 0, 0, 3)
701 // ZEND_ARG_INFO(0, width)
702 // ZEND_ARG_INFO(0, height)
703 // ZEND_ARG_INFO(0, offset)
704 // ZEND_END_ARG_INFO()
705 //
706 // ZEND_BEGIN_ARG_INFO_EX(imagick_blackthresholdimage_args, 0, 0, 1)
707 // ZEND_ARG_INFO(0, color)
708 // ZEND_END_ARG_INFO()
709 //
710 // ZEND_BEGIN_ARG_INFO_EX(imagick_whitethresholdimage_args, 0, 0, 1)
711 // ZEND_ARG_INFO(0, color)
712 // ZEND_END_ARG_INFO()
713 //
714 // ZEND_BEGIN_ARG_INFO_EX(imagick_appendimages_args, 0, 0, 1)
715 // ZEND_ARG_INFO(0, stack)
716 // ZEND_END_ARG_INFO()
717 //
718 // ZEND_BEGIN_ARG_INFO_EX(imagick_charcoalimage_args, 0, 0, 2)
719 // ZEND_ARG_INFO(0, radius)
720 // ZEND_ARG_INFO(0, sigma)
721 // ZEND_END_ARG_INFO()
722 //
723 // ZEND_BEGIN_ARG_INFO_EX(imagick_normalizeimage_args, 0, 0, 0)
724 // ZEND_ARG_INFO(0, CHANNEL)
725 // ZEND_END_ARG_INFO()
726 //
727 // ZEND_BEGIN_ARG_INFO_EX(imagick_oilpaintimage_args, 0, 0, 1)
728 // ZEND_ARG_INFO(0, radius)
729 // ZEND_END_ARG_INFO()
730 //
731 // ZEND_BEGIN_ARG_INFO_EX(imagick_posterizeimage_args, 0, 0, 2)
732 // ZEND_ARG_INFO(0, levels)
733 // ZEND_ARG_INFO(0, dither)
734 // ZEND_END_ARG_INFO()
735 //
736 //#if !defined(MAGICKCORE_EXCLUDE_DEPRECATED)
737 //#if MagickLibVersion < 0x700
738 // ZEND_BEGIN_ARG_INFO_EX(imagick_radialblurimage_args, 0, 0, 1)
739 // ZEND_ARG_INFO(0, angle)
740 // ZEND_ARG_INFO(0, CHANNEL)
741 // ZEND_END_ARG_INFO()
742 //#endif
743 //#endif
744 //
745 // ZEND_BEGIN_ARG_INFO_EX(imagick_raiseimage_args, 0, 0, 5)
746 // ZEND_ARG_INFO(0, width)
747 // ZEND_ARG_INFO(0, height)
748 // ZEND_ARG_INFO(0, x)
749 // ZEND_ARG_INFO(0, y)
750 // ZEND_ARG_INFO(0, raise)
751 // ZEND_END_ARG_INFO()
752 //
753 // ZEND_BEGIN_ARG_INFO_EX(imagick_resampleimage_args, 0, 0, 4)
754 // ZEND_ARG_INFO(0, xResolution)
755 // ZEND_ARG_INFO(0, yResolution)
756 // ZEND_ARG_INFO(0, FILTER)
757 // ZEND_ARG_INFO(0, blur)
758 // ZEND_END_ARG_INFO()
759 //
760 // ZEND_BEGIN_ARG_INFO_EX(imagick_resizeimage_args, 0, 0, 2)
761 // ZEND_ARG_INFO(0, x)
762 // ZEND_ARG_INFO(0, y)
763 // ZEND_ARG_INFO(0, filter)
764 // ZEND_ARG_INFO(0, blur)
765 // ZEND_ARG_INFO(0, bestfit)
766 // ZEND_ARG_INFO(0, legacy)
767 // ZEND_END_ARG_INFO()
768 //
769 // ZEND_BEGIN_ARG_INFO_EX(imagick_rollimage_args, 0, 0, 2)
770 // ZEND_ARG_INFO(0, x)
771 // ZEND_ARG_INFO(0, y)
772 // ZEND_END_ARG_INFO()
773 //
774 // ZEND_BEGIN_ARG_INFO_EX(imagick_rotateimage_args, 0, 0, 2)
775 // ZEND_ARG_INFO(0, color)
776 // ZEND_ARG_INFO(0, degrees)
777 // ZEND_END_ARG_INFO()
778 //
779 // ZEND_BEGIN_ARG_INFO_EX(imagick_sampleimage_args, 0, 0, 2)
780 // ZEND_ARG_INFO(0, columns)
781 // ZEND_ARG_INFO(0, rows)
782 // ZEND_END_ARG_INFO()
783 //
784 // ZEND_BEGIN_ARG_INFO_EX(imagick_solarizeimage_args, 0, 0, 1)
785 // ZEND_ARG_INFO(0, threshold)
786 // ZEND_END_ARG_INFO()
787 //
788 // ZEND_BEGIN_ARG_INFO_EX(imagick_shadowimage_args, 0, 0, 4)
789 // ZEND_ARG_INFO(0, opacity)
790 // ZEND_ARG_INFO(0, sigma)
791 // ZEND_ARG_INFO(0, x)
792 // ZEND_ARG_INFO(0, y)
793 // ZEND_END_ARG_INFO()
794 //
795 //#if !defined(MAGICKCORE_EXCLUDE_DEPRECATED)
796 //#if MagickLibVersion < 0x700
797 // ZEND_BEGIN_ARG_INFO_EX(imagick_setimageattribute_args, 0, 0, 2)
798 // ZEND_ARG_INFO(0, key)
799 // ZEND_ARG_INFO(0, value)
800 // ZEND_END_ARG_INFO()
801 //#endif
802 //
803 //#if MagickLibVersion < 0x700
804 // ZEND_BEGIN_ARG_INFO_EX(imagick_getimageattribute_args, 0, 0, 1)
805 // ZEND_ARG_INFO(0, key)
806 // ZEND_END_ARG_INFO()
807 //#endif
808 //#endif
809 //
810 // ZEND_BEGIN_ARG_INFO_EX(imagick_setimagebackgroundcolor_args, 0, 0, 1)
811 // ZEND_ARG_INFO(0, color)
812 // ZEND_END_ARG_INFO()
813 //
814 //#if MagickLibVersion >= 0x700
815 // ZEND_BEGIN_ARG_INFO_EX(imagick_setimagechannelmask_args, 0, 0, 1)
816 // ZEND_ARG_INFO(0, channel)
817 // ZEND_END_ARG_INFO()
818 //#endif
819 //
820 // ZEND_BEGIN_ARG_INFO_EX(imagick_setimagecompose_args, 0, 0, 1)
821 // ZEND_ARG_INFO(0, COMPOSITE)
822 // ZEND_END_ARG_INFO()
823 //
824 // ZEND_BEGIN_ARG_INFO_EX(imagick_setimagecompression_args, 0, 0, 1)
825 // ZEND_ARG_INFO(0, COMPRESSION)
826 // ZEND_END_ARG_INFO()
827 //
828 // ZEND_BEGIN_ARG_INFO_EX(imagick_setimagedelay_args, 0, 0, 1)
829 // ZEND_ARG_INFO(0, delay)
830 // ZEND_END_ARG_INFO()
831 //
832 // ZEND_BEGIN_ARG_INFO_EX(imagick_setimagedepth_args, 0, 0, 1)
833 // ZEND_ARG_INFO(0, depth)
834 // ZEND_END_ARG_INFO()
835 //
836 // ZEND_BEGIN_ARG_INFO_EX(imagick_setimagegamma_args, 0, 0, 1)
837 // ZEND_ARG_INFO(0, gamma)
838 // ZEND_END_ARG_INFO()
839 //
840 // ZEND_BEGIN_ARG_INFO_EX(imagick_setimageiterations_args, 0, 0, 1)
841 // ZEND_ARG_INFO(0, iterations)
842 // ZEND_END_ARG_INFO()
843 //
844 //#if MagickLibVersion < 0x700
845 // ZEND_BEGIN_ARG_INFO_EX(imagick_setimagemattecolor_args, 0, 0, 1)
846 // ZEND_ARG_INFO(0, color)
847 // ZEND_END_ARG_INFO()
848 //#endif
849 //
850 // ZEND_BEGIN_ARG_INFO_EX(imagick_setimagepage_args, 0, 0, 4)
851 // ZEND_ARG_INFO(0, width)
852 // ZEND_ARG_INFO(0, height)
853 // ZEND_ARG_INFO(0, x)
854 // ZEND_ARG_INFO(0, y)
855 // ZEND_END_ARG_INFO()
856 //
857 // ZEND_BEGIN_ARG_INFO_EX(imagick_setimageprogressmonitor_args, 0, 0, 1)
858 // ZEND_ARG_INFO(0, filename)
859 // ZEND_END_ARG_INFO()
860 //
861 // ZEND_BEGIN_ARG_INFO_EX(imagick_setprogressmonitor_args, 0, 0, 1)
862 // ZEND_ARG_INFO(0, callback)
863 // ZEND_END_ARG_INFO()
864 //
865 // ZEND_BEGIN_ARG_INFO_EX(imagick_setimageresolution_args, 0, 0, 2)
866 // ZEND_ARG_INFO(0, xResolution)
867 // ZEND_ARG_INFO(0, yResolution)
868 // ZEND_END_ARG_INFO()
869 //
870 // ZEND_BEGIN_ARG_INFO_EX(imagick_setimagescene_args, 0, 0, 1)
871 // ZEND_ARG_INFO(0, scene)
872 // ZEND_END_ARG_INFO()
873 //
874 // ZEND_BEGIN_ARG_INFO_EX(imagick_setimagetickspersecond_args, 0, 0, 1)
875 // ZEND_ARG_INFO(0, ticksPerSecond)
876 // ZEND_END_ARG_INFO()
877 //
878 // ZEND_BEGIN_ARG_INFO_EX(imagick_setimagetype_args, 0, 0, 1)
879 // ZEND_ARG_INFO(0, IMGTYPE)
880 // ZEND_END_ARG_INFO()
881 //
882 // ZEND_BEGIN_ARG_INFO_EX(imagick_setimageunits_args, 0, 0, 1)
883 // ZEND_ARG_INFO(0, RESOLUTION)
884 // ZEND_END_ARG_INFO()
885 //
886 // ZEND_BEGIN_ARG_INFO_EX(imagick_sharpenimage_args, 0, 0, 2)
887 // ZEND_ARG_INFO(0, radius)
888 // ZEND_ARG_INFO(0, sigma)
889 // ZEND_ARG_INFO(0, CHANNEL)
890 // ZEND_END_ARG_INFO()
891 //
892 // ZEND_BEGIN_ARG_INFO_EX(imagick_shaveimage_args, 0, 0, 2)
893 // ZEND_ARG_INFO(0, columns)
894 // ZEND_ARG_INFO(0, rows)
895 // ZEND_END_ARG_INFO()
896 //
897 // ZEND_BEGIN_ARG_INFO_EX(imagick_shearimage_args, 0, 0, 3)
898 // ZEND_ARG_INFO(0, color)
899 // ZEND_ARG_INFO(0, xShear)
900 // ZEND_ARG_INFO(0, yShear)
901 // ZEND_END_ARG_INFO()
902 //
903 // ZEND_BEGIN_ARG_INFO_EX(imagick_spliceimage_args, 0, 0, 4)
904 // ZEND_ARG_INFO(0, width)
905 // ZEND_ARG_INFO(0, height)
906 // ZEND_ARG_INFO(0, x)
907 // ZEND_ARG_INFO(0, y)
908 // ZEND_END_ARG_INFO()
909 //
910 // ZEND_BEGIN_ARG_INFO_EX(imagick_pingimage_args, 0, 0, 1)
911 // ZEND_ARG_INFO(0, filename)
912 // ZEND_END_ARG_INFO()
913 //
914 // ZEND_BEGIN_ARG_INFO_EX(imagick_readimagefile_args, 0, 0, 1)
915 // ZEND_ARG_INFO(0, fp)
916 // ZEND_END_ARG_INFO()
917 //
918 // ZEND_BEGIN_ARG_INFO_EX(imagick_displayimage_args, 0, 0, 1)
919 // ZEND_ARG_INFO(0, serverName)
920 // ZEND_END_ARG_INFO()
921 //
922 // ZEND_BEGIN_ARG_INFO_EX(imagick_displayimages_args, 0, 0, 1)
923 // ZEND_ARG_INFO(0, serverName)
924 // ZEND_END_ARG_INFO()
925 //
926 // ZEND_BEGIN_ARG_INFO_EX(imagick_spreadimage_args, 0, 0, 1)
927 // ZEND_ARG_INFO(0, radius)
928 // ZEND_END_ARG_INFO()
929 //
930 // ZEND_BEGIN_ARG_INFO_EX(imagick_swirlimage_args, 0, 0, 1)
931 // ZEND_ARG_INFO(0, degrees)
932 // ZEND_END_ARG_INFO()
933 //
934 // ZEND_BEGIN_ARG_INFO_EX(imagick_queryformats_args, 0, 0, 1)
935 // ZEND_ARG_INFO(0, pattern)
936 // ZEND_END_ARG_INFO()
937 //
938 // ZEND_BEGIN_ARG_INFO_EX(imagick_queryfonts_args, 0, 0, 1)
939 // ZEND_ARG_INFO(0, pattern)
940 // ZEND_END_ARG_INFO()
941 //
942 // ZEND_BEGIN_ARG_INFO_EX(imagick_queryfontmetrics_args, 0, 0, 2)
943 // ZEND_ARG_OBJ_INFO(0, ImagickDraw, ImagickDraw, 0)
944 // ZEND_ARG_INFO(0, text)
945 // ZEND_ARG_INFO(0, multiline)
946 // ZEND_END_ARG_INFO()
947 //
948 // ZEND_BEGIN_ARG_INFO_EX(imagick_steganoimage_args, 0, 0, 2)
949 // ZEND_ARG_OBJ_INFO(0, Imagick, Imagick, 0)
950 // ZEND_ARG_INFO(0, offset)
951 // ZEND_END_ARG_INFO()
952 //
953 // ZEND_BEGIN_ARG_INFO_EX(imagick_addnoiseimage_args, 0, 0, 1)
954 // ZEND_ARG_INFO(0, NOISE)
955 // ZEND_ARG_INFO(0, CHANNEL)
956 // ZEND_END_ARG_INFO()
957 //
958 // ZEND_BEGIN_ARG_INFO_EX(imagick_motionblurimage_args, 0, 0, 3)
959 // ZEND_ARG_INFO(0, radius)
960 // ZEND_ARG_INFO(0, sigma)
961 // ZEND_ARG_INFO(0, angle)
962 // ZEND_ARG_INFO(0, CHANNEL)
963 // ZEND_END_ARG_INFO()
964 //
965 // ZEND_BEGIN_ARG_INFO_EX(imagick_morphimages_args, 0, 0, 1)
966 // ZEND_ARG_INFO(0, frames)
967 // ZEND_END_ARG_INFO()
968 //
969 // ZEND_BEGIN_ARG_INFO_EX(imagick_affinetransformimage_args, 0, 0, 1)
970 // ZEND_ARG_OBJ_INFO(0, ImagickDraw, ImagickDraw, 0)
971 // ZEND_END_ARG_INFO()
972 //
973 // ZEND_BEGIN_ARG_INFO_EX(imagick_calculatecrop_args, 0, 0, 4)
974 // ZEND_ARG_INFO(0, orig_width)
975 // ZEND_ARG_INFO(0, orig_height)
976 // ZEND_ARG_INFO(0, desired_width)
977 // ZEND_ARG_INFO(0, desired_height)
978 // ZEND_ARG_INFO(0, legacy)
979 // ZEND_END_ARG_INFO()
980 //
981 // ZEND_BEGIN_ARG_INFO_EX(imagick_borderimage_args, 0, 0, 3)
982 // ZEND_ARG_INFO(0, color)
983 // ZEND_ARG_INFO(0, width)
984 // ZEND_ARG_INFO(0, height)
985 // ZEND_END_ARG_INFO()
986 //
987 // ZEND_BEGIN_ARG_INFO_EX(imagick_chopimage_args, 0, 0, 4)
988 // ZEND_ARG_INFO(0, width)
989 // ZEND_ARG_INFO(0, height)
990 // ZEND_ARG_INFO(0, x)
991 // ZEND_ARG_INFO(0, y)
992 // ZEND_END_ARG_INFO()
993 //
994 // ZEND_BEGIN_ARG_INFO_EX(imagick_clippathimage_args, 0, 0, 2)
995 // ZEND_ARG_INFO(0, pathname)
996 // ZEND_ARG_INFO(0, inside)
997 // ZEND_END_ARG_INFO()
998 //
999 //#if !defined(MAGICKCORE_EXCLUDE_DEPRECATED)
1000 //#if MagickLibVersion < 0x700
1001 // ZEND_BEGIN_ARG_INFO_EX(imagick_colorfloodfillimage_args, 0, 0, 5)
1002 // ZEND_ARG_INFO(0, fill_color)
1003 // ZEND_ARG_INFO(0, fuzz)
1004 // ZEND_ARG_INFO(0, border_color)
1005 // ZEND_ARG_INFO(0, y)
1006 // ZEND_ARG_INFO(0, x)
1007 // ZEND_END_ARG_INFO()
1008 //#endif
1009 //#endif
1010 //
1011 // ZEND_BEGIN_ARG_INFO_EX(imagick_colorizeimage_args, 0, 0, 2)
1012 // ZEND_ARG_INFO(0, colorize_color)
1013 // ZEND_ARG_INFO(0, opacity)
1014 // ZEND_ARG_INFO(0, legacy)
1015 // ZEND_END_ARG_INFO()
1016 //
1017 // ZEND_BEGIN_ARG_INFO_EX(imagick_compareimagechannels_args, 0, 0, 3)
1018 // ZEND_ARG_OBJ_INFO(0, Imagick, Imagick, 0)
1019 // ZEND_ARG_INFO(0, CHANNEL)
1020 // ZEND_ARG_INFO(0, METRIC)
1021 // ZEND_END_ARG_INFO()
1022 //
1023 // ZEND_BEGIN_ARG_INFO_EX(imagick_compareimages_args, 0, 0, 2)
1024 // ZEND_ARG_OBJ_INFO(0, Imagick, Imagick, 0)
1025 // ZEND_ARG_INFO(0, METRIC)
1026 // ZEND_END_ARG_INFO()
1027 //
1028 // ZEND_BEGIN_ARG_INFO_EX(imagick_contrastimage_args, 0, 0, 1)
1029 // ZEND_ARG_INFO(0, sharpen)
1030 // ZEND_END_ARG_INFO()
1031 //
1032 // ZEND_BEGIN_ARG_INFO_EX(imagick_convolveimage_args, 0, 0, 1)
1033 // ZEND_ARG_INFO(0, kernel)
1034 // ZEND_ARG_INFO(0, CHANNEL)
1035 // ZEND_END_ARG_INFO()
1036 //
1037 // ZEND_BEGIN_ARG_INFO_EX(imagick_cyclecolormapimage_args, 0, 0, 1)
1038 // ZEND_ARG_INFO(0, displace)
1039 // ZEND_END_ARG_INFO()
1040 //
1041 // ZEND_BEGIN_ARG_INFO_EX(imagick_edgeimage_args, 0, 0, 1)
1042 // ZEND_ARG_INFO(0, radius)
1043 // ZEND_END_ARG_INFO()
1044 //
1045 // ZEND_BEGIN_ARG_INFO_EX(imagick_embossimage_args, 0, 0, 2)
1046 // ZEND_ARG_INFO(0, radius)
1047 // ZEND_ARG_INFO(0, sigma)
1048 // ZEND_END_ARG_INFO()
1049 //
1050 // ZEND_BEGIN_ARG_INFO_EX(imagick_evaluateimage_args, 0, 0, 2)
1051 // ZEND_ARG_INFO(0, EVALUATE)
1052 // ZEND_ARG_INFO(0, constant)
1053 // ZEND_ARG_INFO(0, CHANNEL)
1054 // ZEND_END_ARG_INFO()
1055 //
1056 //#if MagickLibVersion >= 0x687
1057 // ZEND_BEGIN_ARG_INFO_EX(imagick_evaluateimages_args, 0, 0, 1)
1058 // ZEND_ARG_INFO(0, EVALUATE)
1059 // ZEND_END_ARG_INFO()
1060 //#endif //MagickLibVersion >= 0x687
1061 //
1062 //#if MagickLibVersion >= 0x655
1063 // ZEND_BEGIN_ARG_INFO_EX(imagick_forwardfouriertransformimage_args, 0, 0, 5)
1064 // ZEND_ARG_INFO(0, magnitude)
1065 // ZEND_END_ARG_INFO()
1066 //#endif
1067 //
1068 // ZEND_BEGIN_ARG_INFO_EX(imagick_frameimage_args, 0, 0, 5)
1069 // ZEND_ARG_INFO(0, color)
1070 // ZEND_ARG_INFO(0, width)
1071 // ZEND_ARG_INFO(0, height)
1072 // ZEND_ARG_INFO(0, innerBevel)
1073 // ZEND_ARG_INFO(0, outerBevel)
1074 // ZEND_END_ARG_INFO()
1075 //
1076 // ZEND_BEGIN_ARG_INFO_EX(imagick_fximage_args, 0, 0, 1)
1077 // ZEND_ARG_INFO(0, expression)
1078 // ZEND_ARG_INFO(0, CHANNEL)
1079 // ZEND_END_ARG_INFO()
1080 //
1081 // ZEND_BEGIN_ARG_INFO_EX(imagick_gammaimage_args, 0, 0, 1)
1082 // ZEND_ARG_INFO(0, gamma)
1083 // ZEND_ARG_INFO(0, CHANNEL)
1084 // ZEND_END_ARG_INFO()
1085 //
1086 // ZEND_BEGIN_ARG_INFO_EX(imagick_gaussianblurimage_args, 0, 0, 2)
1087 // ZEND_ARG_INFO(0, radius)
1088 // ZEND_ARG_INFO(0, sigma)
1089 // ZEND_ARG_INFO(0, CHANNEL)
1090 // ZEND_END_ARG_INFO()
1091 //
1092 // ZEND_BEGIN_ARG_INFO_EX(imagick_getimagechanneldepth_args, 0, 0, 1)
1093 // ZEND_ARG_INFO(0, CHANNEL)
1094 // ZEND_END_ARG_INFO()
1095 //
1096 // ZEND_BEGIN_ARG_INFO_EX(imagick_getimagechanneldistortion_args, 0, 0, 3)
1097 // ZEND_ARG_OBJ_INFO(0, Imagick, Imagick, 0)
1098 // ZEND_ARG_INFO(0, CHANNEL)
1099 // ZEND_ARG_INFO(0, METRIC)
1100 // ZEND_END_ARG_INFO()
1101 //
1102 //#if !defined(MAGICKCORE_EXCLUDE_DEPRECATED)
1103 //#if MagickLibVersion < 0x700
1104 // ZEND_BEGIN_ARG_INFO_EX(imagick_getimagechannelextrema_args, 0, 0, 1)
1105 // ZEND_ARG_INFO(0, CHANNEL)
1106 // ZEND_END_ARG_INFO()
1107 //#endif
1108 //#endif
1109 //
1110 // ZEND_BEGIN_ARG_INFO_EX(imagick_getimagechannelmean_args, 0, 0, 1)
1111 // ZEND_ARG_INFO(0, CHANNEL)
1112 // ZEND_END_ARG_INFO()
1113 //
1114 // ZEND_BEGIN_ARG_INFO_EX(imagick_getimagecolormapcolor_args, 0, 0, 1)
1115 // ZEND_ARG_INFO(0, index)
1116 // ZEND_END_ARG_INFO()
1117 //
1118 // ZEND_BEGIN_ARG_INFO_EX(imagick_getimagedistortion_args, 0, 0, 2)
1119 // ZEND_ARG_OBJ_INFO(0, Imagick, Imagick, 0)
1120 // ZEND_ARG_INFO(0, METRIC)
1121 // ZEND_END_ARG_INFO()
1122 //
1123 // ZEND_BEGIN_ARG_INFO_EX(imagick_getimagepixelcolor_args, 0, 0, 2)
1124 // ZEND_ARG_INFO(0, x)
1125 // ZEND_ARG_INFO(0, y)
1126 // ZEND_END_ARG_INFO()
1127 //
1128 // ZEND_BEGIN_ARG_INFO_EX(imagick_getimageprofile_args, 0, 0, 1)
1129 // ZEND_ARG_INFO(0, name)
1130 // ZEND_END_ARG_INFO()
1131 //
1132 // ZEND_BEGIN_ARG_INFO_EX(imagick_getimagetotalinkdensity_args, 0, 0, 1)
1133 // ZEND_ARG_INFO(0, radius)
1134 // ZEND_END_ARG_INFO()
1135 //
1136 // ZEND_BEGIN_ARG_INFO_EX(imagick_getimageregion_args, 0, 0, 4)
1137 // ZEND_ARG_INFO(0, width)
1138 // ZEND_ARG_INFO(0, height)
1139 // ZEND_ARG_INFO(0, x)
1140 // ZEND_ARG_INFO(0, y)
1141 // ZEND_END_ARG_INFO()
1142 //
1143 //#if MagickLibVersion >= 0x658
1144 // ZEND_BEGIN_ARG_INFO_EX(imagick_inversefouriertransformimage_args, 0, 0, 3)
1145 // ZEND_ARG_INFO(0, complement)
1146 // ZEND_ARG_INFO(0, magnitude)
1147 // ZEND_END_ARG_INFO()
1148 //#endif
1149 //
1150 // ZEND_BEGIN_ARG_INFO_EX(imagick_levelimage_args, 0, 0, 3)
1151 // ZEND_ARG_INFO(0, blackPoint)
1152 // ZEND_ARG_INFO(0, gamma)
1153 // ZEND_ARG_INFO(0, whitePoint)
1154 // ZEND_ARG_INFO(0, CHANNEL)
1155 // ZEND_END_ARG_INFO()
1156 //
1157 //#if !defined(MAGICKCORE_EXCLUDE_DEPRECATED)
1158 //#if MagickLibVersion < 0x700
1159 // ZEND_BEGIN_ARG_INFO_EX(imagick_mapimage_args, 0, 0, 2)
1160 // ZEND_ARG_OBJ_INFO(0, Imagick, Imagick, 0)
1161 // ZEND_ARG_INFO(0, dither)
1162 // ZEND_END_ARG_INFO()
1163 //#endif
1164 //
1165 //#if MagickLibVersion < 0x700
1166 // ZEND_BEGIN_ARG_INFO_EX(imagick_mattefloodfillimage_args, 0, 0, 5)
1167 // ZEND_ARG_INFO(0, alpha)
1168 // ZEND_ARG_INFO(0, fuzz)
1169 // ZEND_ARG_INFO(0, color)
1170 // ZEND_ARG_INFO(0, x)
1171 // ZEND_ARG_INFO(0, y)
1172 // ZEND_END_ARG_INFO()
1173 //#endif
1174 //#endif
1175 //
1176 //#if !defined(MAGICKCORE_EXCLUDE_DEPRECATED)
1177 //#if MagickLibVersion < 0x700
1178 // ZEND_BEGIN_ARG_INFO_EX(imagick_medianfilterimage_args, 0, 0, 1)
1179 // ZEND_ARG_INFO(0, radius)
1180 // ZEND_END_ARG_INFO()
1181 //#endif
1182 //#endif
1183 //
1184 // ZEND_BEGIN_ARG_INFO_EX(imagick_negateimage_args, 0, 0, 1)
1185 // ZEND_ARG_INFO(0, gray)
1186 // ZEND_ARG_INFO(0, CHANNEL)
1187 // ZEND_END_ARG_INFO()
1188 //
1189 //#if !defined(MAGICKCORE_EXCLUDE_DEPRECATED)
1190 //#if MagickLibVersion < 0x700
1191 // ZEND_BEGIN_ARG_INFO_EX(imagick_paintopaqueimage_args, 0, 0, 3)
1192 // ZEND_ARG_INFO(0, target_color)
1193 // ZEND_ARG_INFO(0, fill_color)
1194 // ZEND_ARG_INFO(0, fuzz)
1195 // ZEND_ARG_INFO(0, CHANNEL)
1196 // ZEND_END_ARG_INFO()
1197 //#endif
1198 //
1199 //#if MagickLibVersion < 0x700
1200 // ZEND_BEGIN_ARG_INFO_EX(imagick_painttransparentimage_args, 0, 0, 3)
1201 // ZEND_ARG_INFO(0, target_color)
1202 // ZEND_ARG_INFO(0, alpha)
1203 // ZEND_ARG_INFO(0, fuzz)
1204 // ZEND_END_ARG_INFO()
1205 //#endif
1206 //#endif
1207 //
1208 // ZEND_BEGIN_ARG_INFO_EX(imagick_previewimages_args, 0, 0, 1)
1209 // ZEND_ARG_INFO(0, PREVIEW)
1210 // ZEND_END_ARG_INFO()
1211 //
1212 // ZEND_BEGIN_ARG_INFO_EX(imagick_profileimage_args, 0, 0, 2)
1213 // ZEND_ARG_INFO(0, name)
1214 // ZEND_ARG_INFO(0, profile)
1215 // ZEND_END_ARG_INFO()
1216 //
1217 // ZEND_BEGIN_ARG_INFO_EX(imagick_quantizeimage_args, 0, 0, 5)
1218 // ZEND_ARG_INFO(0, numColors)
1219 // ZEND_ARG_INFO(0, COLORSPACE)
1220 // ZEND_ARG_INFO(0, treeDepth)
1221 // ZEND_ARG_INFO(0, dither)
1222 // ZEND_ARG_INFO(0, measureError)
1223 // ZEND_END_ARG_INFO()
1224 //
1225 // ZEND_BEGIN_ARG_INFO_EX(imagick_quantizeimages_args, 0, 0, 5)
1226 // ZEND_ARG_INFO(0, numColors)
1227 // ZEND_ARG_INFO(0, COLORSPACE)
1228 // ZEND_ARG_INFO(0, treeDepth)
1229 // ZEND_ARG_INFO(0, dither)
1230 // ZEND_ARG_INFO(0, measureError)
1231 // ZEND_END_ARG_INFO()
1232 //
1233 //#if !defined(MAGICKCORE_EXCLUDE_DEPRECATED)
1234 //#if MagickLibVersion < 0x700
1235 // ZEND_BEGIN_ARG_INFO_EX(imagick_reducenoiseimage_args, 0, 0, 1)
1236 // ZEND_ARG_INFO(0, radius)
1237 // ZEND_END_ARG_INFO()
1238 //#endif
1239 //#endif
1240 //
1241 // ZEND_BEGIN_ARG_INFO_EX(imagick_removeimageprofile_args, 0, 0, 1)
1242 // ZEND_ARG_INFO(0, name)
1243 // ZEND_END_ARG_INFO()
1244 //
1245 // ZEND_BEGIN_ARG_INFO_EX(imagick_separateimagechannel_args, 0, 0, 1)
1246 // ZEND_ARG_INFO(0, CHANNEL)
1247 // ZEND_END_ARG_INFO()
1248 //
1249 // ZEND_BEGIN_ARG_INFO_EX(imagick_sepiatoneimage_args, 0, 0, 1)
1250 // ZEND_ARG_INFO(0, threshold)
1251 // ZEND_END_ARG_INFO()
1252 //
1253 //#if MagickLibVersion < 0x700
1254 // ZEND_BEGIN_ARG_INFO_EX(imagick_setimagebias_args, 0, 0, 1)
1255 // ZEND_ARG_INFO(0, bias)
1256 // ZEND_END_ARG_INFO()
1257 //#endif
1258 //
1259 //#if MagickLibVersion < 0x700
1260 // ZEND_BEGIN_ARG_INFO_EX(imagick_setimagebiasquantum_args, 0, 0, 1)
1261 // ZEND_ARG_INFO(0, bias)
1262 // ZEND_END_ARG_INFO()
1263 //#endif
1264 //
1265 // ZEND_BEGIN_ARG_INFO_EX(imagick_setimageblueprimary_args, 0, 0, 2)
1266 // ZEND_ARG_INFO(0, x)
1267 // ZEND_ARG_INFO(0, y)
1268 // ZEND_END_ARG_INFO()
1269 //
1270 // ZEND_BEGIN_ARG_INFO_EX(imagick_setimagebordercolor_args, 0, 0, 1)
1271 // ZEND_ARG_INFO(0, color)
1272 // ZEND_END_ARG_INFO()
1273 //
1274 // ZEND_BEGIN_ARG_INFO_EX(imagick_setimagechanneldepth_args, 0, 0, 2)
1275 // ZEND_ARG_INFO(0, CHANNEL)
1276 // ZEND_ARG_INFO(0, depth)
1277 // ZEND_END_ARG_INFO()
1278 //
1279 // ZEND_BEGIN_ARG_INFO_EX(imagick_setimagecolormapcolor_args, 0, 0, 2)
1280 // ZEND_ARG_INFO(0, index)
1281 // ZEND_ARG_INFO(0, color)
1282 // ZEND_END_ARG_INFO()
1283 //
1284 // ZEND_BEGIN_ARG_INFO_EX(imagick_setimagecolorspace_args, 0, 0, 1)
1285 // ZEND_ARG_INFO(0, COLORSPACE)
1286 // ZEND_END_ARG_INFO()
1287 //
1288 // ZEND_BEGIN_ARG_INFO_EX(imagick_setimagedispose_args, 0, 0, 1)
1289 // ZEND_ARG_INFO(0, DISPOSETYPE)
1290 // ZEND_END_ARG_INFO()
1291 //
1292 // ZEND_BEGIN_ARG_INFO_EX(imagick_setimageextent_args, 0, 0, 2)
1293 // ZEND_ARG_INFO(0, columns)
1294 // ZEND_ARG_INFO(0, rows)
1295 // ZEND_END_ARG_INFO()
1296 //
1297 // ZEND_BEGIN_ARG_INFO_EX(imagick_setimagegreenprimary_args, 0, 0, 2)
1298 // ZEND_ARG_INFO(0, x)
1299 // ZEND_ARG_INFO(0, y)
1300 // ZEND_END_ARG_INFO()
1301 //
1302 // ZEND_BEGIN_ARG_INFO_EX(imagick_setimageinterlacescheme_args, 0, 0, 1)
1303 // ZEND_ARG_INFO(0, INTERLACE)
1304 // ZEND_END_ARG_INFO()
1305 //
1306 // ZEND_BEGIN_ARG_INFO_EX(imagick_setimageprofile_args, 0, 0, 2)
1307 // ZEND_ARG_INFO(0, name)
1308 // ZEND_ARG_INFO(0, profile)
1309 // ZEND_END_ARG_INFO()
1310 //
1311 // ZEND_BEGIN_ARG_INFO_EX(imagick_setimageredprimary_args, 0, 0, 2)
1312 // ZEND_ARG_INFO(0, x)
1313 // ZEND_ARG_INFO(0, y)
1314 // ZEND_END_ARG_INFO()
1315 //
1316 // ZEND_BEGIN_ARG_INFO_EX(imagick_setimagerenderingintent_args, 0, 0, 1)
1317 // ZEND_ARG_INFO(0, RENDERINGINTENT)
1318 // ZEND_END_ARG_INFO()
1319 //
1320 // ZEND_BEGIN_ARG_INFO_EX(imagick_setimagevirtualpixelmethod_args, 0, 0, 1)
1321 // ZEND_ARG_INFO(0, VIRTUALPIXELMETHOD)
1322 // ZEND_END_ARG_INFO()
1323 //
1324 // ZEND_BEGIN_ARG_INFO_EX(imagick_setimagewhitepoint_args, 0, 0, 2)
1325 // ZEND_ARG_INFO(0, x)
1326 // ZEND_ARG_INFO(0, y)
1327 // ZEND_END_ARG_INFO()
1328 //
1329 // ZEND_BEGIN_ARG_INFO_EX(imagick_sigmoidalcontrastimage_args, 0, 0, 3)
1330 // ZEND_ARG_INFO(0, sharpen)
1331 // ZEND_ARG_INFO(0, contrast)
1332 // ZEND_ARG_INFO(0, midpoint)
1333 // ZEND_ARG_INFO(0, CHANNEL)
1334 // ZEND_END_ARG_INFO()
1335 //
1336 // ZEND_BEGIN_ARG_INFO_EX(imagick_stereoimage_args, 0, 0, 1)
1337 // ZEND_ARG_OBJ_INFO(0, Imagick, Imagick, 0)
1338 // ZEND_END_ARG_INFO()
1339 //
1340 // ZEND_BEGIN_ARG_INFO_EX(imagick_textureimage_args, 0, 0, 1)
1341 // ZEND_ARG_OBJ_INFO(0, Imagick, Imagick, 0)
1342 // ZEND_END_ARG_INFO()
1343 //
1344 // ZEND_BEGIN_ARG_INFO_EX(imagick_tintimage_args, 0, 0, 2)
1345 // ZEND_ARG_INFO(0, tint_color)
1346 // ZEND_ARG_INFO(0, opacity)
1347 // ZEND_ARG_INFO(0, legacy)
1348 // ZEND_END_ARG_INFO()
1349 //
1350 // ZEND_BEGIN_ARG_INFO_EX(imagick_unsharpmaskimage_args, 0, 0, 4)
1351 // ZEND_ARG_INFO(0, radius)
1352 // ZEND_ARG_INFO(0, sigma)
1353 // ZEND_ARG_INFO(0, amount)
1354 // ZEND_ARG_INFO(0, threshold)
1355 // ZEND_ARG_INFO(0, CHANNEL)
1356 // ZEND_END_ARG_INFO()
1357 //
1358 // ZEND_BEGIN_ARG_INFO_EX(imagick_addimage_args, 0, 0, 1)
1359 // ZEND_ARG_OBJ_INFO(0, Imagick, Imagick, 0)
1360 // ZEND_END_ARG_INFO()
1361 //
1362 // ZEND_BEGIN_ARG_INFO_EX(imagick_setimage_args, 0, 0, 1)
1363 // ZEND_ARG_OBJ_INFO(0, Imagick, Imagick, 0)
1364 // ZEND_END_ARG_INFO()
1365 //
1366 // ZEND_BEGIN_ARG_INFO_EX(imagick_newimage_args, 0, 0, 3)
1367 // ZEND_ARG_INFO(0, columns)
1368 // ZEND_ARG_INFO(0, rows)
1369 // ZEND_ARG_INFO(0, background_color)
1370 // ZEND_ARG_INFO(0, format)
1371 // ZEND_END_ARG_INFO()
1372 //
1373 // ZEND_BEGIN_ARG_INFO_EX(imagick_newpseudoimage_args, 0, 0, 3)
1374 // ZEND_ARG_INFO(0, columns)
1375 // ZEND_ARG_INFO(0, rows)
1376 // ZEND_ARG_INFO(0, pseudoString)
1377 // ZEND_END_ARG_INFO()
1378 //
1379 // ZEND_BEGIN_ARG_INFO_EX(imagick_getoption_args, 0, 0, 1)
1380 // ZEND_ARG_INFO(0, key)
1381 // ZEND_END_ARG_INFO()
1382 //
1383 // ZEND_BEGIN_ARG_INFO_EX(imagick_getconfigureoptions_args, 0, 0, 0)
1384 // ZEND_ARG_INFO(0, pattern)
1385 // ZEND_END_ARG_INFO()
1386 //
1387 // ZEND_BEGIN_ARG_INFO_EX(imagick_getresource_args, 0, 0, 1)
1388 // ZEND_ARG_INFO(0, resource_type)
1389 // ZEND_END_ARG_INFO()
1390 //
1391 // ZEND_BEGIN_ARG_INFO_EX(imagick_getresourcelimit_args, 0, 0, 1)
1392 // ZEND_ARG_INFO(0, resource_type)
1393 // ZEND_END_ARG_INFO()
1394 //
1395 // ZEND_BEGIN_ARG_INFO_EX(imagick_setbackgroundcolor_args, 0, 0, 1)
1396 // ZEND_ARG_INFO(0, color)
1397 // ZEND_END_ARG_INFO()
1398 //
1399 // ZEND_BEGIN_ARG_INFO_EX(imagick_setcompression_args, 0, 0, 1)
1400 // ZEND_ARG_INFO(0, compression)
1401 // ZEND_END_ARG_INFO()
1402 //
1403 // ZEND_BEGIN_ARG_INFO_EX(imagick_setcompressionquality_args, 0, 0, 1)
1404 // ZEND_ARG_INFO(0, compressionquality)
1405 // ZEND_END_ARG_INFO()
1406 //
1407 // ZEND_BEGIN_ARG_INFO_EX(imagick_setfilename_args, 0, 0, 1)
1408 // ZEND_ARG_INFO(0, filename)
1409 // ZEND_END_ARG_INFO()
1410 //
1411 // ZEND_BEGIN_ARG_INFO_EX(imagick_setformat_args, 0, 0, 1)
1412 // ZEND_ARG_INFO(0, format)
1413 // ZEND_END_ARG_INFO()
1414 //
1415 // ZEND_BEGIN_ARG_INFO_EX(imagick_setinterlacescheme_args, 0, 0, 1)
1416 // ZEND_ARG_INFO(0, INTERLACE)
1417 // ZEND_END_ARG_INFO()
1418 //
1419 // ZEND_BEGIN_ARG_INFO_EX(imagick_setoption_args, 0, 0, 2)
1420 // ZEND_ARG_INFO(0, key)
1421 // ZEND_ARG_INFO(0, value)
1422 // ZEND_END_ARG_INFO()
1423 //
1424 // ZEND_BEGIN_ARG_INFO_EX(imagick_setpage_args, 0, 0, 4)
1425 // ZEND_ARG_INFO(0, width)
1426 // ZEND_ARG_INFO(0, height)
1427 // ZEND_ARG_INFO(0, x)
1428 // ZEND_ARG_INFO(0, y)
1429 // ZEND_END_ARG_INFO()
1430 //
1431 // ZEND_BEGIN_ARG_INFO_EX(imagick_setresourcelimit_args, 0, 0, 2)
1432 // ZEND_ARG_INFO(0, RESOURCETYPE)
1433 // ZEND_ARG_INFO(0, limit)
1434 // ZEND_END_ARG_INFO()
1435 //
1436 // ZEND_BEGIN_ARG_INFO_EX(imagick_setresolution_args, 0, 0, 2)
1437 // ZEND_ARG_INFO(0, xResolution)
1438 // ZEND_ARG_INFO(0, yResolution)
1439 // ZEND_END_ARG_INFO()
1440 //
1441 // ZEND_BEGIN_ARG_INFO_EX(imagick_setsamplingfactors_args, 0, 0, 1)
1442 // ZEND_ARG_INFO(0, factors)
1443 // ZEND_END_ARG_INFO()
1444 //
1445 // ZEND_BEGIN_ARG_INFO_EX(imagick_setsize_args, 0, 0, 2)
1446 // ZEND_ARG_INFO(0, columns)
1447 // ZEND_ARG_INFO(0, rows)
1448 // ZEND_END_ARG_INFO()
1449 //
1450 // ZEND_BEGIN_ARG_INFO_EX(imagick_settype_args, 0, 0, 1)
1451 // ZEND_ARG_INFO(0, IMGTYPE)
1452 // ZEND_END_ARG_INFO()
1453 //
1454 //#if MagickLibVersion >= 0x659
1455 // ZEND_BEGIN_ARG_INFO_EX(imagick_brightnesscontrastimage_args, 0, 0, 2)
1456 // ZEND_ARG_INFO(0, brightness)
1457 // ZEND_ARG_INFO(0, contrast)
1458 // ZEND_ARG_INFO(0, CHANNEL)
1459 // ZEND_END_ARG_INFO()
1460 //#endif
1461 //
1462 //#if MagickLibVersion > 0x661
1463 // ZEND_BEGIN_ARG_INFO_EX(imagick_colormatriximage_args, 0, 0, 1)
1464 // ZEND_ARG_INFO(0, color_matrix)
1465 // ZEND_END_ARG_INFO()
1466 //#endif
1467 //
1468 // ZEND_BEGIN_ARG_INFO_EX(imagick_selectiveblurimage_args, 0, 0, 4)
1469 // ZEND_ARG_INFO(0, radius)
1470 // ZEND_ARG_INFO(0, sigma)
1471 // ZEND_ARG_INFO(0, threshold)
1472 // ZEND_ARG_INFO(0, CHANNEL)
1473 // ZEND_END_ARG_INFO()
1474 //
1475 //#if MagickLibVersion >= 0x689
1476 // ZEND_BEGIN_ARG_INFO_EX(imagick_rotationalblurimage_args, 0, 0, 1)
1477 // ZEND_ARG_INFO(0, angle)
1478 // ZEND_ARG_INFO(0, CHANNEL)
1479 // ZEND_END_ARG_INFO()
1480 //#endif
1481 //
1482 //#if MagickLibVersion >= 0x683
1483 // ZEND_BEGIN_ARG_INFO_EX(imagick_statisticimage_args, 0, 0, 3)
1484 // ZEND_ARG_INFO(0, type)
1485 // ZEND_ARG_INFO(0, width)
1486 // ZEND_ARG_INFO(0, height)
1487 // ZEND_ARG_INFO(0, CHANNEL)
1488 // ZEND_END_ARG_INFO()
1489 //#endif
1490 //
1491 //#if MagickLibVersion >= 0x652
1492 // ZEND_BEGIN_ARG_INFO_EX(imagick_subimagematch_args, 0, 0, 1)
1493 // ZEND_ARG_OBJ_INFO(0, Imagick, Imagick, 0)
1494 // ZEND_ARG_INFO(1, offset)
1495 // ZEND_ARG_INFO(1, similarity)
1496 // ZEND_ARG_INFO(1, similarity_threshold) // the minimum similarity to match?
1497 // ZEND_ARG_INFO(1, metric) //Which comparison to use METRIC_*
1498 // ZEND_END_ARG_INFO()
1499 //#endif
1500 //
1501 //#if PHP_VERSION_ID >= 50600
1502 // ZEND_BEGIN_ARG_INFO_EX(imagick_count_args, 0, 0, 0)
1503 // ZEND_ARG_INFO(0, mode)
1504 // ZEND_END_ARG_INFO()
1505 //#endif
1506 //
1507 // ZEND_BEGIN_ARG_INFO_EX(imagick_setregistry_args, 0, 0, 2)
1508 // ZEND_ARG_INFO(0, key)
1509 // ZEND_ARG_INFO(0, value)
1510 // ZEND_END_ARG_INFO()
1511 //
1512 // ZEND_BEGIN_ARG_INFO_EX(imagick_getregistry_args, 0, 0, 1)
1513 // ZEND_ARG_INFO(0, key)
1514 // ZEND_END_ARG_INFO()
1515 //
1516 // ZEND_BEGIN_ARG_INFO_EX(imagick_setantialias_args, 0, 0, 1)
1517 // ZEND_ARG_INFO(0, antialias)
1518 // ZEND_END_ARG_INFO()
1519 //
1520 // ZEND_BEGIN_ARG_INFO_EX(imagick_colordecisionlistimage_args, 0, 0, 1)
1521 // ZEND_ARG_INFO(0, antialias)
1522 // ZEND_END_ARG_INFO()
1523 //
1524 // ZEND_BEGIN_ARG_INFO_EX(imagick_autogammaimage_args, 0, 0, 1)
1525 // ZEND_ARG_INFO(0, CHANNEL)
1526 // ZEND_END_ARG_INFO()
1527 //
1528 // ZEND_BEGIN_ARG_INFO_EX(imagick_compositeimagegravity_args, 0, 0, 3)
1529 // ZEND_ARG_OBJ_INFO(0, Imagick, Imagick, 0)
1530 // ZEND_ARG_INFO(0, COMPOSITE)
1531 // ZEND_ARG_INFO(0, GRAVITY)
1532 // ZEND_END_ARG_INFO()
1533 //
1534 //#if MagickLibVersion >= 0x693
1535 // ZEND_BEGIN_ARG_INFO_EX(imagick_localContrastImage_args, 0, 0, 2)
1536 // ZEND_ARG_INFO(0, radius)
1537 // ZEND_ARG_INFO(0, strength)
1538 // ZEND_END_ARG_INFO()
1539 //#endif // MagickLibVersion >= 0x693
1540
1541 //
1542 ///* ImagickDraw */
1543 //#if MagickLibVersion > 0x649
1544 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_settextkerning_args, 0, 0, 1)
1545 // ZEND_ARG_INFO(0, kerning)
1546 // ZEND_END_ARG_INFO()
1547 //
1548 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_settextinterwordspacing_args, 0, 0, 1)
1549 // ZEND_ARG_INFO(0, spacing)
1550 // ZEND_END_ARG_INFO()
1551 //#endif
1552 //#if MagickLibVersion > 0x655
1553 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_settextinterlinespacing_args, 0, 0, 1)
1554 // ZEND_ARG_INFO(0, spacing)
1555 // ZEND_END_ARG_INFO()
1556 //#endif
1557 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_zero_args, 0, 0, 0)
1558 // ZEND_END_ARG_INFO()
1559 //
1560 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_setfillcolor_args, 0, 0, 1)
1561 // ZEND_ARG_INFO(0, color)
1562 // ZEND_END_ARG_INFO()
1563 //
1564 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_setfillalpha_args, 0, 0, 1)
1565 // ZEND_ARG_INFO(0, alpha)
1566 // ZEND_END_ARG_INFO()
1567 //
1568 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_setstrokecolor_args, 0, 0, 1)
1569 // ZEND_ARG_INFO(0, color)
1570 // ZEND_END_ARG_INFO()
1571 //
1572 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_setresolution_args, 0, 0, 2)
1573 // ZEND_ARG_INFO(0, x_resolution)
1574 // ZEND_ARG_INFO(0, y_resolution)
1575 // ZEND_END_ARG_INFO()
1576 //
1577 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_setstrokealpha_args, 0, 0, 1)
1578 // ZEND_ARG_INFO(0, alpha)
1579 // ZEND_END_ARG_INFO()
1580 //
1581 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_setstrokewidth_args, 0, 0, 1)
1582 // ZEND_ARG_INFO(0, width)
1583 // ZEND_END_ARG_INFO()
1584 //
1585 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_circle_args, 0, 0, 4)
1586 // ZEND_ARG_INFO(0, ox)
1587 // ZEND_ARG_INFO(0, oy)
1588 // ZEND_ARG_INFO(0, px)
1589 // ZEND_ARG_INFO(0, py)
1590 // ZEND_END_ARG_INFO()
1591 //
1592 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_annotation_args, 0, 0, 3)
1593 // ZEND_ARG_INFO(0, x)
1594 // ZEND_ARG_INFO(0, y)
1595 // ZEND_ARG_INFO(0, text)
1596 // ZEND_END_ARG_INFO()
1597 //
1598 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_settextantialias_args, 0, 0, 1)
1599 // ZEND_ARG_INFO(0, antialias)
1600 // ZEND_END_ARG_INFO()
1601 //
1602 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_settextencoding_args, 0, 0, 1)
1603 // ZEND_ARG_INFO(0, encoding)
1604 // ZEND_END_ARG_INFO()
1605 //
1606 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_setfont_args, 0, 0, 1)
1607 // ZEND_ARG_INFO(0, font)
1608 // ZEND_END_ARG_INFO()
1609 //
1610 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_setfontfamily_args, 0, 0, 1)
1611 // ZEND_ARG_INFO(0, fontfamily)
1612 // ZEND_END_ARG_INFO()
1613 //
1614 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_setfontsize_args, 0, 0, 1)
1615 // ZEND_ARG_INFO(0, pointsize)
1616 // ZEND_END_ARG_INFO()
1617 //
1618 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_setfontstyle_args, 0, 0, 1)
1619 // ZEND_ARG_INFO(0, STYLE)
1620 // ZEND_END_ARG_INFO()
1621 //
1622 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_setfontweight_args, 0, 0, 1)
1623 // ZEND_ARG_INFO(0, weight)
1624 // ZEND_END_ARG_INFO()
1625 //
1626 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_rectangle_args, 0, 0, 4)
1627 // ZEND_ARG_INFO(0, x1)
1628 // ZEND_ARG_INFO(0, y1)
1629 // ZEND_ARG_INFO(0, x2)
1630 // ZEND_ARG_INFO(0, y2)
1631 // ZEND_END_ARG_INFO()
1632 //
1633 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_roundrectangle_args, 0, 0, 6)
1634 // ZEND_ARG_INFO(0, x1)
1635 // ZEND_ARG_INFO(0, y1)
1636 // ZEND_ARG_INFO(0, x2)
1637 // ZEND_ARG_INFO(0, y2)
1638 // ZEND_ARG_INFO(0, rx)
1639 // ZEND_ARG_INFO(0, ry)
1640 // ZEND_END_ARG_INFO()
1641 //
1642 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_ellipse_args, 0, 0, 6)
1643 // ZEND_ARG_INFO(0, ox)
1644 // ZEND_ARG_INFO(0, oy)
1645 // ZEND_ARG_INFO(0, px)
1646 // ZEND_ARG_INFO(0, py)
1647 // ZEND_ARG_INFO(0, start)
1648 // ZEND_ARG_INFO(0, end)
1649 // ZEND_END_ARG_INFO()
1650 //
1651 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_skewx_args, 0, 0, 1)
1652 // ZEND_ARG_INFO(0, degrees)
1653 // ZEND_END_ARG_INFO()
1654 //
1655 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_skewy_args, 0, 0, 1)
1656 // ZEND_ARG_INFO(0, degrees)
1657 // ZEND_END_ARG_INFO()
1658 //
1659 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_translate_args, 0, 0, 2)
1660 // ZEND_ARG_INFO(0, x)
1661 // ZEND_ARG_INFO(0, y)
1662 // ZEND_END_ARG_INFO()
1663 //
1664 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_line_args, 0, 0, 4)
1665 // ZEND_ARG_INFO(0, sx)
1666 // ZEND_ARG_INFO(0, sy)
1667 // ZEND_ARG_INFO(0, ex)
1668 // ZEND_ARG_INFO(0, ey)
1669 // ZEND_END_ARG_INFO()
1670 //
1671 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_arc_args, 0, 0, 6)
1672 // ZEND_ARG_INFO(0, sx)
1673 // ZEND_ARG_INFO(0, sy)
1674 // ZEND_ARG_INFO(0, ex)
1675 // ZEND_ARG_INFO(0, ey)
1676 // ZEND_ARG_INFO(0, sd)
1677 // ZEND_ARG_INFO(0, ed)
1678 // ZEND_END_ARG_INFO()
1679 //
1680 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_matte_args, 0, 0, 3)
1681 // ZEND_ARG_INFO(0, x)
1682 // ZEND_ARG_INFO(0, y)
1683 // ZEND_ARG_INFO(0, METHOD)
1684 // ZEND_END_ARG_INFO()
1685 //
1686 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_polygon_args, 0, 0, 1)
1687 // ZEND_ARG_INFO(0, coordinates)
1688 // ZEND_END_ARG_INFO()
1689 //
1690 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_point_args, 0, 0, 2)
1691 // ZEND_ARG_INFO(0, x)
1692 // ZEND_ARG_INFO(0, y)
1693 // ZEND_END_ARG_INFO()
1694 //
1695 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_setfontstretch_args, 0, 0, 1)
1696 // ZEND_ARG_INFO(0, STRETCH)
1697 // ZEND_END_ARG_INFO()
1698 //
1699 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_setstrokeantialias_args, 0, 0, 1)
1700 // ZEND_ARG_INFO(0, antialias)
1701 // ZEND_END_ARG_INFO()
1702 //
1703 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_setfontalignment_args, 0, 0, 1)
1704 // ZEND_ARG_INFO(0, ALIGN)
1705 // ZEND_END_ARG_INFO()
1706 //
1707 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_settextdecoration_args, 0, 0, 1)
1708 // ZEND_ARG_INFO(0, DECORATION)
1709 // ZEND_END_ARG_INFO()
1710 //
1711 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_settextundercolor_args, 0, 0, 1)
1712 // ZEND_ARG_INFO(0, color)
1713 // ZEND_END_ARG_INFO()
1714 //
1715 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_setviewbox_args, 0, 0, 4)
1716 // ZEND_ARG_INFO(0, sx)
1717 // ZEND_ARG_INFO(0, sy)
1718 // ZEND_ARG_INFO(0, ex)
1719 // ZEND_ARG_INFO(0, ey)
1720 // ZEND_END_ARG_INFO()
1721 //
1722 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_affine_args, 0, 0, 1)
1723 // ZEND_ARG_INFO(0, affineMatrix)
1724 // ZEND_END_ARG_INFO()
1725 //
1726 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_bezier_args, 0, 0, 1)
1727 // ZEND_ARG_INFO(0, coordinateArray)
1728 // ZEND_END_ARG_INFO()
1729 //
1730 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_composite_args, 0, 0, 6)
1731 // ZEND_ARG_INFO(0, COMPOSE)
1732 // ZEND_ARG_INFO(0, x)
1733 // ZEND_ARG_INFO(0, y)
1734 // ZEND_ARG_INFO(0, width)
1735 // ZEND_ARG_INFO(0, height)
1736 // ZEND_ARG_OBJ_INFO(0, Imagick, Imagick, 0)
1737 // ZEND_END_ARG_INFO()
1738 //
1739 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_color_args, 0, 0, 3)
1740 // ZEND_ARG_INFO(0, x)
1741 // ZEND_ARG_INFO(0, y)
1742 // ZEND_ARG_INFO(0, PAINTMETHOD)
1743 // ZEND_END_ARG_INFO()
1744 //
1745 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_comment_args, 0, 0, 1)
1746 // ZEND_ARG_INFO(0, comment)
1747 // ZEND_END_ARG_INFO()
1748 //
1749 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_pathcurvetoabsolute_args, 0, 0, 6)
1750 // ZEND_ARG_INFO(0, x1)
1751 // ZEND_ARG_INFO(0, y1)
1752 // ZEND_ARG_INFO(0, x2)
1753 // ZEND_ARG_INFO(0, y2)
1754 // ZEND_ARG_INFO(0, x)
1755 // ZEND_ARG_INFO(0, y)
1756 // ZEND_END_ARG_INFO()
1757 //
1758 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_pathcurvetorelative_args, 0, 0, 6)
1759 // ZEND_ARG_INFO(0, x1)
1760 // ZEND_ARG_INFO(0, y1)
1761 // ZEND_ARG_INFO(0, x2)
1762 // ZEND_ARG_INFO(0, y2)
1763 // ZEND_ARG_INFO(0, x)
1764 // ZEND_ARG_INFO(0, y)
1765 // ZEND_END_ARG_INFO()
1766 //
1767 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_pathcurvetoquadraticbezierabsolute_args, 0, 0, 4)
1768 // ZEND_ARG_INFO(0, x1)
1769 // ZEND_ARG_INFO(0, y1)
1770 // ZEND_ARG_INFO(0, x)
1771 // ZEND_ARG_INFO(0, y)
1772 // ZEND_END_ARG_INFO()
1773 //
1774 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_pathcurvetoquadraticbezierrelative_args, 0, 0, 4)
1775 // ZEND_ARG_INFO(0, x1)
1776 // ZEND_ARG_INFO(0, y1)
1777 // ZEND_ARG_INFO(0, x)
1778 // ZEND_ARG_INFO(0, y)
1779 // ZEND_END_ARG_INFO()
1780 //
1781 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_pathcurvetoquadraticbeziersmoothabsolute_args, 0, 0, 2)
1782 // ZEND_ARG_INFO(0, x)
1783 // ZEND_ARG_INFO(0, y)
1784 // ZEND_END_ARG_INFO()
1785 //
1786 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_pathcurvetoquadraticbeziersmoothrelative_args, 0, 0, 2)
1787 // ZEND_ARG_INFO(0, x)
1788 // ZEND_ARG_INFO(0, y)
1789 // ZEND_END_ARG_INFO()
1790 //
1791 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_pathcurvetosmoothabsolute_args, 0, 0, 4)
1792 // ZEND_ARG_INFO(0, x1)
1793 // ZEND_ARG_INFO(0, y1)
1794 // ZEND_ARG_INFO(0, x)
1795 // ZEND_ARG_INFO(0, y)
1796 // ZEND_END_ARG_INFO()
1797 //
1798 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_pathcurvetosmoothrelative_args, 0, 0, 4)
1799 // ZEND_ARG_INFO(0, x1)
1800 // ZEND_ARG_INFO(0, y1)
1801 // ZEND_ARG_INFO(0, x)
1802 // ZEND_ARG_INFO(0, y)
1803 // ZEND_END_ARG_INFO()
1804 //
1805 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_pathellipticarcabsolute_args, 0, 0, 7)
1806 // ZEND_ARG_INFO(0, rx)
1807 // ZEND_ARG_INFO(0, ry)
1808 // ZEND_ARG_INFO(0, xAxisRotation)
1809 // ZEND_ARG_INFO(0, largeArc)
1810 // ZEND_ARG_INFO(0, sweep)
1811 // ZEND_ARG_INFO(0, x)
1812 // ZEND_ARG_INFO(0, y)
1813 // ZEND_END_ARG_INFO()
1814 //
1815 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_pathellipticarcrelative_args, 0, 0, 7)
1816 // ZEND_ARG_INFO(0, rx)
1817 // ZEND_ARG_INFO(0, ry)
1818 // ZEND_ARG_INFO(0, xAxisRotation)
1819 // ZEND_ARG_INFO(0, largeArc)
1820 // ZEND_ARG_INFO(0, sweep)
1821 // ZEND_ARG_INFO(0, x)
1822 // ZEND_ARG_INFO(0, y)
1823 // ZEND_END_ARG_INFO()
1824 //
1825 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_pathlinetoabsolute_args, 0, 0, 2)
1826 // ZEND_ARG_INFO(0, x)
1827 // ZEND_ARG_INFO(0, y)
1828 // ZEND_END_ARG_INFO()
1829 //
1830 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_pathlinetorelative_args, 0, 0, 2)
1831 // ZEND_ARG_INFO(0, x)
1832 // ZEND_ARG_INFO(0, y)
1833 // ZEND_END_ARG_INFO()
1834 //
1835 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_pathlinetohorizontalabsolute_args, 0, 0, 1)
1836 // ZEND_ARG_INFO(0, y)
1837 // ZEND_END_ARG_INFO()
1838 //
1839 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_pathlinetohorizontalrelative_args, 0, 0, 1)
1840 // ZEND_ARG_INFO(0, x)
1841 // ZEND_END_ARG_INFO()
1842 //
1843 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_pathlinetoverticalabsolute_args, 0, 0, 1)
1844 // ZEND_ARG_INFO(0, y)
1845 // ZEND_END_ARG_INFO()
1846 //
1847 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_pathlinetoverticalrelative_args, 0, 0, 1)
1848 // ZEND_ARG_INFO(0, x)
1849 // ZEND_END_ARG_INFO()
1850 //
1851 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_pathmovetoabsolute_args, 0, 0, 2)
1852 // ZEND_ARG_INFO(0, x)
1853 // ZEND_ARG_INFO(0, y)
1854 // ZEND_END_ARG_INFO()
1855 //
1856 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_pathmovetorelative_args, 0, 0, 2)
1857 // ZEND_ARG_INFO(0, x)
1858 // ZEND_ARG_INFO(0, y)
1859 // ZEND_END_ARG_INFO()
1860 //
1861 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_polyline_args, 0, 0, 1)
1862 // ZEND_ARG_INFO(0, coordinateArray)
1863 // ZEND_END_ARG_INFO()
1864 //
1865 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_pushclippath_args, 0, 0, 1)
1866 // ZEND_ARG_INFO(0, clipMask)
1867 // ZEND_END_ARG_INFO()
1868 //
1869 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_pushpattern_args, 0, 0, 5)
1870 // ZEND_ARG_INFO(0, pattern_id)
1871 // ZEND_ARG_INFO(0, x)
1872 // ZEND_ARG_INFO(0, y)
1873 // ZEND_ARG_INFO(0, width)
1874 // ZEND_ARG_INFO(0, height)
1875 // ZEND_END_ARG_INFO()
1876 //
1877 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_rotate_args, 0, 0, 1)
1878 // ZEND_ARG_INFO(0, degrees)
1879 // ZEND_END_ARG_INFO()
1880 //
1881 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_scale_args, 0, 0, 2)
1882 // ZEND_ARG_INFO(0, x)
1883 // ZEND_ARG_INFO(0, y)
1884 // ZEND_END_ARG_INFO()
1885 //
1886 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_setclippath_args, 0, 0, 1)
1887 // ZEND_ARG_INFO(0, clipMask)
1888 // ZEND_END_ARG_INFO()
1889 //
1890 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_setcliprule_args, 0, 0, 1)
1891 // ZEND_ARG_INFO(0, FILLRULE)
1892 // ZEND_END_ARG_INFO()
1893 //
1894 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_setclipunits_args, 0, 0, 1)
1895 // ZEND_ARG_INFO(0, PATHUNITS)
1896 // ZEND_END_ARG_INFO()
1897 //
1898 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_setfillopacity_args, 0, 0, 1)
1899 // ZEND_ARG_INFO(0, fillOpacity)
1900 // ZEND_END_ARG_INFO()
1901 //
1902 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_setfillpatternurl_args, 0, 0, 1)
1903 // ZEND_ARG_INFO(0, url)
1904 // ZEND_END_ARG_INFO()
1905 //
1906 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_setfillrule_args, 0, 0, 1)
1907 // ZEND_ARG_INFO(0, FILLRULE)
1908 // ZEND_END_ARG_INFO()
1909 //
1910 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_setgravity_args, 0, 0, 1)
1911 // ZEND_ARG_INFO(0, GRAVITY)
1912 // ZEND_END_ARG_INFO()
1913 //
1914 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_setstrokepatternurl_args, 0, 0, 1)
1915 // ZEND_ARG_INFO(0, url)
1916 // ZEND_END_ARG_INFO()
1917 //
1918 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_setstrokedashoffset_args, 0, 0, 1)
1919 // ZEND_ARG_INFO(0, offset)
1920 // ZEND_END_ARG_INFO()
1921 //
1922 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_setstrokelinecap_args, 0, 0, 1)
1923 // ZEND_ARG_INFO(0, LINECAP)
1924 // ZEND_END_ARG_INFO()
1925 //
1926 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_setstrokelinejoin_args, 0, 0, 1)
1927 // ZEND_ARG_INFO(0, LINEJOIN)
1928 // ZEND_END_ARG_INFO()
1929 //
1930 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_setstrokemiterlimit_args, 0, 0, 1)
1931 // ZEND_ARG_INFO(0, miterLimit)
1932 // ZEND_END_ARG_INFO()
1933 //
1934 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_setstrokeopacity_args, 0, 0, 1)
1935 // ZEND_ARG_INFO(0, strokeOpacity)
1936 // ZEND_END_ARG_INFO()
1937 //
1938 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_setvectorgraphics_args, 0, 0, 1)
1939 // ZEND_ARG_INFO(0, xml)
1940 // ZEND_END_ARG_INFO()
1941 //
1942 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_setstrokedasharray_args, 0, 0, 1)
1943 // ZEND_ARG_INFO(0, dashArray)
1944 // ZEND_END_ARG_INFO()
1945 //
1946 //#if MagickLibVersion >= 0x693
1947 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_setopacity_args, 0, 0, 1)
1948 // ZEND_ARG_INFO(0, opacity)
1949 // ZEND_END_ARG_INFO()
1950 //#endif // MagickLibVersion >= 0x693
1951 //
1952 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_setfontresolution_args, 0, 0, 2)
1953 // ZEND_ARG_INFO(0, x)
1954 // ZEND_ARG_INFO(0, y)
1955 // ZEND_END_ARG_INFO()
1956 //
1957 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_setbordercolor_args, 0, 0, 1)
1958 // ZEND_ARG_INFO(0, bordercolor)
1959 // ZEND_END_ARG_INFO()
1960 //
1961 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_settextdirection_args, 0, 0, 1)
1962 // ZEND_ARG_INFO(0, direction)
1963 // ZEND_END_ARG_INFO()
1964 //
1965 // ZEND_BEGIN_ARG_INFO_EX(imagickdraw_setdensity_args, 0, 0, 1)
1966 // ZEND_ARG_INFO(0, density)
1967 // ZEND_END_ARG_INFO()
1968
1969 ///* ImagickPixel */
1970 //#if MagickLibVersion > 0x628
1971 // ZEND_BEGIN_ARG_INFO_EX(imagickpixel_sethsl_args, 0, 0, 3)
1972 // ZEND_ARG_INFO(0, hue)
1973 // ZEND_ARG_INFO(0, saturation)
1974 // ZEND_ARG_INFO(0, luminosity)
1975 // ZEND_END_ARG_INFO()
1976 //
1977 // ZEND_BEGIN_ARG_INFO_EX(imagickpixel_setcolorvaluequantum_args, 0, 0, 1)
1978 // ZEND_ARG_INFO(0, color_value)
1979 // ZEND_END_ARG_INFO()
1980 //
1981 // ZEND_BEGIN_ARG_INFO_EX(imagickpixel_setindex_args, 0, 0, 1)
1982 // ZEND_ARG_INFO(0, index)
1983 // ZEND_END_ARG_INFO()
1984 //#endif
1985 //
1986 // ZEND_BEGIN_ARG_INFO_EX(imagickpixel_zero_args, 0, 0, 0)
1987 // ZEND_END_ARG_INFO()
1988 //
1989 // ZEND_BEGIN_ARG_INFO_EX(imagickpixel_construct_args, 0, 0, 0)
1990 // ZEND_ARG_INFO(0, color)
1991 // ZEND_END_ARG_INFO()
1992 //
1993 // ZEND_BEGIN_ARG_INFO_EX(imagickpixel_setcolor_args, 0, 0, 1)
1994 // ZEND_ARG_INFO(0, color)
1995 // ZEND_END_ARG_INFO()
1996 //
1997 // ZEND_BEGIN_ARG_INFO_EX(imagickpixel_ispixelsimilarquantum_args, 0, 0, 1)
1998 // ZEND_ARG_INFO(0, color)
1999 // ZEND_ARG_INFO(0, fuzz)
2000 // ZEND_END_ARG_INFO()
2001 //
2002 // ZEND_BEGIN_ARG_INFO_EX(imagickpixel_ispixelsimilar_args, 0, 0, 1)
2003 // ZEND_ARG_INFO(0, color)
2004 // ZEND_ARG_INFO(0, fuzz)
2005 // ZEND_END_ARG_INFO()
2006 //
2007 // ZEND_BEGIN_ARG_INFO_EX(imagickpixel_setcolorvalue_args, 0, 0, 2)
2008 // ZEND_ARG_INFO(0, color)
2009 // ZEND_ARG_INFO(0, value)
2010 // ZEND_END_ARG_INFO()
2011 //
2012 // ZEND_BEGIN_ARG_INFO_EX(imagickpixel_getcolorvalue_args, 0, 0, 1)
2013 // ZEND_ARG_INFO(0, color)
2014 // ZEND_END_ARG_INFO()
2015 //
2016 // ZEND_BEGIN_ARG_INFO_EX(imagickpixel_setcolorcount_args, 0, 0, 1)
2017 // ZEND_ARG_INFO(0, colorCount)
2018 // ZEND_END_ARG_INFO()
2019 //
2020 // ZEND_BEGIN_ARG_INFO_EX(imagickpixel_getcolor_args, 0, 0, 0)
2021 // ZEND_ARG_INFO(0, normalized)
2022 // ZEND_END_ARG_INFO()
2023 //
2024 // ZEND_BEGIN_ARG_INFO_EX(imagickpixel_setcolorfrompixel_args, 0, 0, 1)
2025 // ZEND_ARG_OBJ_INFO(0, srcPixel, ImagickPixel, 0)
2026 // ZEND_END_ARG_INFO()
2027
2028 /* ImagickPixelIterator */
2029
2030 // ZEND_BEGIN_ARG_INFO_EX(imagickpixeliterator_zero_args, 0, 0, 0)
2031 // ZEND_END_ARG_INFO()
2032 //
2033 // ZEND_BEGIN_ARG_INFO_EX(imagickpixeliterator_construct_args, 0, 0, 1)
2034 // ZEND_ARG_OBJ_INFO(0, Imagick, Imagick, 0)
2035 // ZEND_END_ARG_INFO()
2036 //
2037 // ZEND_BEGIN_ARG_INFO_EX(imagickpixeliterator_setiteratorrow_args, 0, 0, 1)
2038 // ZEND_ARG_INFO(0, row)
2039 // ZEND_END_ARG_INFO()
2040
2041 //#ifdef IMAGICK_WITH_KERNEL
2042 // ZEND_BEGIN_ARG_INFO_EX(imagickkernel_frommatrix_args, 0, 0, 1)
2043 // ZEND_ARG_INFO(0, array)
2044 // ZEND_ARG_INFO(0, array)
2045 // ZEND_END_ARG_INFO()
2046 //
2047 // ZEND_BEGIN_ARG_INFO_EX(imagickkernel_frombuiltin_args, 0, 0, 2)
2048 // ZEND_ARG_INFO(0, kerneltype)
2049 // ZEND_ARG_INFO(0, paramstring)
2050 // ZEND_END_ARG_INFO()
2051 //
2052 // ZEND_BEGIN_ARG_INFO_EX(imagickkernel_addkernel_args, 0, 0, 1)
2053 // ZEND_ARG_OBJ_INFO(0, ImagickKernel, ImagickKernel, 0)
2054 // ZEND_END_ARG_INFO()
2055 //
2056 // ZEND_BEGIN_ARG_INFO_EX(imagickkernel_scale_args, 0, 0, 1)
2057 // ZEND_ARG_INFO(0, scale)
2058 // ZEND_ARG_INFO(0, normalize_flag)
2059 // ZEND_END_ARG_INFO()
2060 //
2061 // ZEND_BEGIN_ARG_INFO_EX(imagickkernel_addunitykernel_args, 0, 0, 1)
2062 // ZEND_ARG_INFO(0, scale)
2063 // ZEND_END_ARG_INFO()
2064 //#endif
2065
2066 static zend_function_entry php_imagick_functions[] =
2067 {
2068 { NULL, NULL, NULL, 0, 0 }
2069 };
2070
2071 //static zend_function_entry php_imagickdraw_class_methods[] =
2072 //{
2073 //#if MagickLibVersion > 0x628
2074 // PHP_ME(imagickdraw, resetvectorgraphics, imagickdraw_zero_args, ZEND_ACC_PUBLIC)
2075 //#endif
2076 //#if MagickLibVersion > 0x649
2077 // PHP_ME(imagickdraw, gettextkerning, imagickdraw_zero_args, ZEND_ACC_PUBLIC)
2078 // PHP_ME(imagickdraw, settextkerning, imagickdraw_settextkerning_args, ZEND_ACC_PUBLIC)
2079 // PHP_ME(imagickdraw, gettextinterwordspacing, imagickdraw_zero_args, ZEND_ACC_PUBLIC)
2080 // PHP_ME(imagickdraw, settextinterwordspacing, imagickdraw_settextinterwordspacing_args, ZEND_ACC_PUBLIC)
2081 //#endif
2082 //#if MagickLibVersion > 0x655
2083 // PHP_ME(imagickdraw, gettextinterlinespacing, imagickdraw_zero_args, ZEND_ACC_PUBLIC)
2084 // PHP_ME(imagickdraw, settextinterlinespacing, imagickdraw_settextinterlinespacing_args, ZEND_ACC_PUBLIC)
2085 //#endif
2086 // PHP_ME(imagickdraw, __construct, imagickdraw_zero_args, ZEND_ACC_PUBLIC|ZEND_ACC_CTOR)
2087 // PHP_ME(imagickdraw, setfillcolor, imagickdraw_setfillcolor_args, ZEND_ACC_PUBLIC)
2088 // PHP_ME(imagickdraw, setfillalpha, imagickdraw_setfillalpha_args, ZEND_ACC_PUBLIC)
2089 // PHP_ME(imagickdraw, setresolution, imagickdraw_setresolution_args, ZEND_ACC_PUBLIC)
2090 // PHP_ME(imagickdraw, setstrokecolor, imagickdraw_setstrokecolor_args, ZEND_ACC_PUBLIC)
2091 // PHP_ME(imagickdraw, setstrokealpha, imagickdraw_setstrokealpha_args, ZEND_ACC_PUBLIC)
2092 // PHP_ME(imagickdraw, setstrokewidth, imagickdraw_setstrokewidth_args, ZEND_ACC_PUBLIC)
2093 // PHP_ME(imagickdraw, clear, imagickdraw_zero_args, ZEND_ACC_PUBLIC)
2094 // PHP_ME(imagickdraw, circle, imagickdraw_circle_args, ZEND_ACC_PUBLIC)
2095 // PHP_ME(imagickdraw, annotation, imagickdraw_annotation_args, ZEND_ACC_PUBLIC)
2096 // PHP_ME(imagickdraw, settextantialias, imagickdraw_settextantialias_args, ZEND_ACC_PUBLIC)
2097 // PHP_ME(imagickdraw, settextencoding, imagickdraw_settextencoding_args, ZEND_ACC_PUBLIC)
2098 // PHP_ME(imagickdraw, setfont, imagickdraw_setfont_args, ZEND_ACC_PUBLIC)
2099 // PHP_ME(imagickdraw, setfontfamily, imagickdraw_setfontfamily_args, ZEND_ACC_PUBLIC)
2100 // PHP_ME(imagickdraw, setfontsize, imagickdraw_setfontsize_args, ZEND_ACC_PUBLIC)
2101 // PHP_ME(imagickdraw, setfontstyle, imagickdraw_setfontstyle_args, ZEND_ACC_PUBLIC)
2102 // PHP_ME(imagickdraw, setfontweight, imagickdraw_setfontweight_args, ZEND_ACC_PUBLIC)
2103 // PHP_ME(imagickdraw, getfont, imagickdraw_zero_args, ZEND_ACC_PUBLIC)
2104 // PHP_ME(imagickdraw, getfontfamily, imagickdraw_zero_args, ZEND_ACC_PUBLIC)
2105 // PHP_ME(imagickdraw, getfontsize, imagickdraw_zero_args, ZEND_ACC_PUBLIC)
2106 // PHP_ME(imagickdraw, getfontstyle, imagickdraw_zero_args, ZEND_ACC_PUBLIC)
2107 // PHP_ME(imagickdraw, getfontweight, imagickdraw_zero_args, ZEND_ACC_PUBLIC)
2108 // ZEND_MALIAS(imagickdraw, destroy, clear, imagickdraw_zero_args, ZEND_ACC_PUBLIC)
2109 // PHP_ME(imagickdraw, rectangle, imagickdraw_rectangle_args, ZEND_ACC_PUBLIC)
2110 // PHP_ME(imagickdraw, roundrectangle, imagickdraw_roundrectangle_args, ZEND_ACC_PUBLIC)
2111 // PHP_ME(imagickdraw, ellipse, imagickdraw_ellipse_args, ZEND_ACC_PUBLIC)
2112 // PHP_ME(imagickdraw, skewx, imagickdraw_skewx_args, ZEND_ACC_PUBLIC)
2113 // PHP_ME(imagickdraw, skewy, imagickdraw_skewy_args, ZEND_ACC_PUBLIC)
2114 // PHP_ME(imagickdraw, translate, imagickdraw_translate_args, ZEND_ACC_PUBLIC)
2115 // PHP_ME(imagickdraw, line, imagickdraw_line_args, ZEND_ACC_PUBLIC)
2116 // PHP_ME(imagickdraw, arc, imagickdraw_arc_args, ZEND_ACC_PUBLIC)
2117 //#if MagickLibVersion >= 0x700
2118 // PHP_ME(imagickdraw, alpha, imagickdraw_matte_args, ZEND_ACC_PUBLIC)
2119 //#else
2120 // PHP_ME(imagickdraw, matte, imagickdraw_matte_args, ZEND_ACC_PUBLIC | ZEND_ACC_DEPRECATED)
2121 //#endif
2122 // PHP_ME(imagickdraw, polygon, imagickdraw_polygon_args, ZEND_ACC_PUBLIC)
2123 // PHP_ME(imagickdraw, point, imagickdraw_point_args, ZEND_ACC_PUBLIC)
2124 // PHP_ME(imagickdraw, gettextdecoration, imagickdraw_zero_args, ZEND_ACC_PUBLIC)
2125 // PHP_ME(imagickdraw, gettextencoding, imagickdraw_zero_args, ZEND_ACC_PUBLIC)
2126 // PHP_ME(imagickdraw, getfontstretch, imagickdraw_zero_args, ZEND_ACC_PUBLIC)
2127 // PHP_ME(imagickdraw, setfontstretch, imagickdraw_setfontstretch_args, ZEND_ACC_PUBLIC)
2128 // PHP_ME(imagickdraw, setstrokeantialias, imagickdraw_setstrokeantialias_args, ZEND_ACC_PUBLIC)
2129 // PHP_ME(imagickdraw, settextalignment, imagickdraw_setfontalignment_args, ZEND_ACC_PUBLIC)
2130 // PHP_ME(imagickdraw, settextdecoration, imagickdraw_settextdecoration_args, ZEND_ACC_PUBLIC)
2131 // PHP_ME(imagickdraw, settextundercolor, imagickdraw_settextundercolor_args, ZEND_ACC_PUBLIC)
2132 // PHP_ME(imagickdraw, setviewbox, imagickdraw_setviewbox_args, ZEND_ACC_PUBLIC)
2133 // PHP_ME(imagickdraw, clone, imagickdraw_zero_args, ZEND_ACC_PUBLIC)
2134 // PHP_ME(imagickdraw, affine, imagickdraw_affine_args, ZEND_ACC_PUBLIC)
2135 // PHP_ME(imagickdraw, bezier, imagickdraw_bezier_args, ZEND_ACC_PUBLIC)
2136 // PHP_ME(imagickdraw, composite, imagickdraw_composite_args, ZEND_ACC_PUBLIC)
2137 // PHP_ME(imagickdraw, color, imagickdraw_color_args, ZEND_ACC_PUBLIC)
2138 // PHP_ME(imagickdraw, comment, imagickdraw_comment_args, ZEND_ACC_PUBLIC)
2139 // PHP_ME(imagickdraw, getclippath, imagickdraw_zero_args, ZEND_ACC_PUBLIC)
2140 // PHP_ME(imagickdraw, getcliprule, imagickdraw_zero_args, ZEND_ACC_PUBLIC)
2141 // PHP_ME(imagickdraw, getclipunits, imagickdraw_zero_args, ZEND_ACC_PUBLIC)
2142 // PHP_ME(imagickdraw, getfillcolor, imagickdraw_zero_args, ZEND_ACC_PUBLIC)
2143 // PHP_ME(imagickdraw, getfillopacity, imagickdraw_zero_args, ZEND_ACC_PUBLIC)
2144 // PHP_ME(imagickdraw, getfillrule, imagickdraw_zero_args, ZEND_ACC_PUBLIC)
2145 // PHP_ME(imagickdraw, getgravity, imagickdraw_zero_args, ZEND_ACC_PUBLIC)
2146 // PHP_ME(imagickdraw, getstrokeantialias, imagickdraw_zero_args, ZEND_ACC_PUBLIC)
2147 // PHP_ME(imagickdraw, getstrokecolor, imagickdraw_zero_args, ZEND_ACC_PUBLIC)
2148 // PHP_ME(imagickdraw, getstrokedasharray, imagickdraw_zero_args, ZEND_ACC_PUBLIC)
2149 // PHP_ME(imagickdraw, getstrokedashoffset, imagickdraw_zero_args, ZEND_ACC_PUBLIC)
2150 // PHP_ME(imagickdraw, getstrokelinecap, imagickdraw_zero_args, ZEND_ACC_PUBLIC)
2151 // PHP_ME(imagickdraw, getstrokelinejoin, imagickdraw_zero_args, ZEND_ACC_PUBLIC)
2152 // PHP_ME(imagickdraw, getstrokemiterlimit, imagickdraw_zero_args, ZEND_ACC_PUBLIC)
2153 // PHP_ME(imagickdraw, getstrokeopacity, imagickdraw_zero_args, ZEND_ACC_PUBLIC)
2154 // PHP_ME(imagickdraw, getstrokewidth, imagickdraw_zero_args, ZEND_ACC_PUBLIC)
2155 // PHP_ME(imagickdraw, gettextalignment, imagickdraw_zero_args, ZEND_ACC_PUBLIC)
2156 // PHP_ME(imagickdraw, gettextantialias, imagickdraw_zero_args, ZEND_ACC_PUBLIC)
2157 // PHP_ME(imagickdraw, getvectorgraphics, imagickdraw_zero_args, ZEND_ACC_PUBLIC)
2158 // PHP_ME(imagickdraw, gettextundercolor, imagickdraw_zero_args, ZEND_ACC_PUBLIC)
2159 // PHP_ME(imagickdraw, pathclose, imagickdraw_zero_args, ZEND_ACC_PUBLIC)
2160 // PHP_ME(imagickdraw, pathcurvetoabsolute, imagickdraw_pathcurvetoabsolute_args, ZEND_ACC_PUBLIC)
2161 // PHP_ME(imagickdraw, pathcurvetorelative, imagickdraw_pathcurvetorelative_args, ZEND_ACC_PUBLIC)
2162 // PHP_ME(imagickdraw, pathcurvetoquadraticbezierabsolute, imagickdraw_pathcurvetoquadraticbezierabsolute_args, ZEND_ACC_PUBLIC)
2163 // PHP_ME(imagickdraw, pathcurvetoquadraticbezierrelative, imagickdraw_pathcurvetoquadraticbezierrelative_args, ZEND_ACC_PUBLIC)
2164 // PHP_ME(imagickdraw, pathcurvetoquadraticbeziersmoothabsolute, imagickdraw_pathcurvetoquadraticbeziersmoothabsolute_args, ZEND_ACC_PUBLIC)
2165 // PHP_ME(imagickdraw, pathcurvetoquadraticbeziersmoothrelative, imagickdraw_pathcurvetoquadraticbeziersmoothrelative_args, ZEND_ACC_PUBLIC)
2166 // PHP_ME(imagickdraw, pathcurvetosmoothabsolute, imagickdraw_pathcurvetosmoothabsolute_args, ZEND_ACC_PUBLIC)
2167 // PHP_ME(imagickdraw, pathcurvetosmoothrelative, imagickdraw_pathcurvetosmoothrelative_args, ZEND_ACC_PUBLIC)
2168 // PHP_ME(imagickdraw, pathellipticarcabsolute, imagickdraw_pathellipticarcabsolute_args, ZEND_ACC_PUBLIC)
2169 // PHP_ME(imagickdraw, pathellipticarcrelative, imagickdraw_pathellipticarcrelative_args, ZEND_ACC_PUBLIC)
2170 // PHP_ME(imagickdraw, pathfinish, imagickdraw_zero_args, ZEND_ACC_PUBLIC)
2171 // PHP_ME(imagickdraw, pathlinetoabsolute, imagickdraw_pathlinetoabsolute_args, ZEND_ACC_PUBLIC)
2172 // PHP_ME(imagickdraw, pathlinetorelative, imagickdraw_pathlinetorelative_args, ZEND_ACC_PUBLIC)
2173 // PHP_ME(imagickdraw, pathlinetohorizontalabsolute, imagickdraw_pathlinetohorizontalabsolute_args, ZEND_ACC_PUBLIC)
2174 // PHP_ME(imagickdraw, pathlinetohorizontalrelative, imagickdraw_pathlinetohorizontalrelative_args, ZEND_ACC_PUBLIC)
2175 // PHP_ME(imagickdraw, pathlinetoverticalabsolute, imagickdraw_pathlinetoverticalabsolute_args, ZEND_ACC_PUBLIC)
2176 // PHP_ME(imagickdraw, pathlinetoverticalrelative, imagickdraw_pathlinetoverticalrelative_args, ZEND_ACC_PUBLIC)
2177 // PHP_ME(imagickdraw, pathmovetoabsolute, imagickdraw_pathmovetoabsolute_args, ZEND_ACC_PUBLIC)
2178 // PHP_ME(imagickdraw, pathmovetorelative, imagickdraw_pathmovetorelative_args, ZEND_ACC_PUBLIC)
2179 // PHP_ME(imagickdraw, pathstart, imagickdraw_zero_args, ZEND_ACC_PUBLIC)
2180 // PHP_ME(imagickdraw, polyline, imagickdraw_polyline_args, ZEND_ACC_PUBLIC)
2181 // PHP_ME(imagickdraw, popclippath, imagickdraw_zero_args, ZEND_ACC_PUBLIC)
2182 // PHP_ME(imagickdraw, popdefs, imagickdraw_zero_args, ZEND_ACC_PUBLIC)
2183 // PHP_ME(imagickdraw, poppattern, imagickdraw_zero_args, ZEND_ACC_PUBLIC)
2184 // PHP_ME(imagickdraw, pushclippath, imagickdraw_pushclippath_args, ZEND_ACC_PUBLIC)
2185 // PHP_ME(imagickdraw, pushdefs, imagickdraw_zero_args, ZEND_ACC_PUBLIC)
2186 // PHP_ME(imagickdraw, pushpattern, imagickdraw_pushpattern_args, ZEND_ACC_PUBLIC)
2187 // PHP_ME(imagickdraw, render, imagickdraw_zero_args, ZEND_ACC_PUBLIC)
2188 // PHP_ME(imagickdraw, rotate, imagickdraw_rotate_args, ZEND_ACC_PUBLIC)
2189 // PHP_ME(imagickdraw, scale, imagickdraw_scale_args, ZEND_ACC_PUBLIC)
2190 // PHP_ME(imagickdraw, setclippath, imagickdraw_setclippath_args, ZEND_ACC_PUBLIC)
2191 // PHP_ME(imagickdraw, setcliprule, imagickdraw_setcliprule_args, ZEND_ACC_PUBLIC)
2192 // PHP_ME(imagickdraw, setclipunits, imagickdraw_setclipunits_args, ZEND_ACC_PUBLIC)
2193 // PHP_ME(imagickdraw, setfillopacity, imagickdraw_setfillopacity_args, ZEND_ACC_PUBLIC)
2194 // PHP_ME(imagickdraw, setfillpatternurl, imagickdraw_setfillpatternurl_args, ZEND_ACC_PUBLIC)
2195 // PHP_ME(imagickdraw, setfillrule, imagickdraw_setfillrule_args, ZEND_ACC_PUBLIC)
2196 // PHP_ME(imagickdraw, setgravity, imagickdraw_setgravity_args, ZEND_ACC_PUBLIC)
2197 // PHP_ME(imagickdraw, setstrokepatternurl, imagickdraw_setstrokepatternurl_args, ZEND_ACC_PUBLIC)
2198 // PHP_ME(imagickdraw, setstrokedashoffset, imagickdraw_setstrokedashoffset_args, ZEND_ACC_PUBLIC)
2199 // PHP_ME(imagickdraw, setstrokelinecap, imagickdraw_setstrokelinecap_args, ZEND_ACC_PUBLIC)
2200 // PHP_ME(imagickdraw, setstrokelinejoin, imagickdraw_setstrokelinejoin_args, ZEND_ACC_PUBLIC)
2201 // PHP_ME(imagickdraw, setstrokemiterlimit, imagickdraw_setstrokemiterlimit_args, ZEND_ACC_PUBLIC)
2202 // PHP_ME(imagickdraw, setstrokeopacity, imagickdraw_setstrokeopacity_args, ZEND_ACC_PUBLIC)
2203 // PHP_ME(imagickdraw, setvectorgraphics, imagickdraw_setvectorgraphics_args, ZEND_ACC_PUBLIC)
2204 // PHP_ME(imagickdraw, pop, imagickdraw_zero_args, ZEND_ACC_PUBLIC)
2205 // PHP_ME(imagickdraw, push, imagickdraw_zero_args, ZEND_ACC_PUBLIC)
2206 // PHP_ME(imagickdraw, setstrokedasharray, imagickdraw_setstrokedasharray_args, ZEND_ACC_PUBLIC)
2207 //#if MagickLibVersion >= 0x693
2208 // PHP_ME(imagickdraw, getopacity, imagickdraw_zero_args, ZEND_ACC_PUBLIC)
2209 // PHP_ME(imagickdraw, setopacity, imagickdraw_setopacity_args, ZEND_ACC_PUBLIC)
2210 //#endif //MagickLibVersion >= 0x693
2211 //#if MagickLibVersion >= 0x675
2212 // PHP_ME(imagickdraw, getfontresolution, imagickdraw_zero_args, ZEND_ACC_PUBLIC)
2213 // PHP_ME(imagickdraw, setfontresolution, imagickdraw_setfontresolution_args, ZEND_ACC_PUBLIC)
2214 // PHP_ME(imagickdraw, getbordercolor, imagickdraw_zero_args, ZEND_ACC_PUBLIC)
2215 // PHP_ME(imagickdraw, setbordercolor, imagickdraw_setbordercolor_args, ZEND_ACC_PUBLIC)
2216 //#endif //#if MagickLibVersion >= 0x675
2217 //
2218 //#if MagickLibVersion >= 0x693
2219 // PHP_ME(imagickdraw, setdensity, imagickdraw_setdensity_args, ZEND_ACC_PUBLIC)
2220 // PHP_ME(imagickdraw, getdensity, imagickdraw_zero_args, ZEND_ACC_PUBLIC)
2221 //#endif// #if MagickLibVersion >= 0x693
2222 //
2223 //#if MagickLibVersion >= 0x692
2224 // PHP_ME(imagickdraw, gettextdirection, imagickdraw_zero_args, ZEND_ACC_PUBLIC)
2225 // PHP_ME(imagickdraw, settextdirection, imagickdraw_settextdirection_args, ZEND_ACC_PUBLIC)
2226 //#endif //#if MagickLibVersion >= 0x692
2227 //
2228 // { NULL, NULL, NULL, 0, 0 }
2229 //};
2230
2231 #include "ImagickDraw_arginfo.h"
2232
2233 const zend_function_entry *php_imagickdraw_class_methods = class_ImagickDraw_methods;
2234
2235 //ZEND_BEGIN_ARG_INFO_EX(imagickpixeliterator_getpixeliterator_args, 0, 0, 6)
2236 // ZEND_ARG_OBJ_INFO(0, Imagick, Imagick, 0)
2237 //ZEND_END_ARG_INFO()
2238 //
2239 //ZEND_BEGIN_ARG_INFO_EX(imagickpixeliterator_getpixelregioniterator_args, 0, 0, 6)
2240 // ZEND_ARG_OBJ_INFO(0, Imagick, Imagick, 0)
2241 // ZEND_ARG_INFO(0, x)
2242 // ZEND_ARG_INFO(0, y)
2243 // ZEND_ARG_INFO(0, columns)
2244 // ZEND_ARG_INFO(0, rows)
2245 //ZEND_END_ARG_INFO()
2246
2247 //static
2248 //zend_function_entry php_imagickpixeliterator_class_methods[] =
2249 //{
2250 // PHP_ME(imagickpixeliterator, __construct, imagickpixeliterator_construct_args, ZEND_ACC_PUBLIC|ZEND_ACC_CTOR)
2251 // PHP_ME(imagickpixeliterator, newpixeliterator, imagickpixeliterator_zero_args, ZEND_ACC_PUBLIC)
2252 // PHP_ME(imagickpixeliterator, newpixelregioniterator, imagickpixeliterator_zero_args, ZEND_ACC_PUBLIC)
2253 // PHP_ME(imagickpixeliterator, getiteratorrow, imagickpixeliterator_zero_args, ZEND_ACC_PUBLIC)
2254 // PHP_ME(imagickpixeliterator, setiteratorrow, imagickpixeliterator_setiteratorrow_args, ZEND_ACC_PUBLIC)
2255 // PHP_ME(imagickpixeliterator, setiteratorfirstrow, imagickpixeliterator_zero_args, ZEND_ACC_PUBLIC)
2256 // PHP_ME(imagickpixeliterator, setiteratorlastrow, imagickpixeliterator_zero_args, ZEND_ACC_PUBLIC)
2257 // PHP_ME(imagickpixeliterator, getpreviousiteratorrow, imagickpixeliterator_zero_args, ZEND_ACC_PUBLIC)
2258 // PHP_ME(imagickpixeliterator, getcurrentiteratorrow, imagickpixeliterator_zero_args, ZEND_ACC_PUBLIC)
2259 // PHP_ME(imagickpixeliterator, getnextiteratorrow, imagickpixeliterator_zero_args, ZEND_ACC_PUBLIC)
2260 // PHP_ME(imagickpixeliterator, resetiterator, imagickpixeliterator_zero_args, ZEND_ACC_PUBLIC)
2261 // PHP_ME(imagickpixeliterator, synciterator, imagickpixeliterator_zero_args, ZEND_ACC_PUBLIC)
2262 // ZEND_MALIAS(imagickpixeliterator, destroy, clear, imagickpixeliterator_zero_args, ZEND_ACC_PUBLIC)
2263 // PHP_ME(imagickpixeliterator, clear, imagickpixeliterator_zero_args, ZEND_ACC_PUBLIC)
2264 //
2265 // PHP_ME(imagickpixeliterator, getpixeliterator, imagickpixeliterator_getpixeliterator_args, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC)
2266 // PHP_ME(imagickpixeliterator, getpixelregioniterator, imagickpixeliterator_getpixelregioniterator_args, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC)
2267 //
2268 // /* Iterator interface */
2269 // PHP_MALIAS(imagickpixeliterator, key, getiteratorrow, imagickpixeliterator_zero_args, ZEND_ACC_PUBLIC)
2270 // PHP_MALIAS(imagickpixeliterator, next, getnextiteratorrow, imagickpixeliterator_zero_args, ZEND_ACC_PUBLIC)
2271 // PHP_MALIAS(imagickpixeliterator, rewind, resetiterator, imagickpixeliterator_zero_args, ZEND_ACC_PUBLIC)
2272 // PHP_MALIAS(imagickpixeliterator, current, getcurrentiteratorrow, imagickpixeliterator_zero_args, ZEND_ACC_PUBLIC)
2273 //
2274 // PHP_ME(imagickpixeliterator, valid, imagickpixeliterator_zero_args, ZEND_ACC_PUBLIC)
2275 // { NULL, NULL, NULL, 0, 0 }
2276 //};
2277
2278 #include "ImagickPixelIterator_arginfo.h"
2279
2280 const zend_function_entry *php_imagickpixeliterator_class_methods = class_ImagickPixelIterator_methods;
2281
2282
2283 //static zend_function_entry php_imagickpixel_class_methods[] =
2284 //{
2285 //#if MagickLibVersion > 0x628
2286 // PHP_ME(imagickpixel, gethsl, imagickpixel_zero_args, ZEND_ACC_PUBLIC)
2287 // PHP_ME(imagickpixel, sethsl, imagickpixel_sethsl_args, ZEND_ACC_PUBLIC)
2288 // PHP_ME(imagickpixel, getcolorvaluequantum, imagickpixel_getcolorvalue_args, ZEND_ACC_PUBLIC)
2289 // PHP_ME(imagickpixel, setcolorvaluequantum, imagickpixel_setcolorvaluequantum_args, ZEND_ACC_PUBLIC)
2290 // PHP_ME(imagickpixel, getindex, imagickpixel_zero_args, ZEND_ACC_PUBLIC)
2291 // PHP_ME(imagickpixel, setindex, imagickpixel_setindex_args, ZEND_ACC_PUBLIC)
2292 //#endif
2293 // PHP_ME(imagickpixel, __construct, imagickpixel_construct_args, ZEND_ACC_PUBLIC|ZEND_ACC_CTOR)
2294 // PHP_ME(imagickpixel, setcolor, imagickpixel_setcolor_args, ZEND_ACC_PUBLIC)
2295 // PHP_ME(imagickpixel, setcolorvalue, imagickpixel_setcolorvalue_args, ZEND_ACC_PUBLIC)
2296 // PHP_ME(imagickpixel, getcolorvalue, imagickpixel_getcolorvalue_args, ZEND_ACC_PUBLIC)
2297 // PHP_ME(imagickpixel, clear, imagickpixel_zero_args, ZEND_ACC_PUBLIC)
2298 // ZEND_MALIAS(imagickpixel, destroy, clear, imagickpixel_zero_args, ZEND_ACC_PUBLIC)
2299 // PHP_MALIAS(imagickpixel, issimilar, ispixelsimilarquantum, imagickpixel_ispixelsimilarquantum_args, ZEND_ACC_PUBLIC)
2300 // PHP_ME(imagickpixel, ispixelsimilarquantum, imagickpixel_ispixelsimilarquantum_args, ZEND_ACC_PUBLIC)
2301 // PHP_ME(imagickpixel, ispixelsimilar, imagickpixel_ispixelsimilar_args, ZEND_ACC_PUBLIC)
2302 // PHP_ME(imagickpixel, getcolor, imagickpixel_getcolor_args, ZEND_ACC_PUBLIC)
2303 // PHP_ME(imagickpixel, getcolorquantum, imagickpixel_zero_args, ZEND_ACC_PUBLIC)
2304 // PHP_ME(imagickpixel, getcolorasstring, imagickpixel_zero_args, ZEND_ACC_PUBLIC)
2305 // PHP_ME(imagickpixel, getcolorcount, imagickpixel_zero_args, ZEND_ACC_PUBLIC)
2306 // PHP_ME(imagickpixel, setcolorcount, imagickpixel_setcolorcount_args, ZEND_ACC_PUBLIC)
2307 // PHP_ME(imagickpixel, clone, imagickpixel_zero_args, ZEND_ACC_PUBLIC)
2308 //#if MagickLibVersion >= 0x693
2309 // PHP_ME(imagickpixel, setcolorfrompixel, imagickpixel_setcolorfrompixel_args, ZEND_ACC_PUBLIC)
2310 //#endif //#if MagickLibVersion >= 0x693
2311 //
2312 // { NULL, NULL, NULL, 0, 0 }
2313 //};
2314
2315 #include "ImagickPixel_arginfo.h"
2316
2317 const zend_function_entry *php_imagickpixel_class_methods = class_ImagickPixel_methods;
2318
2319
2320 //
2321 //static zend_function_entry php_imagick_class_methods[] =
2322 //{
2323 //#if MagickLibVersion > 0x628
2324 // PHP_ME(imagick, optimizeimagelayers, imagick_zero_args, ZEND_ACC_PUBLIC)
2325 // PHP_ME(imagick, compareimagelayers, imagick_compareimagelayers_args, ZEND_ACC_PUBLIC)
2326 // PHP_ME(imagick, pingimageblob, imagick_pingimageblob_args, ZEND_ACC_PUBLIC)
2327 // PHP_ME(imagick, pingimagefile, imagick_pingimagefile_args, ZEND_ACC_PUBLIC)
2328 // PHP_ME(imagick, transposeimage, imagick_zero_args, ZEND_ACC_PUBLIC)
2329 // PHP_ME(imagick, transverseimage, imagick_zero_args, ZEND_ACC_PUBLIC)
2330 // PHP_ME(imagick, trimimage, imagick_trimimage_args, ZEND_ACC_PUBLIC)
2331 // PHP_ME(imagick, waveimage, imagick_waveimage_args, ZEND_ACC_PUBLIC)
2332 // PHP_ME(imagick, vignetteimage, imagick_vignetteimage_args, ZEND_ACC_PUBLIC)
2333 // PHP_ME(imagick, uniqueimagecolors, imagick_zero_args, ZEND_ACC_PUBLIC)
2334 //#if !defined(MAGICKCORE_EXCLUDE_DEPRECATED)
2335 //#if MagickLibVersion < 0x700
2336 // PHP_ME(imagick, getimagematte, imagick_zero_args, ZEND_ACC_PUBLIC | ZEND_ACC_DEPRECATED)
2337 //#endif // #if MagickLibVersion < 0x700
2338 //#endif
2339 // PHP_ME(imagick, setimagematte, imagick_setimagematte_args, ZEND_ACC_PUBLIC)
2340 // PHP_ME(imagick, adaptiveresizeimage, imagick_adaptiveresizeimage_args, ZEND_ACC_PUBLIC)
2341 // PHP_ME(imagick, sketchimage, imagick_sketchimage_args, ZEND_ACC_PUBLIC)
2342 // PHP_ME(imagick, shadeimage, imagick_shadeimage_args, ZEND_ACC_PUBLIC)
2343 // PHP_ME(imagick, getsizeoffset, imagick_zero_args, ZEND_ACC_PUBLIC)
2344 // PHP_ME(imagick, setsizeoffset, imagick_setsizeoffset_args, ZEND_ACC_PUBLIC)
2345 // PHP_ME(imagick, adaptiveblurimage, imagick_adaptiveblurimage_args, ZEND_ACC_PUBLIC)
2346 // PHP_ME(imagick, contraststretchimage, imagick_contraststretchimage_args, ZEND_ACC_PUBLIC)
2347 // PHP_ME(imagick, adaptivesharpenimage, imagick_adaptivesharpenimage_args, ZEND_ACC_PUBLIC)
2348 // PHP_ME(imagick, randomthresholdimage, imagick_randomthresholdimage_args, ZEND_ACC_PUBLIC)
2349 //#if MagickLibVersion < 0x700
2350 // PHP_ME(imagick, roundcornersimage, imagick_roundcornersimage_args, ZEND_ACC_PUBLIC | ZEND_ACC_DEPRECATED)
2351 // /* This alias is due to BWC */
2352 // PHP_MALIAS(imagick, roundcorners, roundcornersimage, imagick_roundcornersimage_args, ZEND_ACC_PUBLIC | ZEND_ACC_DEPRECATED)
2353 //#endif
2354 // PHP_ME(imagick, setiteratorindex, imagick_setiteratorindex_args, ZEND_ACC_PUBLIC)
2355 // PHP_ME(imagick, getiteratorindex, imagick_zero_args, ZEND_ACC_PUBLIC)
2356 //#if MagickLibVersion < 0x700
2357 // PHP_ME(imagick, transformimage, imagick_transformimage_args, ZEND_ACC_PUBLIC | ZEND_ACC_DEPRECATED)
2358 //#endif // #if MagickLibVersion < 0x700
2359 //#endif
2360 //#if MagickLibVersion > 0x630
2361 //#if MagickLibVersion < 0x700
2362 // PHP_ME(imagick, setimageopacity, imagick_setimageopacity_args, ZEND_ACC_PUBLIC | ZEND_ACC_DEPRECATED)
2363 //#endif
2364 //#if MagickLibVersion >= 0x700
2365 // PHP_ME(imagick, setimagealpha, imagick_setimagealpha_args, ZEND_ACC_PUBLIC)
2366 //#endif
2367 //#if MagickLibVersion < 0x700
2368 // PHP_ME(imagick, orderedposterizeimage, imagick_orderedposterizeimage_args, ZEND_ACC_PUBLIC | ZEND_ACC_DEPRECATED)
2369 //#endif //#if MagickLibVersion < 0x700
2370 //#endif //#if MagickLibVersion > 0x630
2371 //#if MagickLibVersion > 0x631
2372 // PHP_ME(imagick, polaroidimage, imagick_polaroidimage_args, ZEND_ACC_PUBLIC)
2373 // PHP_ME(imagick, getimageproperty, imagick_getimageproperty_args, ZEND_ACC_PUBLIC)
2374 // PHP_ME(imagick, setimageproperty, imagick_setimageproperty_args, ZEND_ACC_PUBLIC)
2375 // PHP_ME(imagick, deleteimageproperty, imagick_deleteimageproperty_args, ZEND_ACC_PUBLIC)
2376 // PHP_ME(imagick, identifyformat, imagick_identifyformat_args, ZEND_ACC_PUBLIC)
2377 // PHP_ME(imagick, setimageinterpolatemethod, imagick_setimageinterpolatemethod_args, ZEND_ACC_PUBLIC)
2378 // PHP_ME(imagick, getimageinterpolatemethod, imagick_zero_args, ZEND_ACC_PUBLIC)
2379 // PHP_ME(imagick, linearstretchimage, imagick_linearstretchimage_args, ZEND_ACC_PUBLIC)
2380 // PHP_ME(imagick, getimagelength, imagick_zero_args, ZEND_ACC_PUBLIC)
2381 // PHP_ME(imagick, extentimage, imagick_extentimage_args, ZEND_ACC_PUBLIC)
2382 //#endif
2383 //#if MagickLibVersion > 0x633
2384 // PHP_ME(imagick, getimageorientation, imagick_zero_args, ZEND_ACC_PUBLIC)
2385 // PHP_ME(imagick, setimageorientation, imagick_setimageorientation_args, ZEND_ACC_PUBLIC)
2386 //#endif
2387 //#if !defined(MAGICKCORE_EXCLUDE_DEPRECATED)
2388 //#if MagickLibVersion > 0x634
2389 //#if MagickLibVersion < 0x700
2390 // PHP_ME(imagick, paintfloodfillimage, imagick_paintfloodfillimage_args, ZEND_ACC_PUBLIC | ZEND_ACC_DEPRECATED)
2391 //#endif // #if MagickLibVersion < 0x700
2392 //#endif
2393 //#endif
2394 //#if MagickLibVersion > 0x635
2395 // PHP_ME(imagick, clutimage, imagick_clutimage_args, ZEND_ACC_PUBLIC)
2396 // PHP_ME(imagick, getimageproperties, imagick_getimageproperties_args, ZEND_ACC_PUBLIC)
2397 // PHP_ME(imagick, getimageprofiles, imagick_getimageprofiles_args, ZEND_ACC_PUBLIC)
2398 // PHP_ME(imagick, distortimage, imagick_distortimage_args, ZEND_ACC_PUBLIC)
2399 // PHP_ME(imagick, writeimagefile, imagick_writeimagefile_args, ZEND_ACC_PUBLIC)
2400 // PHP_ME(imagick, writeimagesfile, imagick_writeimagesfile_args, ZEND_ACC_PUBLIC)
2401 // PHP_ME(imagick, resetimagepage, imagick_resetimagepage_args, ZEND_ACC_PUBLIC)
2402 //#if MagickLibVersion < 0x700
2403 // PHP_ME(imagick, setimageclipmask, imagick_setimageclipmask_args, ZEND_ACC_PUBLIC | ZEND_ACC_DEPRECATED)
2404 // PHP_ME(imagick, getimageclipmask, imagick_zero_args, ZEND_ACC_PUBLIC | ZEND_ACC_DEPRECATED)
2405 //#endif
2406 // PHP_ME(imagick, animateimages, imagick_animateimages_args, ZEND_ACC_PUBLIC)
2407 //#if !defined(MAGICKCORE_EXCLUDE_DEPRECATED)
2408 //#if MagickLibVersion < 0x700
2409 // PHP_ME(imagick, recolorimage, imagick_recolorimage_args, ZEND_ACC_PUBLIC | ZEND_ACC_DEPRECATED)
2410 //#endif
2411 //#endif
2412 //#endif
2413 //#if MagickLibVersion > 0x636
2414 // PHP_ME(imagick, setfont, imagick_setfont_args, ZEND_ACC_PUBLIC)
2415 // PHP_ME(imagick, getfont, imagick_zero_args, ZEND_ACC_PUBLIC)
2416 // PHP_ME(imagick, setpointsize, imagick_setpointsize_args, ZEND_ACC_PUBLIC)
2417 // PHP_ME(imagick, getpointsize, imagick_zero_args, ZEND_ACC_PUBLIC)
2418 // PHP_ME(imagick, mergeimagelayers, imagick_mergeimagelayers_args, ZEND_ACC_PUBLIC)
2419 //#endif
2420 //#if MagickLibVersion > 0x637
2421 // PHP_ME(imagick, setimagealphachannel, imagick_setimagealphachannel_args, ZEND_ACC_PUBLIC)
2422 // PHP_ME(imagick, floodfillpaintimage, imagick_floodfillpaintimage_args, ZEND_ACC_PUBLIC)
2423 // PHP_ME(imagick, opaquepaintimage, imagick_opaquepaintimage_args, ZEND_ACC_PUBLIC)
2424 // PHP_ME(imagick, transparentpaintimage, imagick_transparentpaintimage_args, ZEND_ACC_PUBLIC)
2425 //#endif
2426 //#if MagickLibVersion > 0x638
2427 // PHP_ME(imagick, liquidrescaleimage, imagick_liquidrescaleimage_args, ZEND_ACC_PUBLIC)
2428 // PHP_ME(imagick, encipherimage, imagick_encipherimage_args, ZEND_ACC_PUBLIC)
2429 // PHP_ME(imagick, decipherimage, imagick_decipherimage_args, ZEND_ACC_PUBLIC)
2430 //#endif
2431 //#if MagickLibVersion > 0x639
2432 // PHP_ME(imagick, setgravity, imagick_setgravity_args, ZEND_ACC_PUBLIC)
2433 // PHP_ME(imagick, getgravity, imagick_zero_args, ZEND_ACC_PUBLIC)
2434 // PHP_ME(imagick, getimagechannelrange, imagick_getimagechannelrange_args, ZEND_ACC_PUBLIC)
2435 // PHP_ME(imagick, getimagealphachannel, imagick_zero_args, ZEND_ACC_PUBLIC)
2436 //#endif
2437 //#if MagickLibVersion > 0x642
2438 // PHP_ME(imagick, getimagechanneldistortions, imagick_getimagechanneldistortions_args, ZEND_ACC_PUBLIC)
2439 //#endif
2440 //#if MagickLibVersion > 0x643
2441 // PHP_ME(imagick, setimagegravity, imagick_setimagegravity_args, ZEND_ACC_PUBLIC)
2442 // PHP_ME(imagick, getimagegravity, imagick_zero_args, ZEND_ACC_PUBLIC)
2443 //#endif
2444 //#if MagickLibVersion > 0x645
2445 // PHP_ME(imagick, importimagepixels, imagick_importimagepixels_args, ZEND_ACC_PUBLIC)
2446 // PHP_ME(imagick, deskewimage, imagick_deskewimage_args, ZEND_ACC_PUBLIC)
2447 // PHP_ME(imagick, segmentimage, imagick_segmentimage_args, ZEND_ACC_PUBLIC)
2448 // PHP_ME(imagick, sparsecolorimage, imagick_sparsecolorimage_args, ZEND_ACC_PUBLIC)
2449 // PHP_ME(imagick, remapimage, imagick_remapimage_args, ZEND_ACC_PUBLIC)
2450 //#endif
2451 //#if PHP_IMAGICK_HAVE_HOUGHLINE
2452 // PHP_ME(imagick, houghlineimage, imagick_houghlineimage_args, ZEND_ACC_PUBLIC)
2453 //#endif
2454 //#if MagickLibVersion > 0x646
2455 // PHP_ME(imagick, exportimagepixels, imagick_exportimagepixels_args, ZEND_ACC_PUBLIC)
2456 //#endif
2457 //#if MagickLibVersion > 0x648
2458 // PHP_ME(imagick, getimagechannelkurtosis, imagick_getimagechannelkurtosis_args, ZEND_ACC_PUBLIC)
2459 // PHP_ME(imagick, functionimage, imagick_functionimage_args, ZEND_ACC_PUBLIC)
2460 //#endif
2461 //#if MagickLibVersion > 0x651
2462 // PHP_ME(imagick, transformimagecolorspace, imagick_transformimagecolorspace_args, ZEND_ACC_PUBLIC)
2463 //#endif
2464 //#if MagickLibVersion > 0x652
2465 // PHP_ME(imagick, haldclutimage, imagick_haldclutimage_args, ZEND_ACC_PUBLIC)
2466 //#endif
2467 //#if MagickLibVersion > 0x655
2468 // PHP_ME(imagick, autolevelimage, imagick_autolevelimage_args, ZEND_ACC_PUBLIC)
2469 // PHP_ME(imagick, blueshiftimage, imagick_blueshiftimage_args, ZEND_ACC_PUBLIC)
2470 //#endif
2471 //#if MagickLibVersion > 0x656
2472 // PHP_ME(imagick, getimageartifact, imagick_getimageartifact_args, ZEND_ACC_PUBLIC)
2473 // PHP_ME(imagick, setimageartifact, imagick_setimageartifact_args, ZEND_ACC_PUBLIC)
2474 // PHP_ME(imagick, deleteimageartifact, imagick_deleteimageartifact_args, ZEND_ACC_PUBLIC)
2475 // PHP_ME(imagick, getcolorspace, imagick_zero_args, ZEND_ACC_PUBLIC)
2476 // PHP_ME(imagick, setcolorspace, imagick_setcolorspace_args, ZEND_ACC_PUBLIC)
2477 // PHP_ME(imagick, clampimage, imagick_clampimage_args, ZEND_ACC_PUBLIC)
2478 //#endif
2479 //#if MagickLibVersion > 0x667
2480 // PHP_ME(imagick, smushimages, imagick_smushimages_args, ZEND_ACC_PUBLIC)
2481 //#endif
2482 // PHP_ME(imagick, __construct, imagick_construct_args, ZEND_ACC_PUBLIC|ZEND_ACC_CTOR)
2483 // PHP_ME(imagick, __tostring, imagick_zero_args, ZEND_ACC_PUBLIC)
2484 //#if PHP_VERSION_ID >= 50600
2485 // PHP_ME(imagick, count, imagick_count_args, ZEND_ACC_PUBLIC)
2486 //#else
2487 // PHP_ME(imagick, count, imagick_zero_args, ZEND_ACC_PUBLIC)
2488 //#endif
2489 // PHP_ME(imagick, getpixeliterator, imagick_zero_args, ZEND_ACC_PUBLIC)
2490 // PHP_ME(imagick, getpixelregioniterator, imagick_getpixelregioniterator_args, ZEND_ACC_PUBLIC)
2491 // PHP_ME(imagick, readimage, imagick_readimage_args, ZEND_ACC_PUBLIC)
2492 // PHP_ME(imagick, readimages, imagick_readimages_args, ZEND_ACC_PUBLIC)
2493 // PHP_ME(imagick, readimageblob, imagick_readimageblob_args, ZEND_ACC_PUBLIC)
2494 // PHP_ME(imagick, setimageformat, imagick_setimageformat_args, ZEND_ACC_PUBLIC)
2495 // PHP_ME(imagick, scaleimage, imagick_scaleimage_args, ZEND_ACC_PUBLIC)
2496 // PHP_ME(imagick, writeimage, imagick_writeimage_args, ZEND_ACC_PUBLIC)
2497 // PHP_ME(imagick, writeimages, imagick_writeimages_args, ZEND_ACC_PUBLIC)
2498 // PHP_ME(imagick, blurimage, imagick_blurimage_args, ZEND_ACC_PUBLIC)
2499 // PHP_ME(imagick, thumbnailimage, imagick_thumbnailimage_args, ZEND_ACC_PUBLIC)
2500 // PHP_ME(imagick, cropthumbnailimage, imagick_cropthumbnailimage_args, ZEND_ACC_PUBLIC)
2501 // PHP_ME(imagick, getimagefilename, imagick_zero_args, ZEND_ACC_PUBLIC)
2502 // PHP_ME(imagick, setimagefilename, imagick_setimagefilename_args, ZEND_ACC_PUBLIC)
2503 // PHP_ME(imagick, getimageformat, imagick_zero_args, ZEND_ACC_PUBLIC)
2504 // PHP_ME(imagick, getimagemimetype, imagick_zero_args, ZEND_ACC_PUBLIC)
2505 // PHP_ME(imagick, removeimage, imagick_zero_args, ZEND_ACC_PUBLIC)
2506 // ZEND_MALIAS(imagick, destroy, clear, imagick_zero_args, ZEND_ACC_PUBLIC)
2507 // PHP_ME(imagick, clear, imagick_zero_args, ZEND_ACC_PUBLIC)
2508 // PHP_ME(imagick, clone, imagick_zero_args, ZEND_ACC_PUBLIC)
2509 //#if !defined(MAGICKCORE_EXCLUDE_DEPRECATED)
2510 //#if MagickLibVersion < 0x700
2511 // PHP_ME(imagick, getimagesize, imagick_zero_args, ZEND_ACC_PUBLIC | ZEND_ACC_DEPRECATED)
2512 //#endif // #if MagickLibVersion < 0x700
2513 //#endif
2514 // PHP_ME(imagick, getimageblob, imagick_zero_args, ZEND_ACC_PUBLIC)
2515 // PHP_ME(imagick, getimagesblob, imagick_zero_args, ZEND_ACC_PUBLIC)
2516 // PHP_ME(imagick, setfirstiterator, imagick_zero_args, ZEND_ACC_PUBLIC)
2517 // PHP_ME(imagick, setlastiterator, imagick_zero_args, ZEND_ACC_PUBLIC)
2518 // PHP_ME(imagick, resetiterator, imagick_zero_args, ZEND_ACC_PUBLIC)
2519 // PHP_ME(imagick, previousimage, imagick_zero_args, ZEND_ACC_PUBLIC)
2520 // PHP_ME(imagick, nextimage, imagick_zero_args, ZEND_ACC_PUBLIC)
2521 // PHP_ME(imagick, haspreviousimage, imagick_zero_args, ZEND_ACC_PUBLIC)
2522 // PHP_ME(imagick, hasnextimage, imagick_zero_args, ZEND_ACC_PUBLIC)
2523 //#if !defined(MAGICKCORE_EXCLUDE_DEPRECATED)
2524 //#if MagickLibVersion < 0x700
2525 // PHP_ME(imagick, setimageindex, imagick_setimageindex_args, ZEND_ACC_PUBLIC | ZEND_ACC_DEPRECATED)
2526 // PHP_ME(imagick, getimageindex, imagick_zero_args, ZEND_ACC_PUBLIC | ZEND_ACC_DEPRECATED)
2527 //#endif // #if MagickLibVersion < 0x700
2528 //#endif
2529 // PHP_ME(imagick, commentimage, imagick_commentimage_args, ZEND_ACC_PUBLIC)
2530 // PHP_ME(imagick, cropimage, imagick_cropimage_args, ZEND_ACC_PUBLIC)
2531 // PHP_ME(imagick, labelimage, imagick_labelimage_args, ZEND_ACC_PUBLIC)
2532 // PHP_ME(imagick, getimagegeometry, imagick_zero_args, ZEND_ACC_PUBLIC)
2533 // PHP_ME(imagick, drawimage, imagick_drawimage_args, ZEND_ACC_PUBLIC)
2534 // PHP_ME(imagick, setimagecompressionquality, imagick_setimagecompressionquality_args, ZEND_ACC_PUBLIC)
2535 // PHP_ME(imagick, getimagecompressionquality, imagick_zero_args, ZEND_ACC_PUBLIC)
2536 // PHP_ME(imagick, setimagecompression, imagick_setimagecompression_args, ZEND_ACC_PUBLIC)
2537 // PHP_ME(imagick, getimagecompression, imagick_zero_args, ZEND_ACC_PUBLIC)
2538 // PHP_ME(imagick, annotateimage, imagick_annotateimage_args, ZEND_ACC_PUBLIC)
2539 // PHP_ME(imagick, compositeimage, imagick_compositeimage_args, ZEND_ACC_PUBLIC)
2540 // PHP_ME(imagick, modulateimage, imagick_modulateimage_args, ZEND_ACC_PUBLIC)
2541 // PHP_ME(imagick, getimagecolors, imagick_zero_args, ZEND_ACC_PUBLIC)
2542 // PHP_ME(imagick, montageimage, imagick_montageimage_args, ZEND_ACC_PUBLIC)
2543 // PHP_ME(imagick, identifyimage, imagick_identifyimage_args, ZEND_ACC_PUBLIC)
2544 // PHP_ME(imagick, thresholdimage, imagick_thresholdimage_args, ZEND_ACC_PUBLIC)
2545 // PHP_ME(imagick, adaptivethresholdimage, imagick_adaptivethresholdimage_args, ZEND_ACC_PUBLIC)
2546 // PHP_ME(imagick, blackthresholdimage, imagick_blackthresholdimage_args, ZEND_ACC_PUBLIC)
2547 // PHP_ME(imagick, whitethresholdimage, imagick_whitethresholdimage_args, ZEND_ACC_PUBLIC)
2548 // PHP_ME(imagick, appendimages, imagick_appendimages_args, ZEND_ACC_PUBLIC)
2549 // PHP_ME(imagick, charcoalimage, imagick_charcoalimage_args, ZEND_ACC_PUBLIC)
2550 // PHP_ME(imagick, normalizeimage, imagick_normalizeimage_args, ZEND_ACC_PUBLIC)
2551 // PHP_ME(imagick, oilpaintimage, imagick_oilpaintimage_args, ZEND_ACC_PUBLIC)
2552 // PHP_ME(imagick, posterizeimage, imagick_posterizeimage_args, ZEND_ACC_PUBLIC)
2553 //#if !defined(MAGICKCORE_EXCLUDE_DEPRECATED)
2554 //#if MagickLibVersion < 0x700
2555 // PHP_ME(imagick, radialblurimage, imagick_radialblurimage_args, ZEND_ACC_PUBLIC | ZEND_ACC_DEPRECATED)
2556 //#endif
2557 //#endif
2558 // PHP_ME(imagick, raiseimage, imagick_raiseimage_args, ZEND_ACC_PUBLIC)
2559 // PHP_ME(imagick, resampleimage, imagick_resampleimage_args, ZEND_ACC_PUBLIC)
2560 // PHP_ME(imagick, resizeimage, imagick_resizeimage_args, ZEND_ACC_PUBLIC)
2561 // PHP_ME(imagick, rollimage, imagick_rollimage_args, ZEND_ACC_PUBLIC)
2562 // PHP_ME(imagick, rotateimage, imagick_rotateimage_args, ZEND_ACC_PUBLIC)
2563 // PHP_ME(imagick, sampleimage, imagick_sampleimage_args, ZEND_ACC_PUBLIC)
2564 // PHP_ME(imagick, solarizeimage, imagick_solarizeimage_args, ZEND_ACC_PUBLIC)
2565 // PHP_ME(imagick, shadowimage, imagick_shadowimage_args, ZEND_ACC_PUBLIC)
2566 //#if !defined(MAGICKCORE_EXCLUDE_DEPRECATED)
2567 //#if MagickLibVersion < 0x700
2568 // PHP_ME(imagick, setimageattribute, imagick_setimageattribute_args, ZEND_ACC_PUBLIC | ZEND_ACC_DEPRECATED)
2569 //#endif // #if MagickLibVersion < 0x700
2570 //#endif
2571 // PHP_ME(imagick, setimagebackgroundcolor, imagick_setimagebackgroundcolor_args, ZEND_ACC_PUBLIC)
2572 //#if MagickLibVersion >= 0x700
2573 // PHP_ME(imagick, setimagechannelmask, imagick_setimagechannelmask_args, ZEND_ACC_PUBLIC)
2574 //#endif
2575 // PHP_ME(imagick, setimagecompose, imagick_setimagecompose_args, ZEND_ACC_PUBLIC)
2576 // PHP_ME(imagick, setimagedelay, imagick_setimagedelay_args, ZEND_ACC_PUBLIC)
2577 // PHP_ME(imagick, setimagedepth, imagick_setimagedepth_args, ZEND_ACC_PUBLIC)
2578 // PHP_ME(imagick, setimagegamma, imagick_setimagegamma_args, ZEND_ACC_PUBLIC)
2579 // PHP_ME(imagick, setimageiterations, imagick_setimageiterations_args, ZEND_ACC_PUBLIC)
2580 //#if MagickLibVersion < 0x700
2581 // PHP_ME(imagick, setimagemattecolor, imagick_setimagemattecolor_args, ZEND_ACC_PUBLIC | ZEND_ACC_DEPRECATED)
2582 //#endif // #if MagickLibVersion < 0x700
2583 // PHP_ME(imagick, setimagepage, imagick_setimagepage_args, ZEND_ACC_PUBLIC)
2584 // PHP_ME(imagick, setimageprogressmonitor, imagick_setimageprogressmonitor_args, ZEND_ACC_PUBLIC)
2585 //#if MagickLibVersion > 0x653
2586 // PHP_ME(imagick, setprogressmonitor, imagick_setprogressmonitor_args, ZEND_ACC_PUBLIC)
2587 //#endif
2588 // PHP_ME(imagick, setimageresolution, imagick_setimageresolution_args, ZEND_ACC_PUBLIC)
2589 // PHP_ME(imagick, setimagescene, imagick_setimagescene_args, ZEND_ACC_PUBLIC)
2590 // PHP_ME(imagick, setimagetickspersecond, imagick_setimagetickspersecond_args, ZEND_ACC_PUBLIC)
2591 // PHP_ME(imagick, setimagetype, imagick_setimagetype_args, ZEND_ACC_PUBLIC)
2592 // PHP_ME(imagick, setimageunits, imagick_setimageunits_args, ZEND_ACC_PUBLIC)
2593 // PHP_ME(imagick, sharpenimage, imagick_sharpenimage_args, ZEND_ACC_PUBLIC)
2594 // PHP_ME(imagick, shaveimage, imagick_shaveimage_args, ZEND_ACC_PUBLIC)
2595 // PHP_ME(imagick, shearimage, imagick_shearimage_args, ZEND_ACC_PUBLIC)
2596 // PHP_ME(imagick, spliceimage, imagick_spliceimage_args, ZEND_ACC_PUBLIC)
2597 // PHP_ME(imagick, pingimage, imagick_pingimage_args, ZEND_ACC_PUBLIC)
2598 // PHP_ME(imagick, readimagefile, imagick_readimagefile_args, ZEND_ACC_PUBLIC)
2599 // PHP_ME(imagick, displayimage, imagick_displayimage_args, ZEND_ACC_PUBLIC)
2600 // PHP_ME(imagick, displayimages, imagick_displayimages_args, ZEND_ACC_PUBLIC)
2601 // PHP_ME(imagick, spreadimage, imagick_spreadimage_args, ZEND_ACC_PUBLIC)
2602 // PHP_ME(imagick, swirlimage, imagick_swirlimage_args, ZEND_ACC_PUBLIC)
2603 // PHP_ME(imagick, stripimage, imagick_zero_args, ZEND_ACC_PUBLIC)
2604 // PHP_ME(imagick, queryformats, imagick_queryformats_args, ZEND_ACC_STATIC|ZEND_ACC_PUBLIC)
2605 // PHP_ME(imagick, queryfonts, imagick_queryfonts_args, ZEND_ACC_STATIC|ZEND_ACC_PUBLIC)
2606 // PHP_ME(imagick, queryfontmetrics, imagick_queryfontmetrics_args, ZEND_ACC_PUBLIC)
2607 // PHP_ME(imagick, steganoimage, imagick_steganoimage_args, ZEND_ACC_PUBLIC)
2608 // PHP_ME(imagick, addnoiseimage, imagick_addnoiseimage_args, ZEND_ACC_PUBLIC)
2609 // PHP_ME(imagick, motionblurimage, imagick_motionblurimage_args, ZEND_ACC_PUBLIC)
2610 //#if MagickLibVersion < 0x700
2611 //#if !defined(MAGICKCORE_EXCLUDE_DEPRECATED)
2612 // PHP_ME(imagick, mosaicimages, imagick_zero_args, ZEND_ACC_PUBLIC | ZEND_ACC_DEPRECATED)
2613 //#endif
2614 //#endif
2615 // PHP_ME(imagick, morphimages, imagick_morphimages_args, ZEND_ACC_PUBLIC)
2616 // PHP_ME(imagick, minifyimage, imagick_zero_args, ZEND_ACC_PUBLIC)
2617 // PHP_ME(imagick, affinetransformimage, imagick_affinetransformimage_args, ZEND_ACC_PUBLIC)
2618 //#if MagickLibVersion < 0x700
2619 //#if !defined(MAGICKCORE_EXCLUDE_DEPRECATED)
2620 // PHP_ME(imagick, averageimages, imagick_zero_args, ZEND_ACC_PUBLIC | ZEND_ACC_DEPRECATED)
2621 //#endif
2622 //#endif
2623 // PHP_ME(imagick, borderimage, imagick_borderimage_args, ZEND_ACC_PUBLIC)
2624 // PHP_ME(imagick, calculatecrop, imagick_calculatecrop_args, ZEND_ACC_STATIC|ZEND_ACC_PUBLIC)
2625 // PHP_ME(imagick, chopimage, imagick_chopimage_args, ZEND_ACC_PUBLIC)
2626 // PHP_ME(imagick, clipimage, imagick_zero_args, ZEND_ACC_PUBLIC)
2627 // PHP_ME(imagick, clippathimage, imagick_clippathimage_args, ZEND_ACC_PUBLIC)
2628 // /* clippathimage has been deprecated. Create alias here and use the newer API function if present */
2629 // PHP_MALIAS(imagick, clipimagepath, clippathimage, imagick_clippathimage_args, ZEND_ACC_PUBLIC)
2630 // PHP_ME(imagick, coalesceimages, imagick_zero_args, ZEND_ACC_PUBLIC)
2631 //#if !defined(MAGICKCORE_EXCLUDE_DEPRECATED)
2632 //#if MagickLibVersion < 0x700
2633 // PHP_ME(imagick, colorfloodfillimage, imagick_colorfloodfillimage_args, ZEND_ACC_PUBLIC | ZEND_ACC_DEPRECATED)
2634 //#endif // #if MagickLibVersion < 0x700
2635 //#endif
2636 // PHP_ME(imagick, colorizeimage, imagick_colorizeimage_args, ZEND_ACC_PUBLIC)
2637 // PHP_ME(imagick, compareimagechannels, imagick_compareimagechannels_args, ZEND_ACC_PUBLIC)
2638 // PHP_ME(imagick, compareimages, imagick_compareimages_args, ZEND_ACC_PUBLIC)
2639 // PHP_ME(imagick, contrastimage, imagick_contrastimage_args, ZEND_ACC_PUBLIC)
2640 // PHP_ME(imagick, combineimages, imagick_zero_args, ZEND_ACC_PUBLIC)
2641 // PHP_ME(imagick, convolveimage, imagick_convolveimage_args, ZEND_ACC_PUBLIC)
2642 // PHP_ME(imagick, cyclecolormapimage, imagick_cyclecolormapimage_args, ZEND_ACC_PUBLIC)
2643 // PHP_ME(imagick, deconstructimages, imagick_zero_args, ZEND_ACC_PUBLIC)
2644 // PHP_ME(imagick, despeckleimage, imagick_zero_args, ZEND_ACC_PUBLIC)
2645 // PHP_ME(imagick, edgeimage, imagick_edgeimage_args, ZEND_ACC_PUBLIC)
2646 // PHP_ME(imagick, embossimage, imagick_embossimage_args, ZEND_ACC_PUBLIC)
2647 // PHP_ME(imagick, enhanceimage, imagick_zero_args, ZEND_ACC_PUBLIC)
2648 // PHP_ME(imagick, equalizeimage, imagick_zero_args, ZEND_ACC_PUBLIC)
2649 // PHP_ME(imagick, evaluateimage, imagick_evaluateimage_args, ZEND_ACC_PUBLIC)
2650 //#if MagickLibVersion >= 0x687
2651 // PHP_ME(imagick, evaluateimages, imagick_evaluateimages_args, ZEND_ACC_PUBLIC)
2652 //#endif // MagickLibVersion >= 0x687
2653 //#if MagickLibVersion < 0x700
2654 //#if !defined(MAGICKCORE_EXCLUDE_DEPRECATED)
2655 // PHP_ME(imagick, flattenimages, imagick_zero_args, ZEND_ACC_PUBLIC | ZEND_ACC_DEPRECATED)
2656 //#endif
2657 //#endif
2658 // PHP_ME(imagick, flipimage, imagick_zero_args, ZEND_ACC_PUBLIC)
2659 // PHP_ME(imagick, flopimage, imagick_zero_args, ZEND_ACC_PUBLIC)
2660 //#if MagickLibVersion >= 0x655
2661 // PHP_ME(imagick, forwardfouriertransformimage, imagick_forwardfouriertransformimage_args, ZEND_ACC_PUBLIC)
2662 //#endif
2663 // PHP_ME(imagick, frameimage, imagick_frameimage_args, ZEND_ACC_PUBLIC)
2664 // PHP_ME(imagick, fximage, imagick_fximage_args, ZEND_ACC_PUBLIC)
2665 // PHP_ME(imagick, gammaimage, imagick_gammaimage_args, ZEND_ACC_PUBLIC)
2666 // PHP_ME(imagick, gaussianblurimage, imagick_gaussianblurimage_args, ZEND_ACC_PUBLIC)
2667 //#if MagickLibVersion < 0x700
2668 //#if !defined(MAGICKCORE_EXCLUDE_DEPRECATED)
2669 // PHP_ME(imagick, getimageattribute, imagick_getimageattribute_args, ZEND_ACC_PUBLIC | ZEND_ACC_DEPRECATED)
2670 //#endif
2671 //#endif
2672 // PHP_ME(imagick, getimagebackgroundcolor, imagick_zero_args, ZEND_ACC_PUBLIC)
2673 // PHP_ME(imagick, getimageblueprimary, imagick_zero_args, ZEND_ACC_PUBLIC)
2674 // PHP_ME(imagick, getimagebordercolor, imagick_zero_args, ZEND_ACC_PUBLIC)
2675 // PHP_ME(imagick, getimagechanneldepth, imagick_getimagechanneldepth_args, ZEND_ACC_PUBLIC)
2676 // PHP_ME(imagick, getimagechanneldistortion, imagick_getimagechanneldistortion_args, ZEND_ACC_PUBLIC)
2677 //#if !defined(MAGICKCORE_EXCLUDE_DEPRECATED)
2678 //#if MagickLibVersion < 0x700
2679 // PHP_ME(imagick, getimagechannelextrema, imagick_getimagechannelextrema_args, ZEND_ACC_PUBLIC | ZEND_ACC_DEPRECATED)
2680 //#endif // #if MagickLibVersion < 0x700
2681 //#endif
2682 // PHP_ME(imagick, getimagechannelmean, imagick_getimagechannelmean_args, ZEND_ACC_PUBLIC)
2683 // PHP_ME(imagick, getimagechannelstatistics, imagick_zero_args, ZEND_ACC_PUBLIC)
2684 // PHP_ME(imagick, getimagecolormapcolor, imagick_getimagecolormapcolor_args, ZEND_ACC_PUBLIC)
2685 // PHP_ME(imagick, getimagecolorspace, imagick_zero_args, ZEND_ACC_PUBLIC)
2686 // PHP_ME(imagick, getimagecompose, imagick_zero_args, ZEND_ACC_PUBLIC)
2687 // PHP_ME(imagick, getimagedelay, imagick_zero_args, ZEND_ACC_PUBLIC)
2688 // PHP_ME(imagick, getimagedepth, imagick_zero_args, ZEND_ACC_PUBLIC)
2689 // PHP_ME(imagick, getimagedistortion, imagick_getimagedistortion_args, ZEND_ACC_PUBLIC)
2690 //#if !defined(MAGICKCORE_EXCLUDE_DEPRECATED)
2691 //#if MagickLibVersion < 0x700
2692 // PHP_ME(imagick, getimageextrema, imagick_zero_args, ZEND_ACC_PUBLIC | ZEND_ACC_DEPRECATED)
2693 //#endif // #if MagickLibVersion < 0x700
2694 //#endif
2695 // PHP_ME(imagick, getimagedispose, imagick_zero_args, ZEND_ACC_PUBLIC)
2696 // PHP_ME(imagick, getimagegamma, imagick_zero_args, ZEND_ACC_PUBLIC)
2697 // PHP_ME(imagick, getimagegreenprimary, imagick_zero_args, ZEND_ACC_PUBLIC)
2698 // PHP_ME(imagick, getimageheight, imagick_zero_args, ZEND_ACC_PUBLIC)
2699 // PHP_ME(imagick, getimagehistogram, imagick_zero_args, ZEND_ACC_PUBLIC)
2700 // PHP_ME(imagick, getimageinterlacescheme, imagick_zero_args, ZEND_ACC_PUBLIC)
2701 // PHP_ME(imagick, getimageiterations, imagick_zero_args, ZEND_ACC_PUBLIC)
2702 //#if MagickLibVersion < 0x700
2703 // PHP_ME(imagick, getimagemattecolor, imagick_zero_args, ZEND_ACC_PUBLIC | ZEND_ACC_DEPRECATED)
2704 //#endif //#if MagickLibVersion < 0x700
2705 // PHP_ME(imagick, getimagepage, imagick_zero_args, ZEND_ACC_PUBLIC)
2706 // PHP_ME(imagick, getimagepixelcolor, imagick_getimagepixelcolor_args, ZEND_ACC_PUBLIC)
2707 // PHP_ME(imagick, getimageprofile, imagick_getimageprofile_args, ZEND_ACC_PUBLIC)
2708 // PHP_ME(imagick, getimageredprimary, imagick_zero_args, ZEND_ACC_PUBLIC)
2709 // PHP_ME(imagick, getimagerenderingintent, imagick_zero_args, ZEND_ACC_PUBLIC)
2710 // PHP_ME(imagick, getimageresolution, imagick_zero_args, ZEND_ACC_PUBLIC)
2711 // PHP_ME(imagick, getimagescene, imagick_zero_args, ZEND_ACC_PUBLIC)
2712 // PHP_ME(imagick, getimagesignature, imagick_zero_args, ZEND_ACC_PUBLIC)
2713 // PHP_ME(imagick, getimagetickspersecond, imagick_zero_args, ZEND_ACC_PUBLIC)
2714 // PHP_ME(imagick, getimagetype, imagick_zero_args, ZEND_ACC_PUBLIC)
2715 // PHP_ME(imagick, getimageunits, imagick_zero_args, ZEND_ACC_PUBLIC)
2716 // PHP_ME(imagick, getimagevirtualpixelmethod, imagick_zero_args, ZEND_ACC_PUBLIC)
2717 // PHP_ME(imagick, getimagewhitepoint, imagick_zero_args, ZEND_ACC_PUBLIC)
2718 // PHP_ME(imagick, getimagewidth, imagick_zero_args, ZEND_ACC_PUBLIC)
2719 // PHP_ME(imagick, getnumberimages, imagick_zero_args, ZEND_ACC_PUBLIC)
2720 // PHP_ME(imagick, getimagetotalinkdensity, imagick_zero_args, ZEND_ACC_PUBLIC)
2721 // PHP_ME(imagick, getimageregion, imagick_getimageregion_args, ZEND_ACC_PUBLIC)
2722 // PHP_ME(imagick, implodeimage, imagick_getimagetotalinkdensity_args, ZEND_ACC_PUBLIC)
2723 //#if MagickLibVersion >= 0x658
2724 // PHP_ME(imagick, inversefouriertransformimage, imagick_inversefouriertransformimage_args, ZEND_ACC_PUBLIC)
2725 //#endif
2726 // PHP_ME(imagick, levelimage, imagick_levelimage_args, ZEND_ACC_PUBLIC)
2727 // PHP_ME(imagick, magnifyimage, imagick_zero_args, ZEND_ACC_PUBLIC)
2728 //#if !defined(MAGICKCORE_EXCLUDE_DEPRECATED)
2729 //#if MagickLibVersion < 0x700
2730 // PHP_ME(imagick, mapimage, imagick_mapimage_args, ZEND_ACC_PUBLIC | ZEND_ACC_DEPRECATED)
2731 // PHP_ME(imagick, mattefloodfillimage, imagick_mattefloodfillimage_args, ZEND_ACC_PUBLIC | ZEND_ACC_DEPRECATED)
2732 //#endif // #if MagickLibVersion < 0x700
2733 //#endif
2734 //#if MagickLibVersion < 0x700
2735 //#if !defined(MAGICKCORE_EXCLUDE_DEPRECATED)
2736 // PHP_ME(imagick, medianfilterimage, imagick_medianfilterimage_args, ZEND_ACC_PUBLIC | ZEND_ACC_DEPRECATED)
2737 //#endif
2738 //#endif
2739 // PHP_ME(imagick, negateimage, imagick_negateimage_args, ZEND_ACC_PUBLIC)
2740 //#if !defined(MAGICKCORE_EXCLUDE_DEPRECATED)
2741 //#if MagickLibVersion < 0x700
2742 // PHP_ME(imagick, paintopaqueimage, imagick_paintopaqueimage_args, ZEND_ACC_PUBLIC | ZEND_ACC_DEPRECATED)
2743 // PHP_ME(imagick, painttransparentimage, imagick_painttransparentimage_args, ZEND_ACC_PUBLIC | ZEND_ACC_DEPRECATED)
2744 //#endif //#if MagickLibVersion < 0x700
2745 //#endif
2746 // PHP_ME(imagick, previewimages, imagick_previewimages_args, ZEND_ACC_PUBLIC)
2747 // PHP_ME(imagick, profileimage, imagick_profileimage_args, ZEND_ACC_PUBLIC)
2748 // PHP_ME(imagick, quantizeimage, imagick_quantizeimage_args, ZEND_ACC_PUBLIC)
2749 // PHP_ME(imagick, quantizeimages, imagick_quantizeimages_args, ZEND_ACC_PUBLIC)
2750 //#if !defined(MAGICKCORE_EXCLUDE_DEPRECATED)
2751 //#if MagickLibVersion < 0x700
2752 // PHP_ME(imagick, reducenoiseimage, imagick_reducenoiseimage_args, ZEND_ACC_PUBLIC | ZEND_ACC_DEPRECATED)
2753 //#endif
2754 //#endif
2755 // PHP_ME(imagick, removeimageprofile, imagick_removeimageprofile_args, ZEND_ACC_PUBLIC)
2756 // PHP_ME(imagick, separateimagechannel, imagick_separateimagechannel_args, ZEND_ACC_PUBLIC)
2757 // PHP_ME(imagick, sepiatoneimage, imagick_sepiatoneimage_args, ZEND_ACC_PUBLIC)
2758 //#if MagickLibVersion < 0x700
2759 // PHP_ME(imagick, setimagebias, imagick_setimagebias_args, ZEND_ACC_PUBLIC | ZEND_ACC_DEPRECATED)
2760 // PHP_ME(imagick, setimagebiasquantum, imagick_setimagebiasquantum_args, ZEND_ACC_PUBLIC | ZEND_ACC_DEPRECATED)
2761 //#endif
2762 // PHP_ME(imagick, setimageblueprimary, imagick_setimageblueprimary_args, ZEND_ACC_PUBLIC)
2763 // PHP_ME(imagick, setimagebordercolor, imagick_setimagebordercolor_args, ZEND_ACC_PUBLIC)
2764 // PHP_ME(imagick, setimagechanneldepth, imagick_setimagechanneldepth_args, ZEND_ACC_PUBLIC)
2765 // PHP_ME(imagick, setimagecolormapcolor, imagick_setimagecolormapcolor_args, ZEND_ACC_PUBLIC)
2766 // PHP_ME(imagick, setimagecolorspace, imagick_setimagecolorspace_args, ZEND_ACC_PUBLIC)
2767 // PHP_ME(imagick, setimagedispose, imagick_setimagedispose_args, ZEND_ACC_PUBLIC)
2768 // PHP_ME(imagick, setimageextent, imagick_setimageextent_args, ZEND_ACC_PUBLIC)
2769 // PHP_ME(imagick, setimagegreenprimary, imagick_setimagegreenprimary_args, ZEND_ACC_PUBLIC)
2770 // PHP_ME(imagick, setimageinterlacescheme, imagick_setimageinterlacescheme_args, ZEND_ACC_PUBLIC)
2771 // PHP_ME(imagick, setimageprofile, imagick_setimageprofile_args, ZEND_ACC_PUBLIC)
2772 // PHP_ME(imagick, setimageredprimary, imagick_setimageredprimary_args, ZEND_ACC_PUBLIC)
2773 // PHP_ME(imagick, setimagerenderingintent, imagick_setimagerenderingintent_args, ZEND_ACC_PUBLIC)
2774 // PHP_ME(imagick, setimagevirtualpixelmethod, imagick_setimagevirtualpixelmethod_args, ZEND_ACC_PUBLIC)
2775 // PHP_ME(imagick, setimagewhitepoint, imagick_setimagewhitepoint_args, ZEND_ACC_PUBLIC)
2776 // PHP_ME(imagick, sigmoidalcontrastimage, imagick_sigmoidalcontrastimage_args, ZEND_ACC_PUBLIC)
2777 // PHP_ME(imagick, stereoimage, imagick_stereoimage_args, ZEND_ACC_PUBLIC)
2778 // PHP_ME(imagick, textureimage, imagick_textureimage_args, ZEND_ACC_PUBLIC)
2779 // PHP_ME(imagick, tintimage, imagick_tintimage_args, ZEND_ACC_PUBLIC)
2780 // PHP_ME(imagick, unsharpmaskimage, imagick_unsharpmaskimage_args, ZEND_ACC_PUBLIC)
2781 // PHP_ME(imagick, getimage, imagick_zero_args, ZEND_ACC_PUBLIC)
2782 // PHP_ME(imagick, addimage, imagick_addimage_args, ZEND_ACC_PUBLIC)
2783 // PHP_ME(imagick, setimage, imagick_setimage_args, ZEND_ACC_PUBLIC)
2784 // PHP_ME(imagick, newimage, imagick_newimage_args, ZEND_ACC_PUBLIC)
2785 // PHP_ME(imagick, newpseudoimage, imagick_newpseudoimage_args, ZEND_ACC_PUBLIC)
2786 // PHP_ME(imagick, getcompression, imagick_zero_args, ZEND_ACC_PUBLIC)
2787 // PHP_ME(imagick, getcompressionquality, imagick_zero_args, ZEND_ACC_PUBLIC)
2788 // PHP_ME(imagick, getcopyright, imagick_zero_args, ZEND_ACC_STATIC|ZEND_ACC_PUBLIC)
2789 // PHP_ME(imagick, getconfigureoptions, imagick_getconfigureoptions_args, ZEND_ACC_STATIC|ZEND_ACC_PUBLIC)
2790 //#if MagickLibVersion > 0x660
2791 // PHP_ME(imagick, getfeatures, imagick_zero_args, ZEND_ACC_STATIC|ZEND_ACC_PUBLIC)
2792 //#endif
2793 // PHP_ME(imagick, getfilename, imagick_zero_args, ZEND_ACC_PUBLIC)
2794 // PHP_ME(imagick, getformat, imagick_zero_args, ZEND_ACC_PUBLIC)
2795 // PHP_ME(imagick, gethomeurl, imagick_zero_args, ZEND_ACC_STATIC|ZEND_ACC_PUBLIC)
2796 // PHP_ME(imagick, getinterlacescheme, imagick_zero_args, ZEND_ACC_PUBLIC)
2797 // PHP_ME(imagick, getoption, imagick_getoption_args, ZEND_ACC_PUBLIC)
2798 // PHP_ME(imagick, getpackagename, imagick_zero_args, ZEND_ACC_STATIC|ZEND_ACC_PUBLIC)
2799 // PHP_ME(imagick, getpage, imagick_zero_args, ZEND_ACC_PUBLIC)
2800 // PHP_ME(imagick, getquantum, imagick_zero_args, ZEND_ACC_STATIC|ZEND_ACC_PUBLIC)
2801 // PHP_ME(imagick, gethdrienabled, imagick_zero_args, ZEND_ACC_STATIC|ZEND_ACC_PUBLIC)
2802 // PHP_ME(imagick, getquantumdepth, imagick_zero_args, ZEND_ACC_STATIC|ZEND_ACC_PUBLIC)
2803 // PHP_ME(imagick, getquantumrange, imagick_zero_args, ZEND_ACC_STATIC|ZEND_ACC_PUBLIC)
2804 // PHP_ME(imagick, getreleasedate, imagick_zero_args, ZEND_ACC_STATIC|ZEND_ACC_PUBLIC)
2805 // PHP_ME(imagick, getresource, imagick_getresource_args, ZEND_ACC_STATIC|ZEND_ACC_PUBLIC)
2806 // PHP_ME(imagick, getresourcelimit, imagick_getresourcelimit_args, ZEND_ACC_STATIC|ZEND_ACC_PUBLIC)
2807 // PHP_ME(imagick, getsamplingfactors, imagick_zero_args, ZEND_ACC_PUBLIC)
2808 // PHP_ME(imagick, getsize, imagick_zero_args, ZEND_ACC_PUBLIC)
2809 // PHP_ME(imagick, getversion, imagick_zero_args, ZEND_ACC_STATIC|ZEND_ACC_PUBLIC)
2810 // PHP_ME(imagick, setbackgroundcolor, imagick_setbackgroundcolor_args, ZEND_ACC_PUBLIC)
2811 // PHP_ME(imagick, setcompression, imagick_setcompression_args, ZEND_ACC_PUBLIC)
2812 // PHP_ME(imagick, setcompressionquality, imagick_setcompressionquality_args, ZEND_ACC_PUBLIC)
2813 // PHP_ME(imagick, setfilename, imagick_setfilename_args, ZEND_ACC_PUBLIC)
2814 // PHP_ME(imagick, setformat, imagick_setformat_args, ZEND_ACC_PUBLIC)
2815 // PHP_ME(imagick, setinterlacescheme, imagick_setinterlacescheme_args, ZEND_ACC_PUBLIC)
2816 // PHP_ME(imagick, setoption, imagick_setoption_args, ZEND_ACC_PUBLIC)
2817 // PHP_ME(imagick, setpage, imagick_setpage_args, ZEND_ACC_PUBLIC)
2818 // PHP_ME(imagick, setresourcelimit, imagick_setresourcelimit_args, ZEND_ACC_STATIC|ZEND_ACC_PUBLIC)
2819 // PHP_ME(imagick, setresolution, imagick_setresolution_args, ZEND_ACC_PUBLIC)
2820 // PHP_ME(imagick, setsamplingfactors, imagick_setsamplingfactors_args, ZEND_ACC_PUBLIC)
2821 // PHP_ME(imagick, setsize, imagick_setsize_args, ZEND_ACC_PUBLIC)
2822 // PHP_ME(imagick, settype, imagick_settype_args, ZEND_ACC_PUBLIC)
2823 //#if MagickLibVersion > 0x628
2824 // PHP_MALIAS(imagick, key, getiteratorindex, imagick_zero_args, ZEND_ACC_PUBLIC)
2825 //#else
2826 //# if defined(MAGICKCORE_EXCLUDE_DEPRECATED)
2827 //# error "MAGICKCORE_EXCLUDE_DEPRECATED should not be defined with ImageMagick version below 6.2.8"
2828 //# else
2829 // PHP_MALIAS(imagick, key, getimageindex, imagick_zero_args, ZEND_ACC_PUBLIC)
2830 //# endif
2831 //#endif
2832 // PHP_MALIAS(imagick, next, nextimage, imagick_zero_args, ZEND_ACC_PUBLIC)
2833 // PHP_MALIAS(imagick, rewind, setfirstiterator, imagick_zero_args, ZEND_ACC_PUBLIC)
2834 // PHP_ME(imagick, valid, imagick_zero_args, ZEND_ACC_PUBLIC)
2835 // PHP_ME(imagick, current, imagick_zero_args, ZEND_ACC_PUBLIC)
2836 //#if MagickLibVersion >= 0x659
2837 // PHP_ME(imagick, brightnesscontrastimage, imagick_brightnesscontrastimage_args, ZEND_ACC_PUBLIC)
2838 //#endif
2839 //#if MagickLibVersion > 0x661
2840 // PHP_ME(imagick, colormatriximage, imagick_colormatriximage_args, ZEND_ACC_PUBLIC)
2841 //#endif
2842 // PHP_ME(imagick, selectiveblurimage, imagick_selectiveblurimage_args, ZEND_ACC_PUBLIC)
2843 //#if MagickLibVersion >= 0x689
2844 // PHP_ME(imagick, rotationalblurimage, imagick_rotationalblurimage_args, ZEND_ACC_PUBLIC)
2845 //#endif
2846 //#if MagickLibVersion >= 0x683
2847 // PHP_ME(imagick, statisticimage, imagick_statisticimage_args, ZEND_ACC_PUBLIC)
2848 //#endif
2849 //#if MagickLibVersion >= 0x652
2850 // PHP_ME(imagick, subimagematch, imagick_subimagematch_args, ZEND_ACC_PUBLIC)
2851 // ZEND_MALIAS(imagick, similarityimage, subimagematch, imagick_subimagematch_args, ZEND_ACC_PUBLIC)
2852 //#endif
2853 // PHP_ME(imagick, setregistry, imagick_setregistry_args, ZEND_ACC_STATIC|ZEND_ACC_PUBLIC)
2854 // PHP_ME(imagick, getregistry, imagick_getregistry_args, ZEND_ACC_STATIC|ZEND_ACC_PUBLIC)
2855 // PHP_ME(imagick, listregistry, imagick_zero_args, ZEND_ACC_STATIC|ZEND_ACC_PUBLIC)
2856 //#if MagickLibVersion >= 0x680
2857 // PHP_ME(imagick, morphology, imagick_morphology_args, ZEND_ACC_PUBLIC)
2858 //#if MagickLibVersion < 0x700
2859 // PHP_ME(imagick, filter, imagick_filter_args, ZEND_ACC_PUBLIC | ZEND_ACC_DEPRECATED)
2860 //#endif // #if MagickLibVersion < 0x700
2861 //#endif // #if MagickLibVersion >= 0x680
2862 // PHP_ME(imagick, setantialias, imagick_setantialias_args, ZEND_ACC_PUBLIC)
2863 // PHP_ME(imagick, getantialias, imagick_zero_args, ZEND_ACC_PUBLIC)
2864 //#if MagickLibVersion > 0x676
2865 // PHP_ME(imagick, colordecisionlistimage, imagick_colordecisionlistimage_args, ZEND_ACC_PUBLIC)
2866 //#endif // #if MagickLibVersion > 0x676
2867 //#if MagickLibVersion >= 0x687
2868 // PHP_ME(imagick, optimizeimagetransparency, imagick_zero_args, ZEND_ACC_PUBLIC)
2869 //#endif // #if MagickLibVersion >= 0x687
2870 //#if MagickLibVersion >= 0x660
2871 // PHP_ME(imagick, autogammaimage, imagick_autogammaimage_args, ZEND_ACC_PUBLIC)
2872 //#endif // #if MagickLibVersion >= 0x660
2873 //#if MagickLibVersion >= 0x692
2874 // PHP_ME(imagick, autoorient, imagick_zero_args, ZEND_ACC_PUBLIC)
2875 // PHP_ME(imagick, compositeimagegravity, imagick_compositeimagegravity_args, ZEND_ACC_PUBLIC)
2876 //#endif // #if MagickLibVersion >= 0x692
2877 //#if MagickLibVersion >= 0x693
2878 // PHP_ME(imagick, localcontrastimage, imagick_localContrastImage_args, ZEND_ACC_PUBLIC)
2879 //#endif // #if MagickLibVersion >= 0x692
2880 //#if MagickLibVersion >= 0x700
2881 // PHP_ME(imagick, identifyimagetype, imagick_zero_args, ZEND_ACC_PUBLIC)
2882 //#endif // #if MagickLibVersion >= 0x700
2883 //
2884 // { NULL, NULL, NULL, 0, 0 }
2885 //};
2886
2887 #include "Imagick_arginfo.h"
2888
2889 const zend_function_entry *php_imagick_class_methods = class_Imagick_methods;
2890
2891 #ifdef IMAGICK_WITH_KERNEL
2892 //static zend_function_entry php_imagickkernel_class_methods[] =
2893 //{
2894 // PHP_ME(imagickkernel, __construct, imagick_zero_args, ZEND_ACC_PRIVATE|ZEND_ACC_CTOR)
2895 // PHP_ME(imagickkernel, frommatrix, imagickkernel_frommatrix_args, ZEND_ACC_STATIC|ZEND_ACC_PUBLIC)
2896 // PHP_ME(imagickkernel, frombuiltin, imagickkernel_frombuiltin_args, ZEND_ACC_STATIC|ZEND_ACC_PUBLIC)
2897 // PHP_ME(imagickkernel, addkernel, imagickkernel_addkernel_args, ZEND_ACC_PUBLIC)
2898 // PHP_ME(imagickkernel, getmatrix, imagick_zero_args, ZEND_ACC_PUBLIC)
2899 // PHP_ME(imagickkernel, separate, imagick_zero_args, ZEND_ACC_PUBLIC)
2900 // PHP_ME(imagickkernel, scale, imagickkernel_scale_args, ZEND_ACC_PUBLIC)
2901 // PHP_ME(imagickkernel, addunitykernel, imagickkernel_addunitykernel_args, ZEND_ACC_PUBLIC)
2902 // { NULL, NULL, NULL, 0, 0 }
2903 //};
2904
2905 #include "ImagickKernel_arginfo.h"
2906
2907 const zend_function_entry *php_imagickkernel_class_methods = class_ImagickKernel_methods;
2908
2909 #endif
2910
php_imagick_object_free_storage(IM_ZEND_OBJECT * object TSRMLS_DC)2911 static void php_imagick_object_free_storage(IM_ZEND_OBJECT *object TSRMLS_DC)
2912 {
2913 php_imagick_object *intern = php_imagick_fetch_object(object);
2914
2915 if (!intern) {
2916 return;
2917 }
2918
2919 if (intern->progress_monitor_name) {
2920 //TODO - is this meant to be free by us?
2921 efree(intern->progress_monitor_name);
2922 }
2923
2924 if (intern->magick_wand != NULL) {
2925 intern->magick_wand = DestroyMagickWand(intern->magick_wand);
2926 }
2927
2928 zend_object_std_dtor(&intern->zo TSRMLS_CC);
2929 #if PHP_VERSION_ID < 70000
2930 efree(intern);
2931 #endif
2932 }
2933
2934
php_imagickdraw_object_free_storage(IM_ZEND_OBJECT * object TSRMLS_DC)2935 static void php_imagickdraw_object_free_storage(IM_ZEND_OBJECT *object TSRMLS_DC)
2936 {
2937 php_imagickdraw_object *intern = php_imagickdraw_fetch_object(object);
2938
2939 if (!intern) {
2940 return;
2941 }
2942
2943 if (intern->drawing_wand != NULL) {
2944 intern->drawing_wand = DestroyDrawingWand(intern->drawing_wand);
2945 }
2946
2947 zend_object_std_dtor(&intern->zo TSRMLS_CC);
2948
2949 #if PHP_VERSION_ID < 70000
2950 efree(intern);
2951 #endif
2952 }
2953
php_imagickpixeliterator_object_free_storage(IM_ZEND_OBJECT * object TSRMLS_DC)2954 static void php_imagickpixeliterator_object_free_storage(IM_ZEND_OBJECT *object TSRMLS_DC)
2955 {
2956 php_imagickpixeliterator_object *intern = php_imagickpixeliterator_fetch_object(object);
2957
2958 if (!intern) {
2959 return;
2960 }
2961
2962 if (intern->pixel_iterator != NULL) {
2963 intern->pixel_iterator = DestroyPixelIterator(intern->pixel_iterator);
2964 }
2965
2966 zend_object_std_dtor(&intern->zo TSRMLS_CC);
2967 #if PHP_VERSION_ID < 70000
2968 efree(intern);
2969 #endif
2970 }
2971
2972
2973
php_imagickpixel_object_free_storage(IM_ZEND_OBJECT * object TSRMLS_DC)2974 static void php_imagickpixel_object_free_storage(IM_ZEND_OBJECT *object TSRMLS_DC)
2975 {
2976 php_imagickpixel_object *intern = php_imagickpixel_fetch_object(object);
2977
2978 if (!intern) {
2979 return;
2980 }
2981 if (!intern->initialized_via_iterator && intern->pixel_wand)
2982 intern->pixel_wand = DestroyPixelWand(intern->pixel_wand);
2983
2984 zend_object_std_dtor(&intern->zo TSRMLS_CC);
2985 #if PHP_VERSION_ID < 70000
2986 efree(intern);
2987 #endif
2988 }
2989
2990 #ifdef IMAGICK_WITH_KERNEL
php_imagickkernel_object_free_storage(IM_ZEND_OBJECT * object TSRMLS_DC)2991 static void php_imagickkernel_object_free_storage(IM_ZEND_OBJECT *object TSRMLS_DC)
2992 {
2993 php_imagickkernel_object *intern = php_imagickkernel_fetch_object(object);
2994
2995 if (!intern) {
2996 return;
2997 }
2998
2999 if (intern->kernel_info != NULL) {
3000 // This segfaults in PHP 5.6
3001 //intern->kernel_info = DestroyKernelInfo(intern->kernel_info);
3002 intern->kernel_info = NULL;
3003 }
3004
3005 zend_object_std_dtor(&intern->zo TSRMLS_CC);
3006 #if PHP_VERSION_ID < 70000
3007 efree(intern);
3008 #endif
3009 }
3010 #endif
3011
3012
3013 #if PHP_VERSION_ID < 50399
3014 # define object_properties_init(zo, class_type) { \
3015 zval *tmp; \
3016 zend_hash_copy((*zo).properties, \
3017 &class_type->default_properties, \
3018 (copy_ctor_func_t) zval_add_ref, \
3019 (void *) &tmp, \
3020 sizeof(zval *)); \
3021 }
3022 #endif
3023
3024 #if PHP_VERSION_ID >= 70000
php_imagick_object_new_ex(zend_class_entry * class_type,php_imagick_object ** ptr,zend_bool init_wand TSRMLS_DC)3025 static zend_object * php_imagick_object_new_ex(zend_class_entry *class_type, php_imagick_object **ptr, zend_bool init_wand TSRMLS_DC)
3026 #else
3027 static zend_object_value php_imagick_object_new_ex(zend_class_entry *class_type, php_imagick_object **ptr, zend_bool init_wand TSRMLS_DC)
3028 #endif
3029
3030 {
3031 php_imagick_object *intern;
3032
3033 /* Allocate memory for it */
3034 #if PHP_VERSION_ID >= 70000
3035 intern = ecalloc(1,
3036 sizeof(php_imagick_object) +
3037 zend_object_properties_size(class_type));
3038 #else
3039 zend_object_value retval;
3040
3041 intern = (php_imagick_object *) emalloc(sizeof(php_imagick_object));
3042 memset(&intern->zo, 0, sizeof(zend_object));
3043 #endif
3044
3045 #if defined(ZTS) && defined(PHP_WIN32)
3046 /* If its our thread then we already have the lock so no need to lock again */
3047 if (imagick_thread_id != tsrm_thread_id()) {
3048 tsrm_mutex_lock(imagick_mutex);
3049 imagick_thread_id = tsrm_thread_id();
3050 }
3051 #endif
3052
3053 if (ptr) {
3054 *ptr = intern;
3055 }
3056
3057 /* Set the magickwand */
3058 if (init_wand) {
3059 intern->magick_wand = NewMagickWand();
3060
3061 if (!intern->magick_wand) {
3062 zend_error(E_ERROR, "Failed to create Imagick object, could not set magick_wand");
3063 }
3064 } else {
3065 intern->magick_wand = NULL;
3066 }
3067 intern->next_out_of_bound = 0;
3068 intern->progress_monitor_name = NULL;
3069
3070 zend_object_std_init(&intern->zo, class_type TSRMLS_CC);
3071 object_properties_init(&intern->zo, class_type);
3072
3073 #if PHP_VERSION_ID >= 70000
3074 intern->zo.handlers = &imagick_object_handlers;
3075 return &intern->zo;
3076 #else
3077 retval.handle = zend_objects_store_put(intern, NULL, (zend_objects_free_object_storage_t) php_imagick_object_free_storage, NULL TSRMLS_CC);
3078 retval.handlers = (zend_object_handlers *) &imagick_object_handlers;
3079 return retval;
3080 #endif
3081 }
3082
3083
3084 #if PHP_VERSION_ID >= 70000
php_imagick_object_new(zend_class_entry * class_type TSRMLS_DC)3085 static zend_object * php_imagick_object_new(zend_class_entry *class_type TSRMLS_DC)
3086 #else
3087 static zend_object_value php_imagick_object_new(zend_class_entry *class_type TSRMLS_DC)
3088 #endif
3089 {
3090 return php_imagick_object_new_ex(class_type, NULL, 1 TSRMLS_CC);
3091 }
3092
3093 #if PHP_VERSION_ID >= 70000
php_imagickdraw_object_new_ex(zend_class_entry * class_type,php_imagickdraw_object ** ptr,zend_bool init_wand TSRMLS_DC)3094 static zend_object * php_imagickdraw_object_new_ex(zend_class_entry *class_type, php_imagickdraw_object **ptr, zend_bool init_wand TSRMLS_DC)
3095 #else
3096 static zend_object_value php_imagickdraw_object_new_ex(zend_class_entry *class_type, php_imagickdraw_object **ptr, zend_bool init_wand TSRMLS_DC)
3097 #endif
3098 {
3099 php_imagickdraw_object *intern;
3100
3101 #if PHP_VERSION_ID >= 70000
3102 /* Allocate memory for it */
3103 intern = ecalloc(1,
3104 sizeof(php_imagickdraw_object) +
3105 zend_object_properties_size(class_type));
3106
3107 zend_object_std_init(&intern->zo, class_type TSRMLS_CC);
3108 object_properties_init(&intern->zo, class_type);
3109 intern->zo.handlers = &imagickdraw_object_handlers;
3110 #else
3111 zend_object_value retval;
3112 intern = (php_imagickdraw_object *) emalloc(sizeof(php_imagickdraw_object));
3113 memset(&intern->zo, 0, sizeof(zend_object));
3114 #endif
3115
3116 if (ptr) {
3117 *ptr = intern;
3118 }
3119
3120 /* Set the DrawingWand */
3121 if (init_wand) {
3122 intern->drawing_wand = NewDrawingWand();
3123
3124 if (!intern->drawing_wand) {
3125 zend_error(E_ERROR, "Failed to create ImagickDraw object");
3126 }
3127 } else {
3128 intern->drawing_wand = NULL;
3129 }
3130 #if PHP_VERSION_ID >= 70000
3131 intern->zo.handlers = &imagickdraw_object_handlers;
3132
3133 return &intern->zo;
3134 #else
3135 /* ALLOC_HASHTABLE(intern->zo.properties); */
3136 zend_object_std_init(&intern->zo, class_type TSRMLS_CC);
3137 object_properties_init(&intern->zo, class_type);
3138 retval.handle = zend_objects_store_put(intern, NULL, (zend_objects_free_object_storage_t) php_imagickdraw_object_free_storage, NULL TSRMLS_CC);
3139 retval.handlers = (zend_object_handlers *) &imagickdraw_object_handlers;
3140
3141 return retval;
3142 #endif
3143 }
3144
3145 #if PHP_VERSION_ID >= 70000
php_imagickdraw_object_new(zend_class_entry * class_type TSRMLS_DC)3146 static zend_object * php_imagickdraw_object_new(zend_class_entry *class_type TSRMLS_DC)
3147 #else
3148 static zend_object_value php_imagickdraw_object_new(zend_class_entry *class_type TSRMLS_DC)
3149 #endif
3150 {
3151 return php_imagickdraw_object_new_ex(class_type, NULL, 1 TSRMLS_CC);
3152 }
3153
3154 #if PHP_VERSION_ID >= 70000
php_imagickpixeliterator_object_new(zend_class_entry * class_type TSRMLS_DC)3155 static zend_object * php_imagickpixeliterator_object_new(zend_class_entry *class_type TSRMLS_DC)
3156 #else
3157 static zend_object_value php_imagickpixeliterator_object_new(zend_class_entry *class_type TSRMLS_DC)
3158 #endif
3159 {
3160 php_imagickpixeliterator_object *intern;
3161
3162 /* Allocate memory for it */
3163 #if PHP_VERSION_ID >= 70000
3164 intern = ecalloc(1,
3165 sizeof(php_imagickpixeliterator_object) +
3166 zend_object_properties_size(class_type));
3167 #else
3168 zend_object_value retval;
3169 intern = (php_imagickpixeliterator_object *) emalloc(sizeof(php_imagickpixeliterator_object));
3170 memset(&intern->zo, 0, sizeof(zend_object));
3171 #endif
3172
3173 /* We cant initialize yet */
3174 intern->pixel_iterator = NULL;
3175 intern->initialized = 0;
3176
3177 #if MagickLibVersion <= 0x628
3178 intern->rows = 0;
3179 intern->iterator_position = 0;
3180 #endif
3181
3182 zend_object_std_init(&intern->zo, class_type TSRMLS_CC);
3183 object_properties_init(&intern->zo, class_type);
3184
3185 #if PHP_VERSION_ID >= 70000
3186 intern->zo.handlers = &imagickpixeliterator_object_handlers;
3187
3188 return &intern->zo;
3189 #else
3190 retval.handle = zend_objects_store_put(intern, NULL, (zend_objects_free_object_storage_t) php_imagickpixeliterator_object_free_storage, NULL TSRMLS_CC);
3191 retval.handlers = (zend_object_handlers *) &imagickpixeliterator_object_handlers;
3192
3193 return retval;
3194 #endif
3195 }
3196
3197 #if PHP_VERSION_ID >= 70000
php_imagickpixel_object_new_ex(zend_class_entry * class_type,php_imagickpixel_object ** ptr TSRMLS_DC)3198 static zend_object * php_imagickpixel_object_new_ex(zend_class_entry *class_type, php_imagickpixel_object **ptr TSRMLS_DC)
3199 #else
3200 static zend_object_value php_imagickpixel_object_new_ex(zend_class_entry *class_type, php_imagickpixel_object **ptr TSRMLS_DC)
3201 #endif
3202 {
3203 php_imagickpixel_object *intern;
3204
3205 #if PHP_VERSION_ID >= 70000
3206 /* Allocate memory for it */
3207 intern = ecalloc(1,
3208 sizeof(php_imagickpixel_object) +
3209 zend_object_properties_size(class_type));
3210 #else
3211 zend_object_value retval;
3212 intern = (php_imagickpixel_object *) emalloc(sizeof(php_imagickpixel_object));
3213 memset(&intern->zo, 0, sizeof(zend_object));
3214 #endif
3215
3216 if (ptr) {
3217 *ptr = intern;
3218 }
3219
3220 /* Set the pixeliterator */
3221 intern->pixel_wand = NULL;
3222 intern->initialized_via_iterator = 0;
3223 zend_object_std_init(&intern->zo, class_type TSRMLS_CC);
3224 object_properties_init(&intern->zo, class_type);
3225
3226 #if PHP_VERSION_ID >= 70000
3227 intern->zo.handlers = &imagickpixel_object_handlers;
3228
3229 return &intern->zo;
3230 #else
3231 retval.handle = zend_objects_store_put(intern, NULL, (zend_objects_free_object_storage_t) php_imagickpixel_object_free_storage, NULL TSRMLS_CC);
3232 retval.handlers = (zend_object_handlers *) &imagickpixel_object_handlers;
3233
3234 return retval;
3235 #endif
3236
3237 }
3238
3239 #if PHP_VERSION_ID >= 70000
php_imagickpixel_object_new(zend_class_entry * class_type TSRMLS_DC)3240 static zend_object * php_imagickpixel_object_new(zend_class_entry *class_type TSRMLS_DC)
3241 #else
3242 static zend_object_value php_imagickpixel_object_new(zend_class_entry *class_type TSRMLS_DC)
3243 #endif
3244 {
3245 return php_imagickpixel_object_new_ex(class_type, NULL TSRMLS_CC);
3246 }
3247
3248 #ifdef IMAGICK_WITH_KERNEL
3249
3250 #if PHP_VERSION_ID >= 70000
php_imagickkernel_object_new_ex(zend_class_entry * class_type,php_imagickkernel_object ** ptr TSRMLS_DC)3251 static zend_object * php_imagickkernel_object_new_ex(zend_class_entry *class_type, php_imagickkernel_object **ptr TSRMLS_DC)
3252 #else
3253 static zend_object_value php_imagickkernel_object_new_ex(zend_class_entry *class_type, php_imagickkernel_object **ptr TSRMLS_DC)
3254 #endif
3255 {
3256
3257 php_imagickkernel_object *intern;
3258
3259 /* Allocate memory for it */
3260 #if PHP_VERSION_ID >= 70000
3261 intern = ecalloc(1,
3262 sizeof(php_imagickkernel_object) +
3263 zend_object_properties_size(class_type));
3264 #else
3265 zend_object_value retval;
3266 intern = (php_imagickkernel_object *) emalloc(sizeof(php_imagickkernel_object));
3267 memset(&intern->zo, 0, sizeof(zend_object));
3268 #endif
3269
3270 if (ptr) {
3271 *ptr = intern;
3272 }
3273
3274 /* Set the kernel */
3275 intern->kernel_info = NULL;
3276
3277 /* ALLOC_HASHTABLE(intern->zo.properties); */
3278 zend_object_std_init(&intern->zo, class_type TSRMLS_CC);
3279 object_properties_init(&intern->zo, class_type);
3280
3281 #if PHP_VERSION_ID >= 70000
3282 intern->zo.handlers = &imagickkernel_object_handlers;
3283
3284 return &intern->zo;
3285 #else
3286 retval.handle = zend_objects_store_put(intern, NULL, (zend_objects_free_object_storage_t) php_imagickkernel_object_free_storage, NULL TSRMLS_CC);
3287 retval.handlers = (zend_object_handlers *) &imagickkernel_object_handlers;
3288
3289 return retval;
3290 #endif
3291 }
3292 #endif
3293
3294 #undef object_properties_init
3295
3296 #ifdef IMAGICK_WITH_KERNEL
3297 #if PHP_VERSION_ID >= 70000
php_imagickkernel_object_new(zend_class_entry * class_type TSRMLS_DC)3298 static zend_object * php_imagickkernel_object_new(zend_class_entry *class_type TSRMLS_DC)
3299 #else
3300 static zend_object_value php_imagickkernel_object_new(zend_class_entry *class_type TSRMLS_DC)
3301 #endif
3302 {
3303 return php_imagickkernel_object_new_ex(class_type, NULL TSRMLS_CC);
3304 }
3305 #endif
3306
3307
3308
3309 PHP_INI_BEGIN()
3310 STD_PHP_INI_ENTRY("imagick.locale_fix", "0", PHP_INI_ALL, OnUpdateBool, locale_fix, zend_imagick_globals, imagick_globals)
3311 STD_PHP_INI_ENTRY("imagick.skip_version_check", "0", PHP_INI_ALL, OnUpdateBool, skip_version_check, zend_imagick_globals, imagick_globals)
3312 STD_PHP_INI_ENTRY("imagick.progress_monitor", "0", PHP_INI_SYSTEM, OnUpdateBool, progress_monitor, zend_imagick_globals, imagick_globals)
3313
3314 STD_PHP_INI_ENTRY("imagick.set_single_thread", "1", PHP_INI_SYSTEM, OnUpdateBool, set_single_thread, zend_imagick_globals, imagick_globals)
3315 STD_PHP_INI_ENTRY("imagick.shutdown_sleep_count", "10", PHP_INI_ALL, OnUpdateLong, shutdown_sleep_count, zend_imagick_globals, imagick_globals)
3316 STD_PHP_INI_ENTRY("imagick.allow_zero_dimension_images", "0", PHP_INI_ALL, OnUpdateBool, allow_zero_dimension_images, zend_imagick_globals, imagick_globals)
PHP_INI_END()3317 PHP_INI_END()
3318
3319 static void php_imagick_init_globals(zend_imagick_globals *imagick_globals)
3320 {
3321 imagick_globals->locale_fix = 0;
3322 imagick_globals->progress_monitor = 0;
3323 imagick_globals->skip_version_check = 0;
3324 imagick_globals->set_single_thread = 1;
3325 imagick_globals->allow_zero_dimension_images = 0;
3326 // 10 is magick number, that seems to be enough.
3327 imagick_globals->shutdown_sleep_count = 10;
3328 }
3329
3330
3331 #if PHP_VERSION_ID >= 80000
php_imagick_count_elements(zend_object * object,im_long * count)3332 static int php_imagick_count_elements(zend_object *object, im_long *count) /* {{{ */
3333 {
3334 php_imagick_object *intern= php_imagick_fetch_object(object);
3335 #else
3336 static int php_imagick_count_elements(zval *object, im_long *count TSRMLS_DC) /* {{{ */
3337 {
3338 php_imagick_object *intern= Z_IMAGICK_P(object);
3339 #endif
3340
3341 if (intern->magick_wand) {
3342 *count = MagickGetNumberImages(intern->magick_wand);
3343 return SUCCESS;
3344 }
3345 return FAILURE;
3346 }
3347
3348
3349 #if PHP_VERSION_ID >= 80000
3350 static zval *php_imagick_read_property(zend_object *object, zend_string *member, int type, void **cache_slot, zval *rv)
3351 {
3352 int ret;
3353 php_imagick_object *intern;
3354 zval *retval = NULL;
3355 const zend_object_handlers *std_hnd;
3356
3357
3358 std_hnd = zend_get_std_object_handlers();
3359
3360 ret = std_hnd->has_property(object, member, type, cache_slot TSRMLS_CC);
3361
3362 if (ret) {
3363 //TODO - this would allow better immutability
3364 //ZVAL_COPY_VALUE(retval, std_hnd->read_property(object, member, type, cache_slot, rv TSRMLS_CC));
3365 retval = std_hnd->read_property(object, member, type, cache_slot, rv TSRMLS_CC);
3366 }
3367 else {
3368
3369 intern = php_imagick_fetch_object(object);
3370 /* Do we have any images? */
3371 if (MagickGetNumberImages(intern->magick_wand)) {
3372
3373 //TODO - this seems redundant
3374 /* Is this overloaded? */
3375 if (!strcmp(ZSTR_VAL(member), "width") ||
3376 !strcmp(ZSTR_VAL(member), "height") ||
3377 !strcmp(ZSTR_VAL(member), "format")) {
3378
3379 if (!strcmp(ZSTR_VAL(member), "width")) {
3380 retval = rv;
3381 ZVAL_LONG(retval, MagickGetImageWidth(intern->magick_wand));
3382 } else if (!strcmp(ZSTR_VAL(member), "height")) {
3383 retval = rv;
3384 ZVAL_LONG(retval, MagickGetImageHeight(intern->magick_wand));
3385 } else if (!strcmp(ZSTR_VAL(member), "format")) {
3386 char *format = MagickGetImageFormat(intern->magick_wand);
3387
3388 if (format) {
3389 retval = rv;
3390 ZVAL_STRING(retval, format);
3391 IMAGICK_FREE_MAGICK_MEMORY(format);
3392 } else {
3393 retval = rv;
3394 ZVAL_STRING(retval, "");
3395 }
3396 }
3397 }
3398 }
3399 }
3400
3401 if (!retval) {
3402 //TODO - why is the error silent - it would be a small BC break
3403 //to enable the warning. I think it would be the correct thing to do though.
3404 //zend_error(E_NOTICE,"Undefined property: \Imagick::$%s", Z_STRVAL_P(member));
3405 retval = &EG(uninitialized_zval);
3406 }
3407
3408 return retval;
3409 }
3410
3411 #else // PHP_VERSION_ID >= 80000
3412
3413 #if PHP_VERSION_ID >= 70000
3414 static zval *php_imagick_read_property(zval *object, zval *member, int type, void **cache_slot, zval *rv TSRMLS_DC)
3415 {
3416 int ret;
3417 php_imagick_object *intern;
3418 zval *retval = NULL;
3419 zval tmp_member;
3420 const zend_object_handlers *std_hnd;
3421
3422 ZVAL_DEREF(member);
3423 if (Z_TYPE_P(member) != IS_STRING) {
3424 tmp_member = *member;
3425 zval_copy_ctor(&tmp_member);
3426 convert_to_string(&tmp_member);
3427 member = &tmp_member;
3428 }
3429
3430 std_hnd = zend_get_std_object_handlers();
3431
3432 ret = std_hnd->has_property(object, member, type, cache_slot TSRMLS_CC);
3433
3434 if (ret) {
3435 //TODO - this would allow better immutability
3436 //ZVAL_COPY_VALUE(retval, std_hnd->read_property(object, member, type, cache_slot, rv TSRMLS_CC));
3437 retval = std_hnd->read_property(object, member, type, cache_slot, rv TSRMLS_CC);
3438 }
3439 else {
3440
3441 intern = Z_IMAGICK_P(object);
3442 /* Do we have any images? */
3443 if (MagickGetNumberImages(intern->magick_wand)) {
3444
3445 //TODO - this seems redundant
3446 /* Is this overloaded? */
3447 if (!strcmp(Z_STRVAL_P(member), "width") ||
3448 !strcmp(Z_STRVAL_P(member), "height") ||
3449 !strcmp(Z_STRVAL_P(member), "format")) {
3450
3451 if (!strcmp(Z_STRVAL_P(member), "width")) {
3452 retval = rv;
3453 ZVAL_LONG(retval, MagickGetImageWidth(intern->magick_wand));
3454 } else if (!strcmp(Z_STRVAL_P(member), "height")) {
3455 retval = rv;
3456 ZVAL_LONG(retval, MagickGetImageHeight(intern->magick_wand));
3457 } else if (!strcmp(Z_STRVAL_P(member), "format")) {
3458 char *format = MagickGetImageFormat(intern->magick_wand);
3459
3460 if (format) {
3461 retval = rv;
3462 ZVAL_STRING(retval, format);
3463 IMAGICK_FREE_MAGICK_MEMORY(format);
3464 } else {
3465 retval = rv;
3466 ZVAL_STRING(retval, "");
3467 }
3468 }
3469 }
3470 }
3471 }
3472
3473 if (!retval) {
3474 //TODO - why is the error silent - it would be a small BC break
3475 //to enable the warning. I think it would be the correct thing to do though.
3476 //zend_error(E_NOTICE,"Undefined property: \Imagick::$%s", Z_STRVAL_P(member));
3477 retval = &EG(uninitialized_zval);
3478 }
3479
3480 if (member == &tmp_member) {
3481 zval_dtor(member);
3482 }
3483
3484 return retval;
3485 }
3486
3487 #else
3488
3489 #if PHP_VERSION_ID < 50399
3490 static zval *php_imagick_read_property(zval *object, zval *member, int type TSRMLS_DC)
3491 #else
3492 static zval *php_imagick_read_property(zval *object, zval *member, int type, const zend_literal *key TSRMLS_DC)
3493 #endif
3494 {
3495 int ret;
3496 php_imagick_object *intern;
3497 zval *retval = NULL, tmp_member;
3498 zend_object_handlers *std_hnd;
3499
3500 if (Z_TYPE_P(member) != IS_STRING) {
3501 tmp_member = *member;
3502 zval_copy_ctor(&tmp_member);
3503 convert_to_string(&tmp_member);
3504 member = &tmp_member;
3505 }
3506
3507 std_hnd = zend_get_std_object_handlers();
3508 #if PHP_VERSION_ID < 50399
3509 ret = std_hnd->has_property(object, member, 2 TSRMLS_CC);
3510 #else
3511 ret = std_hnd->has_property(object, member, 2, key TSRMLS_CC);
3512 #endif
3513
3514 if (ret) {
3515 std_hnd = zend_get_std_object_handlers();
3516 #if PHP_VERSION_ID < 50399
3517 retval = std_hnd->read_property(object, member, type TSRMLS_CC);
3518 #else
3519 retval = std_hnd->read_property(object, member, type, key TSRMLS_CC);
3520 #endif
3521 } else {
3522 intern = (php_imagick_object *) zend_object_store_get_object(object TSRMLS_CC);
3523 /* Do we have any images? */
3524 if (MagickGetNumberImages(intern->magick_wand)) {
3525 /* Is this overloaded? */
3526 if (!strcmp(Z_STRVAL_P(member), "width") ||
3527 !strcmp(Z_STRVAL_P(member), "height") ||
3528 !strcmp(Z_STRVAL_P(member), "format")) {
3529
3530 MAKE_STD_ZVAL(retval);
3531 #ifdef Z_SET_REFCOUNT_P
3532 Z_SET_REFCOUNT_P(retval, 0);
3533 #else
3534 retval->refcount = 0;
3535 #endif
3536 if (!strcmp(Z_STRVAL_P(member), "width")) {
3537 ZVAL_LONG(retval, MagickGetImageWidth(intern->magick_wand));
3538 } else if (!strcmp(Z_STRVAL_P(member), "height")) {
3539 ZVAL_LONG(retval, MagickGetImageHeight(intern->magick_wand));
3540 } else if (!strcmp(Z_STRVAL_P(member), "format")) {
3541 char *format = MagickGetImageFormat(intern->magick_wand);
3542
3543 if (format) {
3544 ZVAL_STRING(retval, format, 1);
3545 IMAGICK_FREE_MAGICK_MEMORY(format);
3546 } else {
3547 ZVAL_STRING(retval, "", 1);
3548 }
3549 }
3550 }
3551 }
3552 }
3553 if (member == &tmp_member) {
3554 zval_dtor(member);
3555 }
3556
3557 if (!retval) {
3558 retval = EG(uninitialized_zval_ptr);
3559 }
3560 return retval;
3561 }
3562 #endif
3563
3564 #endif
3565
3566 #if PHP_VERSION_ID >= 80000
3567 static zend_object * php_imagick_clone_imagick_object(zend_object *this_ptr)
3568 #elif PHP_VERSION_ID >= 70000
3569 static zend_object * php_imagick_clone_imagick_object(zval *this_ptr TSRMLS_DC)
3570 #else
3571 static zend_object_value php_imagick_clone_imagick_object(zval *this_ptr TSRMLS_DC)
3572 #endif
3573 {
3574 MagickWand *wand_copy = NULL;
3575 php_imagick_object *new_obj = NULL;
3576 #if PHP_VERSION_ID >= 80000
3577 php_imagick_object *old_obj = php_imagick_fetch_object(this_ptr);
3578 zend_object * new_zo = php_imagick_object_new_ex(old_obj->zo.ce, &new_obj, 0 TSRMLS_CC);
3579 zend_objects_clone_members(&new_obj->zo, &old_obj->zo TSRMLS_CC);
3580 #elif PHP_VERSION_ID >= 70000
3581 php_imagick_object *old_obj = Z_IMAGICK_P(this_ptr);
3582 zend_object * new_zo = php_imagick_object_new_ex(old_obj->zo.ce, &new_obj, 0 TSRMLS_CC);
3583 zend_objects_clone_members(&new_obj->zo, &old_obj->zo TSRMLS_CC);
3584 #else
3585 php_imagick_object *old_obj = (php_imagick_object *) zend_object_store_get_object(this_ptr TSRMLS_CC);
3586 zend_object_value new_zo = php_imagick_object_new_ex(old_obj->zo.ce, &new_obj, 0 TSRMLS_CC);
3587 zend_objects_clone_members(&new_obj->zo, new_zo, &old_obj->zo, Z_OBJ_HANDLE_P(this_ptr) TSRMLS_CC);
3588 #endif
3589
3590 wand_copy = CloneMagickWand(old_obj->magick_wand);
3591 if (!wand_copy) {
3592 zend_error(E_ERROR, "Failed to clone Imagick object");
3593 } else {
3594 php_imagick_replace_magickwand(new_obj, wand_copy);
3595 new_obj->next_out_of_bound = old_obj->next_out_of_bound;
3596
3597 if (old_obj->progress_monitor_name) {
3598 new_obj->progress_monitor_name = estrdup(old_obj->progress_monitor_name);
3599 }
3600 }
3601 return new_zo;
3602 }
3603
3604 #if PHP_VERSION_ID >= 80000
3605 static zend_object * php_imagick_clone_imagickdraw_object(zend_object *this_ptr)
3606 #elif PHP_VERSION_ID >= 70000
3607 static zend_object * php_imagick_clone_imagickdraw_object(zval *this_ptr TSRMLS_DC)
3608 #else
3609 static zend_object_value php_imagick_clone_imagickdraw_object(zval *this_ptr TSRMLS_DC)
3610 #endif
3611 {
3612 DrawingWand *wand_copy = NULL;
3613 php_imagickdraw_object *new_obj = NULL;
3614 #if PHP_VERSION_ID >= 80000
3615 php_imagickdraw_object *old_obj = php_imagickdraw_fetch_object(this_ptr);
3616 zend_object * new_zo = php_imagickdraw_object_new_ex(old_obj->zo.ce, &new_obj, 0 TSRMLS_CC);
3617 zend_objects_clone_members(&new_obj->zo, &old_obj->zo TSRMLS_CC);
3618 #elif PHP_VERSION_ID >= 70000
3619 php_imagickdraw_object *old_obj = Z_IMAGICKDRAW_P(this_ptr);
3620 zend_object * new_zo = php_imagickdraw_object_new_ex(old_obj->zo.ce, &new_obj, 0 TSRMLS_CC);
3621 zend_objects_clone_members(&new_obj->zo, &old_obj->zo TSRMLS_CC);
3622 #else
3623 php_imagickdraw_object *old_obj = (php_imagickdraw_object *) zend_object_store_get_object(this_ptr TSRMLS_CC);
3624 zend_object_value new_zo = php_imagickdraw_object_new_ex(old_obj->zo.ce, &new_obj, 0 TSRMLS_CC);
3625 zend_objects_clone_members(&new_obj->zo, new_zo, &old_obj->zo, Z_OBJ_HANDLE_P(this_ptr) TSRMLS_CC);
3626 #endif
3627
3628 wand_copy = CloneDrawingWand(old_obj->drawing_wand);
3629
3630 if (!wand_copy) {
3631 zend_error(E_ERROR, "Failed to clone ImagickDraw object");
3632 } else {
3633 php_imagick_replace_drawingwand(new_obj, wand_copy);
3634 }
3635 return new_zo;
3636 }
3637
3638
3639 #if PHP_VERSION_ID >= 80000
3640 static zend_object * php_imagick_clone_imagickpixel_object(zend_object *this_ptr)
3641 #elif PHP_VERSION_ID >= 70000
3642 static zend_object * php_imagick_clone_imagickpixel_object(zval *this_ptr TSRMLS_DC)
3643 #else
3644 static zend_object_value php_imagick_clone_imagickpixel_object(zval *this_ptr TSRMLS_DC)
3645 #endif
3646 {
3647 PixelWand *wand_copy = NULL;
3648 php_imagickpixel_object *new_obj = NULL;
3649
3650 #if PHP_VERSION_ID >= 80000
3651 zend_object *new_zo;
3652 php_imagickpixel_object *old_obj = php_imagickpixel_fetch_object(this_ptr);
3653 new_zo = php_imagickpixel_object_new_ex(old_obj->zo.ce, &new_obj TSRMLS_CC);
3654 zend_objects_clone_members(&new_obj->zo, &old_obj->zo TSRMLS_CC);
3655 #elif PHP_VERSION_ID >= 70000
3656 zend_object *new_zo;
3657 php_imagickpixel_object *old_obj = Z_IMAGICKPIXEL_P(this_ptr);
3658 new_zo = php_imagickpixel_object_new_ex(old_obj->zo.ce, &new_obj TSRMLS_CC);
3659 zend_objects_clone_members(&new_obj->zo, &old_obj->zo TSRMLS_CC);
3660 #else
3661 php_imagickpixel_object *old_obj = (php_imagickpixel_object *) zend_object_store_get_object(this_ptr TSRMLS_CC);
3662 zend_object_value new_zo = php_imagickpixel_object_new_ex(old_obj->zo.ce, &new_obj TSRMLS_CC);
3663 zend_objects_clone_members(&new_obj->zo, new_zo, &old_obj->zo, Z_OBJ_HANDLE_P(this_ptr) TSRMLS_CC);
3664 #endif
3665
3666 wand_copy = php_imagick_clone_pixelwand (old_obj->pixel_wand);
3667 if (!wand_copy) {
3668 zend_error(E_ERROR, "Failed to clone ImagickPixel object");
3669 } else {
3670 php_imagick_replace_pixelwand(new_obj, wand_copy);
3671 new_obj->initialized_via_iterator = 0;
3672 }
3673 return new_zo;
3674 }
3675
3676 #ifdef IMAGICK_WITH_KERNEL
3677
3678 #if PHP_VERSION_ID >= 80000
3679 static zend_object * php_imagick_clone_imagickkernel_object(zend_object *this_ptr TSRMLS_DC)
3680 #elif PHP_VERSION_ID >= 70000
3681 static zend_object * php_imagick_clone_imagickkernel_object(zval *this_ptr TSRMLS_DC)
3682 #else
3683 static zend_object_value php_imagick_clone_imagickkernel_object(zval *this_ptr TSRMLS_DC)
3684 #endif
3685 {
3686 KernelInfo *kernel_info_copy = NULL;
3687 php_imagickkernel_object *new_obj = NULL;
3688
3689 #if PHP_VERSION_ID >= 80000
3690 zend_object *new_zo;
3691 php_imagickkernel_object *old_obj = php_imagickkernel_fetch_object(this_ptr);
3692 new_zo = php_imagickkernel_object_new_ex(old_obj->zo.ce, &new_obj TSRMLS_CC);
3693 zend_objects_clone_members(&new_obj->zo, &old_obj->zo TSRMLS_CC);
3694 #elif PHP_VERSION_ID >= 70000
3695 zend_object *new_zo;
3696 php_imagickkernel_object *old_obj = Z_IMAGICKKERNEL_P(this_ptr);
3697 new_zo = php_imagickkernel_object_new_ex(old_obj->zo.ce, &new_obj TSRMLS_CC);
3698 zend_objects_clone_members(&new_obj->zo, &old_obj->zo TSRMLS_CC);
3699 #else
3700 zend_object_value new_zo;
3701 php_imagickkernel_object *old_obj = (php_imagickkernel_object *) zend_object_store_get_object(this_ptr TSRMLS_CC);
3702 new_zo = php_imagickkernel_object_new_ex(old_obj->zo.ce, &new_obj TSRMLS_CC);
3703 zend_objects_clone_members(&new_obj->zo, new_zo, &old_obj->zo, Z_OBJ_HANDLE_P(this_ptr) TSRMLS_CC);
3704 #endif
3705
3706 if (old_obj->kernel_info != NULL) {
3707 kernel_info_copy = CloneKernelInfo(old_obj->kernel_info);
3708
3709 if (!kernel_info_copy) {
3710 zend_error(E_ERROR, "Failed to clone ImagickKernel object");
3711 }
3712 else {
3713 new_obj->kernel_info = kernel_info_copy;
3714 }
3715 }
3716
3717 return new_zo;
3718 }
3719 #endif
3720
3721
3722 static void checkImagickVersion()
3723 {
3724 //This gets the version that Imagick was compiled against.
3725 size_t imagickVersion = MagickLibVersion;
3726
3727 //This gets the version of ImageMagick that has been loaded
3728 size_t imageMagickLibraryVersion;
3729
3730 GetMagickVersion(&imageMagickLibraryVersion);
3731
3732 if (imagickVersion == imageMagickLibraryVersion) {
3733 return;
3734 }
3735
3736 zend_error(
3737 E_WARNING,
3738 "Version warning: Imagick was compiled against ImageMagick version %lu but version %lu is loaded. Imagick will run but may behave surprisingly",
3739 (unsigned long)imagickVersion,
3740 (unsigned long)imageMagickLibraryVersion
3741 );
3742 }
3743
3744 PHP_MINIT_FUNCTION(imagick)
3745 {
3746 zend_class_entry ce;
3747
3748 /* Initialize globals */
3749 ZEND_INIT_MODULE_GLOBALS(imagick, php_imagick_init_globals, NULL);
3750
3751
3752 // This suppresses an 'unused parameter' warning.
3753 (void)type;
3754
3755 /*
3756 Allocate some memory
3757 */
3758 memcpy(&imagick_object_handlers, zend_get_std_object_handlers(), sizeof(zend_object_handlers));
3759 memcpy(&imagickdraw_object_handlers, zend_get_std_object_handlers(), sizeof(zend_object_handlers));
3760 memcpy(&imagickpixeliterator_object_handlers, zend_get_std_object_handlers(), sizeof(zend_object_handlers));
3761 memcpy(&imagickpixel_object_handlers, zend_get_std_object_handlers(), sizeof(zend_object_handlers));
3762 #ifdef IMAGICK_WITH_KERNEL
3763 memcpy(&imagickkernel_object_handlers, zend_get_std_object_handlers(), sizeof(zend_object_handlers));
3764 #endif
3765
3766 /* Set custom allocators */
3767 MagickWandGenesis();
3768
3769 /*
3770 Initialize exceptions (Imagick exception)
3771 */
3772 INIT_CLASS_ENTRY(ce, PHP_IMAGICK_EXCEPTION_SC_NAME, NULL);
3773 #if PHP_VERSION_ID >= 70000
3774 php_imagick_exception_class_entry = zend_register_internal_class_ex(&ce, zend_ce_exception);
3775 #else
3776 php_imagick_exception_class_entry = zend_register_internal_class_ex(&ce, zend_exception_get_default(TSRMLS_C), NULL TSRMLS_CC);
3777 #endif
3778
3779 /*
3780 Initialize exceptions (ImagickDraw exception)
3781 */
3782 INIT_CLASS_ENTRY(ce, PHP_IMAGICKDRAW_EXCEPTION_SC_NAME, NULL);
3783 #if PHP_VERSION_ID >= 70000
3784 php_imagickdraw_exception_class_entry = zend_register_internal_class_ex(&ce, zend_ce_exception);
3785 #else
3786 php_imagickdraw_exception_class_entry = zend_register_internal_class_ex(&ce, zend_exception_get_default(TSRMLS_C), NULL TSRMLS_CC);
3787 #endif
3788
3789 /*
3790 Initialize exceptions (ImagickPixelIterator exception)
3791 */
3792 INIT_CLASS_ENTRY(ce, PHP_IMAGICKPIXELITERATOR_EXCEPTION_SC_NAME, NULL);
3793 #if PHP_VERSION_ID >= 70000
3794 php_imagickpixeliterator_exception_class_entry = zend_register_internal_class_ex(&ce, zend_ce_exception);
3795 #else
3796 php_imagickpixeliterator_exception_class_entry = zend_register_internal_class_ex(&ce, zend_exception_get_default(TSRMLS_C), NULL TSRMLS_CC);
3797 #endif
3798
3799 /*
3800 Initialize exceptions (ImagickPixel exception)
3801 */
3802 INIT_CLASS_ENTRY(ce, PHP_IMAGICKPIXEL_EXCEPTION_SC_NAME, NULL);
3803 #if PHP_VERSION_ID >= 70000
3804 php_imagickpixel_exception_class_entry = zend_register_internal_class_ex(&ce, zend_ce_exception);
3805 #else
3806 php_imagickpixel_exception_class_entry = zend_register_internal_class_ex(&ce, zend_exception_get_default(TSRMLS_C), NULL TSRMLS_CC);
3807 #endif
3808
3809 #ifdef IMAGICK_WITH_KERNEL
3810 /*
3811 Initialize exceptions (ImagickKernel exception)
3812 */
3813 INIT_CLASS_ENTRY(ce, PHP_IMAGICKKERNEL_EXCEPTION_SC_NAME, NULL);
3814 #if PHP_VERSION_ID >= 70000
3815 php_imagickkernel_exception_class_entry = zend_register_internal_class_ex(&ce, zend_ce_exception);
3816 #else
3817 php_imagickkernel_exception_class_entry = zend_register_internal_class_ex(&ce, zend_exception_get_default(TSRMLS_C), NULL TSRMLS_CC);
3818 #endif
3819
3820 #endif
3821
3822 /*
3823 Initialize the class (Imagick)
3824 */
3825 INIT_CLASS_ENTRY(ce, PHP_IMAGICK_SC_NAME, php_imagick_class_methods);
3826 ce.create_object = php_imagick_object_new;
3827 imagick_object_handlers.clone_obj = php_imagick_clone_imagick_object;
3828 imagick_object_handlers.read_property = php_imagick_read_property;
3829 imagick_object_handlers.count_elements = php_imagick_count_elements;
3830 #if PHP_VERSION_ID >= 70000
3831 imagick_object_handlers.offset = XtOffsetOf(php_imagick_object, zo);
3832 imagick_object_handlers.free_obj = php_imagick_object_free_storage;
3833 #endif
3834
3835 php_imagick_sc_entry = zend_register_internal_class(&ce TSRMLS_CC);
3836 zend_class_implements(php_imagick_sc_entry TSRMLS_CC, 2, zend_ce_iterator, im_ce_countable);
3837
3838 /*
3839 Initialize the class (ImagickDraw)
3840 */
3841 INIT_CLASS_ENTRY(ce, PHP_IMAGICKDRAW_SC_NAME, php_imagickdraw_class_methods);
3842 ce.create_object = php_imagickdraw_object_new;
3843 imagickdraw_object_handlers.clone_obj = php_imagick_clone_imagickdraw_object;
3844 #if PHP_VERSION_ID >= 70000
3845 imagickdraw_object_handlers.offset = XtOffsetOf(php_imagickdraw_object, zo);
3846 imagickdraw_object_handlers.free_obj = php_imagickdraw_object_free_storage;
3847 #endif
3848 php_imagickdraw_sc_entry = zend_register_internal_class(&ce TSRMLS_CC);
3849
3850 /*
3851 Initialize the class (ImagickPixelIterator)
3852 */
3853 INIT_CLASS_ENTRY(ce, PHP_IMAGICKPIXELITERATOR_SC_NAME, php_imagickpixeliterator_class_methods);
3854 ce.create_object = php_imagickpixeliterator_object_new;
3855 imagickpixeliterator_object_handlers.clone_obj = NULL;
3856 #if PHP_VERSION_ID >= 70000
3857 imagickpixeliterator_object_handlers.offset = XtOffsetOf(php_imagickpixeliterator_object, zo);
3858 imagickpixeliterator_object_handlers.free_obj = php_imagickpixeliterator_object_free_storage;
3859 #endif
3860 php_imagickpixeliterator_sc_entry = zend_register_internal_class(&ce TSRMLS_CC);
3861 zend_class_implements(php_imagickpixeliterator_sc_entry TSRMLS_CC, 1, zend_ce_iterator);
3862
3863 /*
3864 Initialize the class (ImagickPixel)
3865 */
3866 INIT_CLASS_ENTRY(ce, PHP_IMAGICKPIXEL_SC_NAME, php_imagickpixel_class_methods);
3867 ce.create_object = php_imagickpixel_object_new;
3868 imagickpixel_object_handlers.clone_obj = php_imagick_clone_imagickpixel_object;
3869 #if PHP_VERSION_ID >= 70000
3870 imagickpixel_object_handlers.offset = XtOffsetOf(php_imagickpixel_object, zo);
3871 imagickpixel_object_handlers.free_obj = php_imagickpixel_object_free_storage;
3872 #endif
3873
3874 php_imagickpixel_sc_entry = zend_register_internal_class(&ce TSRMLS_CC);
3875
3876 #ifdef IMAGICK_WITH_KERNEL
3877 /*
3878 Initialize the class (ImagickKernel)
3879 */
3880 INIT_CLASS_ENTRY(ce, PHP_IMAGICKKERNEL_SC_NAME, php_imagickkernel_class_methods);
3881 ce.create_object = php_imagickkernel_object_new;
3882 // Disabled until can be compiled under wall correctly
3883 imagickkernel_object_handlers.get_debug_info = php_imagickkernel_get_debug_info;
3884 imagickkernel_object_handlers.clone_obj = php_imagick_clone_imagickkernel_object;
3885 #if PHP_VERSION_ID >= 70000
3886 imagickkernel_object_handlers.offset = XtOffsetOf(php_imagickkernel_object, zo);
3887 imagickkernel_object_handlers.free_obj = php_imagickkernel_object_free_storage;
3888 #endif
3889
3890 php_imagickkernel_sc_entry = zend_register_internal_class(&ce TSRMLS_CC);
3891 #endif
3892
3893 php_imagick_initialize_constants (TSRMLS_C);
3894
3895 #if defined(ZTS) && defined(PHP_WIN32)
3896 imagick_mutex = tsrm_mutex_alloc();
3897 #endif
3898
3899 REGISTER_INI_ENTRIES();
3900
3901 if (!IMAGICK_G(skip_version_check)) {
3902 checkImagickVersion();
3903 }
3904
3905 return SUCCESS;
3906 }
3907
3908
3909 PHP_MINFO_FUNCTION(imagick)
3910 {
3911
3912 #if PHP_VERSION_ID >= 70000
3913 smart_string formats = {0};
3914 #else
3915 smart_str formats = {0};
3916 #endif
3917
3918 char **supported_formats, *buffer;
3919 unsigned long i;
3920 size_t num_formats;
3921 size_t version_number;
3922
3923 num_formats = 0;
3924
3925 supported_formats = MagickQueryFormats("*", &num_formats);
3926 spprintf(&buffer, 0, "%ld", (long)num_formats);
3927
3928 php_info_print_table_start();
3929 php_info_print_table_header(2, "imagick module", "enabled");
3930 php_info_print_table_row(2, "imagick module version", PHP_IMAGICK_VERSION);
3931 #ifdef IMAGICK_WITH_KERNEL
3932 php_info_print_table_row(2, "imagick classes", "Imagick, ImagickDraw, ImagickPixel, ImagickPixelIterator, ImagickKernel");
3933 #else
3934 php_info_print_table_row(2, "imagick classes", "Imagick, ImagickDraw, ImagickPixel, ImagickPixelIterator");
3935 #endif
3936 #ifdef MagickVersion
3937 php_info_print_table_row(2, "Imagick compiled with ImageMagick version", MagickVersion);
3938 #endif
3939 php_info_print_table_row(2, "Imagick using ImageMagick library version", MagickGetVersion(&version_number));
3940 php_info_print_table_row(2, "ImageMagick copyright", MagickGetCopyright());
3941 php_info_print_table_row(2, "ImageMagick release date", MagickGetReleaseDate());
3942 php_info_print_table_row(2, "ImageMagick number of supported formats: ", buffer);
3943
3944 efree (buffer);
3945
3946 if (supported_formats) {
3947 for (i = 0; i < num_formats; i++) {
3948 #if PHP_VERSION_ID >= 70000
3949 if (i != 0) {
3950 smart_string_appends(&formats, ", ");
3951 }
3952 smart_string_appends(&formats, supported_formats[i]);
3953 #else
3954 smart_str_appends(&formats, supported_formats[i]);
3955 if (i != (num_formats - 1)) {
3956 smart_str_appends(&formats, ", ");
3957 }
3958 #endif
3959 IMAGICK_FREE_MAGICK_MEMORY(supported_formats[i]);
3960 }
3961
3962 #if PHP_VERSION_ID >= 70000
3963 smart_string_0(&formats);
3964 php_info_print_table_row(2, "ImageMagick supported formats", formats.c);
3965 smart_string_free(&formats);
3966 #else
3967 smart_str_0(&formats);
3968 php_info_print_table_row(2, "ImageMagick supported formats", formats.c);
3969 smart_str_free(&formats);
3970 #endif
3971 IMAGICK_FREE_MAGICK_MEMORY(supported_formats);
3972 }
3973
3974 php_info_print_table_end();
3975 DISPLAY_INI_ENTRIES();
3976 }
3977
3978
3979 PHP_MSHUTDOWN_FUNCTION(imagick)
3980 {
3981 int i;
3982
3983 // This suppresses an 'unused parameter' warning.
3984 (void)type;
3985
3986 MagickWandTerminus();
3987
3988 #if HAVE_OMP_PAUSE_RESOURCE_ALL
3989 omp_pause_resource_all(omp_pause_hard);
3990 #else
3991 // Sleep for a bit to hopefully allow OpenMP to
3992 // shut down the threads it created, and avoid a segfault
3993 // This hack won't be needed once everyone is compiling ImageMagick
3994 // against a version of OpenMP that has omp_pause_resource_all()
3995 for (i = 0; i < 100 && i < IMAGICK_G(shutdown_sleep_count); i += 1) {
3996 usleep(1000);
3997 }
3998 #endif
3999
4000 #if defined(ZTS) && defined(PHP_WIN32)
4001 tsrm_mutex_free(imagick_mutex);
4002 #endif
4003 UNREGISTER_INI_ENTRIES();
4004 return SUCCESS;
4005 }
4006
4007 PHP_RINIT_FUNCTION(imagick)
4008 {
4009 // This suppresses an 'unused parameter' warning.
4010 (void)type;
4011 (void)module_number;
4012
4013 IMAGICK_G(progress_callback) = NULL;
4014
4015 if (IMAGICK_G(set_single_thread)) {
4016 MagickSetResourceLimit(ThreadResource, 1);
4017 }
4018
4019 return SUCCESS;
4020 }
4021
4022 PHP_RSHUTDOWN_FUNCTION(imagick)
4023 {
4024 php_imagick_callback* progress_callback = IMAGICK_G(progress_callback);
4025 // This suppresses an 'unused parameter' warning.
4026 (void)type;
4027 (void)module_number;
4028
4029 if (progress_callback) {
4030 php_imagick_cleanup_progress_callback(progress_callback TSRMLS_CC);
4031 efree(progress_callback);
4032 IMAGICK_G(progress_callback) = NULL;
4033 }
4034
4035 #if defined(ZTS) && defined(PHP_WIN32)
4036 /* We have the lock so lets release it */
4037 if (imagick_thread_id == tsrm_thread_id()) {
4038 imagick_thread_id = (THREAD_T)NULL;
4039 tsrm_mutex_unlock(imagick_mutex);
4040 }
4041 #endif
4042 return SUCCESS;
4043 }
4044
4045 #if ZEND_MODULE_API_NO >= 20050922
4046 static const zend_module_dep imagick_deps[] = {
4047 ZEND_MOD_CONFLICTS("gmagick")
4048 ZEND_MOD_REQUIRED("standard")
4049 ZEND_MOD_REQUIRED("spl")
4050 ZEND_MOD_END
4051 };
4052 #endif
4053
4054 zend_module_entry imagick_module_entry =
4055 {
4056 #if ZEND_MODULE_API_NO >= 20050922
4057 STANDARD_MODULE_HEADER_EX, NULL,
4058 imagick_deps,
4059 #else
4060 STANDARD_MODULE_HEADER,
4061 #endif
4062 PHP_IMAGICK_EXTNAME,
4063 php_imagick_functions, /* Functions */
4064 PHP_MINIT(imagick), /* MINIT */
4065 PHP_MSHUTDOWN(imagick), /* MSHUTDOWN */
4066 PHP_RINIT(imagick), /* RINIT */
4067 PHP_RSHUTDOWN(imagick),
4068 PHP_MINFO(imagick), /* MINFO */
4069 PHP_IMAGICK_VERSION,
4070 STANDARD_MODULE_PROPERTIES
4071 };
4072
4073 #ifdef COMPILE_DL_IMAGICK
4074 ZEND_GET_MODULE(imagick)
4075 #endif
4076