xref: /imagick/imagick.c (revision 3de6f0cf)
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