rmagick 1.15.17 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of rmagick might be problematic. Click here for more details.
- data/ChangeLog +78 -25
- data/README.html +117 -188
- data/README.txt +116 -181
- data/build_tarball.rake +205 -0
- data/doc/comtasks.html +2 -2
- data/doc/constants.html +118 -44
- data/doc/draw.html +57 -99
- data/doc/ex/adaptive_threshold.rb +1 -10
- data/doc/ex/add_noise.rb +4 -5
- data/doc/ex/axes.rb +1 -1
- data/doc/ex/bilevel_channel.rb +2 -13
- data/doc/ex/bounding_box.rb +3 -4
- data/doc/ex/channel.rb +6 -7
- data/doc/ex/clip_path.rb +11 -5
- data/doc/ex/color_histogram.rb +8 -20
- data/doc/ex/composite_layers.rb +53 -0
- data/doc/ex/fill_pattern.rb +26 -0
- data/doc/ex/get_multiline_type_metrics.rb +26 -37
- data/doc/ex/get_type_metrics.rb +25 -25
- data/doc/ex/images/notimplemented.gif +0 -0
- data/doc/ex/level.rb +1 -1
- data/doc/ex/matte_floodfill.rb +5 -6
- data/doc/ex/matte_replace.rb +5 -6
- data/doc/ex/negate_channel.rb +0 -10
- data/doc/ex/opacity.rb +3 -5
- data/doc/ex/polaroid.rb +4 -1
- data/doc/ex/posterize.rb +1 -12
- data/doc/ex/preview.rb +1 -8
- data/doc/ex/radial_blur.rb +1 -11
- data/doc/ex/raise.rb +1 -4
- data/doc/ex/random_threshold_channel.rb +4 -9
- data/doc/ex/sepiatone.rb +2 -9
- data/doc/ex/shadow.rb +12 -18
- data/doc/ex/sketch.rb +2 -9
- data/doc/ex/smile.rb +7 -7
- data/doc/ex/splice.rb +3 -10
- data/doc/ex/stegano.rb +5 -0
- data/doc/ex/threshold.rb +2 -2
- data/doc/ex/transpose.rb +1 -8
- data/doc/ex/transverse.rb +1 -8
- data/doc/ex/trim.rb +1 -2
- data/doc/ex/viewex.rb +4 -5
- data/doc/ex/vignette.rb +1 -8
- data/doc/ex/watermark.rb +1 -0
- data/doc/ex/wet_floor.rb +8 -14
- data/doc/ilist.html +301 -110
- data/doc/image1.html +362 -258
- data/doc/image2.html +429 -286
- data/doc/image3.html +418 -192
- data/doc/imageattrs.html +100 -39
- data/doc/imusage.html +26 -21
- data/doc/index.html +52 -93
- data/doc/info.html +160 -64
- data/doc/magick.html +37 -71
- data/doc/optequiv.html +155 -61
- data/doc/rvg.html +3 -3
- data/doc/rvgclip.html +2 -2
- data/doc/rvggroup.html +2 -2
- data/doc/rvgimage.html +3 -3
- data/doc/rvgpattern.html +3 -3
- data/doc/rvgshape.html +2 -2
- data/doc/rvgstyle.html +2 -2
- data/doc/rvgtext.html +2 -2
- data/doc/rvgtspan.html +4 -4
- data/doc/rvgtut.html +4 -4
- data/doc/rvguse.html +3 -3
- data/doc/rvgxform.html +2 -2
- data/doc/struct.html +26 -29
- data/doc/usage.html +99 -48
- data/examples/crop_with_gravity.rb +46 -0
- data/examples/demo.rb +2 -2
- data/examples/histogram.rb +11 -11
- data/examples/identify.rb +45 -45
- data/examples/spinner.rb +3 -2
- data/ext/RMagick/MANIFEST +7 -8
- data/ext/RMagick/extconf.rb +242 -0
- data/ext/RMagick/rmagick.h +136 -222
- data/ext/RMagick/rmdraw.c +226 -229
- data/ext/RMagick/rmfill.c +69 -118
- data/ext/RMagick/rmilist.c +234 -94
- data/ext/RMagick/rmimage.c +1719 -2564
- data/ext/RMagick/rminfo.c +433 -619
- data/ext/RMagick/rmmain.c +249 -487
- data/ext/RMagick/rmutil.c +344 -563
- data/lib/RMagick.rb +414 -358
- data/lib/rvg/clippath.rb +2 -2
- data/lib/rvg/container.rb +2 -2
- data/lib/rvg/describable.rb +2 -2
- data/lib/rvg/embellishable.rb +2 -2
- data/lib/rvg/misc.rb +3 -3
- data/lib/rvg/paint.rb +2 -7
- data/lib/rvg/pathdata.rb +2 -2
- data/lib/rvg/rvg.rb +2 -2
- data/lib/rvg/stretchable.rb +2 -14
- data/lib/rvg/stylable.rb +2 -2
- data/lib/rvg/text.rb +2 -2
- data/lib/rvg/transformable.rb +2 -2
- data/lib/rvg/units.rb +2 -2
- data/{metaconfig.in → metaconfig} +0 -1
- data/post-setup.rb +1 -1
- data/rmagick.gemspec +6 -9
- metadata +41 -49
- data/Makefile.in +0 -42
- data/configure +0 -12358
- data/configure.ac +0 -791
- data/ext/RMagick/extconf.rb.in +0 -25
- data/ext/RMagick/rmagick_config.h.in +0 -285
- data/gem_extconf.rb +0 -42
data/ext/RMagick/rmmain.c
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
/* $Id: rmmain.c,v 1.
|
1
|
+
/* $Id: rmmain.c,v 1.228 2007/12/26 21:43:52 rmagick Exp $ */
|
2
2
|
/*============================================================================\
|
3
|
-
| Copyright (C)
|
3
|
+
| Copyright (C) 2007 by Timothy P. Hunter
|
4
4
|
| Name: rmmain.c
|
5
5
|
| Author: Tim Hunter
|
6
6
|
| Purpose: Contains all module, class, method declarations.
|
@@ -21,8 +21,6 @@ static void test_Magick_version(void);
|
|
21
21
|
static void version_constants(void);
|
22
22
|
|
23
23
|
|
24
|
-
#define MAGICK_MONITOR_CVAR "@@__rmagick_monitor__"
|
25
|
-
static VALUE Magick_Monitor;
|
26
24
|
|
27
25
|
/*
|
28
26
|
Method: Magick::colors [ { |colorinfo| } ]
|
@@ -34,55 +32,9 @@ static VALUE Magick_Monitor;
|
|
34
32
|
VALUE
|
35
33
|
Magick_colors(VALUE class)
|
36
34
|
{
|
37
|
-
#if defined(HAVE_GETCOLORINFOARRAY) // GraphicsMagick
|
38
|
-
ColorInfo **color_ary;
|
39
|
-
ExceptionInfo exception;
|
40
|
-
volatile VALUE ary;
|
41
|
-
int x;
|
42
|
-
|
43
|
-
GetExceptionInfo(&exception);
|
44
|
-
|
45
|
-
color_ary = GetColorInfoArray(&exception);
|
46
|
-
CHECK_EXCEPTION()
|
47
|
-
(void) DestroyExceptionInfo(&exception);
|
48
|
-
|
49
|
-
|
50
|
-
if (rb_block_given_p())
|
51
|
-
{
|
52
|
-
x = 0;
|
53
|
-
while(color_ary[x])
|
54
|
-
{
|
55
|
-
rb_yield(Color_from_ColorInfo(color_ary[x]));
|
56
|
-
x += 1;
|
57
|
-
}
|
58
|
-
magick_free(color_ary);
|
59
|
-
return class;
|
60
|
-
}
|
61
|
-
else
|
62
|
-
{
|
63
|
-
ary = rb_ary_new();
|
64
|
-
|
65
|
-
x = 0;
|
66
|
-
while (color_ary[x])
|
67
|
-
{
|
68
|
-
rb_ary_push(ary, Color_from_ColorInfo(color_ary[x]));
|
69
|
-
x += 1;
|
70
|
-
}
|
71
|
-
magick_free(color_ary);
|
72
|
-
return ary;
|
73
|
-
}
|
74
|
-
|
75
|
-
#elif defined(HAVE_GETCOLORINFOLIST) // ImageMagick 6.0.0
|
76
|
-
|
77
35
|
const ColorInfo **color_info_list;
|
78
36
|
unsigned long number_colors, x;
|
79
37
|
volatile VALUE ary;
|
80
|
-
|
81
|
-
#if defined(HAVE_OLD_GETCOLORINFOLIST)
|
82
|
-
color_info_list = GetColorInfoList("*", &number_colors);
|
83
|
-
|
84
|
-
#else
|
85
|
-
// IM 6.1.3 added an exception parm to GetColorInfoList
|
86
38
|
ExceptionInfo exception;
|
87
39
|
|
88
40
|
GetExceptionInfo(&exception);
|
@@ -91,12 +43,10 @@ Magick_colors(VALUE class)
|
|
91
43
|
CHECK_EXCEPTION()
|
92
44
|
(void) DestroyExceptionInfo(&exception);
|
93
45
|
|
94
|
-
#endif
|
95
|
-
|
96
46
|
|
97
47
|
if (rb_block_given_p())
|
98
48
|
{
|
99
|
-
for(x = 0; x < number_colors; x++)
|
49
|
+
for (x = 0; x < number_colors; x++)
|
100
50
|
{
|
101
51
|
(void) rb_yield(Color_from_ColorInfo(color_info_list[x]));
|
102
52
|
}
|
@@ -106,7 +56,7 @@ Magick_colors(VALUE class)
|
|
106
56
|
else
|
107
57
|
{
|
108
58
|
ary = rb_ary_new2((long) number_colors);
|
109
|
-
for(x = 0; x < number_colors; x++)
|
59
|
+
for (x = 0; x < number_colors; x++)
|
110
60
|
{
|
111
61
|
(void) rb_ary_push(ary, Color_from_ColorInfo(color_info_list[x]));
|
112
62
|
}
|
@@ -114,45 +64,6 @@ Magick_colors(VALUE class)
|
|
114
64
|
magick_free(color_info_list);
|
115
65
|
return ary;
|
116
66
|
}
|
117
|
-
|
118
|
-
#else // ImageMagick < 6.0.0
|
119
|
-
|
120
|
-
const ColorInfo *color_list;
|
121
|
-
ColorInfo *color;
|
122
|
-
ExceptionInfo exception;
|
123
|
-
volatile VALUE ary, el;
|
124
|
-
|
125
|
-
GetExceptionInfo(&exception);
|
126
|
-
|
127
|
-
color_list = GetColorInfo("*", &exception);
|
128
|
-
(void) DestroyExceptionInfo(&exception);
|
129
|
-
|
130
|
-
// The order of the colors list can change in mid-iteration,
|
131
|
-
// so the only way we can guarantee a single pass thru the list
|
132
|
-
// is to copy the elements into an array without returning to
|
133
|
-
// IM. So, we always create a Ruby array and either return it
|
134
|
-
// or iterate over it.
|
135
|
-
ary = rb_ary_new();
|
136
|
-
for (color = (ColorInfo *)color_list; color; color = color->next)
|
137
|
-
{
|
138
|
-
rb_ary_push(ary, Color_from_ColorInfo(color));
|
139
|
-
}
|
140
|
-
|
141
|
-
// If block, iterate over colors
|
142
|
-
if (rb_block_given_p())
|
143
|
-
{
|
144
|
-
while ((el = rb_ary_shift(ary)) != Qnil)
|
145
|
-
{
|
146
|
-
rb_yield(el);
|
147
|
-
}
|
148
|
-
return class;
|
149
|
-
}
|
150
|
-
else
|
151
|
-
{
|
152
|
-
return ary;
|
153
|
-
}
|
154
|
-
|
155
|
-
#endif
|
156
67
|
}
|
157
68
|
|
158
69
|
/*
|
@@ -163,17 +74,9 @@ Magick_colors(VALUE class)
|
|
163
74
|
VALUE
|
164
75
|
Magick_fonts(VALUE class)
|
165
76
|
{
|
166
|
-
#if defined(HAVE_GETTYPEINFOLIST) // ImageMagick 6.0.0
|
167
|
-
|
168
77
|
const TypeInfo **type_info;
|
169
78
|
unsigned long number_types, x;
|
170
79
|
volatile VALUE ary;
|
171
|
-
|
172
|
-
#if defined(HAVE_OLD_GETTYPEINFOLIST)
|
173
|
-
type_info = GetTypeInfoList("*", &number_types);
|
174
|
-
|
175
|
-
#else
|
176
|
-
// IM 6.1.3 added an exception argument to GetTypeInfoList
|
177
80
|
ExceptionInfo exception;
|
178
81
|
|
179
82
|
GetExceptionInfo(&exception);
|
@@ -181,11 +84,9 @@ Magick_fonts(VALUE class)
|
|
181
84
|
CHECK_EXCEPTION()
|
182
85
|
(void) DestroyExceptionInfo(&exception);
|
183
86
|
|
184
|
-
#endif
|
185
|
-
|
186
87
|
if (rb_block_given_p())
|
187
88
|
{
|
188
|
-
for(x = 0; x < number_types; x++)
|
89
|
+
for (x = 0; x < number_types; x++)
|
189
90
|
{
|
190
91
|
(void) rb_yield(Font_from_TypeInfo((TypeInfo *)type_info[x]));
|
191
92
|
}
|
@@ -195,7 +96,7 @@ Magick_fonts(VALUE class)
|
|
195
96
|
else
|
196
97
|
{
|
197
98
|
ary = rb_ary_new2((long)number_types);
|
198
|
-
for(x = 0; x < number_types; x++)
|
99
|
+
for (x = 0; x < number_types; x++)
|
199
100
|
{
|
200
101
|
(void) rb_ary_push(ary, Font_from_TypeInfo((TypeInfo *)type_info[x]));
|
201
102
|
}
|
@@ -203,44 +104,6 @@ Magick_fonts(VALUE class)
|
|
203
104
|
return ary;
|
204
105
|
}
|
205
106
|
|
206
|
-
#else
|
207
|
-
|
208
|
-
const TypeInfo *type_list;
|
209
|
-
TypeInfo *type, *next;
|
210
|
-
ExceptionInfo exception;
|
211
|
-
volatile VALUE ary;
|
212
|
-
|
213
|
-
GetExceptionInfo(&exception);
|
214
|
-
|
215
|
-
type_list = GetTypeInfo("*", &exception);
|
216
|
-
CHECK_EXCEPTION()
|
217
|
-
(void) DestroyExceptionInfo(&exception);
|
218
|
-
|
219
|
-
// If block, iterate over fonts
|
220
|
-
if (rb_block_given_p())
|
221
|
-
{
|
222
|
-
for (type = (TypeInfo *)type_list; type; type = next)
|
223
|
-
{
|
224
|
-
next = type->next; // Protect against recursive calls to GetTypeInfo
|
225
|
-
if (! type->stealth)
|
226
|
-
{
|
227
|
-
rb_yield(Font_from_TypeInfo(type));
|
228
|
-
}
|
229
|
-
}
|
230
|
-
|
231
|
-
return class;
|
232
|
-
}
|
233
|
-
else
|
234
|
-
{
|
235
|
-
ary = rb_ary_new();
|
236
|
-
for (type = (TypeInfo *)type_list; type; type = type->next)
|
237
|
-
{
|
238
|
-
rb_ary_push(ary, Font_from_TypeInfo(type));
|
239
|
-
}
|
240
|
-
return ary;
|
241
|
-
}
|
242
|
-
|
243
|
-
#endif
|
244
107
|
}
|
245
108
|
|
246
109
|
|
@@ -275,84 +138,28 @@ static VALUE MagickInfo_to_format(MagickInfo *magick_info)
|
|
275
138
|
VALUE
|
276
139
|
Magick_init_formats(VALUE class)
|
277
140
|
{
|
278
|
-
#if defined(HAVE_GETMAGICKINFOARRAY) // GraphicsMagick
|
279
|
-
|
280
|
-
MagickInfo *magick_info, *m;
|
281
|
-
volatile VALUE formats;
|
282
|
-
ExceptionInfo exception;
|
283
|
-
|
284
|
-
class = class; // defeat "never referenced" message from icc
|
285
|
-
|
286
|
-
formats = rb_hash_new();
|
287
|
-
|
288
|
-
GetExceptionInfo(&exception);
|
289
|
-
magick_info = (MagickInfo *)GetMagickInfoArray(&exception);
|
290
|
-
CHECK_EXCEPTION()
|
291
|
-
(void) DestroyExceptionInfo(&exception);
|
292
|
-
|
293
|
-
for(m = magick_info; m != NULL; m = m->next)
|
294
|
-
{
|
295
|
-
rb_hash_aset(formats, rb_str_new2(m->name), MagickInfo_to_format(m));
|
296
|
-
}
|
297
|
-
|
298
|
-
magick_free(magick_info);
|
299
|
-
return formats;
|
300
|
-
|
301
|
-
#elif defined(HAVE_GETMAGICKINFOLIST) // ImageMagick 6.0.0
|
302
|
-
|
303
141
|
const MagickInfo **magick_info;
|
304
142
|
unsigned long number_formats, x;
|
305
143
|
volatile VALUE formats;
|
306
|
-
#if !defined(HAVE_OLD_GETMAGICKINFOLIST)
|
307
144
|
ExceptionInfo exception;
|
308
|
-
#endif
|
309
145
|
|
310
146
|
class = class; // defeat "never referenced" message from icc
|
311
147
|
formats = rb_hash_new();
|
312
148
|
|
313
|
-
#if defined(HAVE_OLD_GETMAGICKINFOLIST)
|
314
|
-
magick_info = GetMagickInfoList("*", &number_formats);
|
315
|
-
|
316
|
-
#else
|
317
149
|
// IM 6.1.3 added an exception argument to GetMagickInfoList
|
318
150
|
GetExceptionInfo(&exception);
|
319
151
|
magick_info = GetMagickInfoList("*", &number_formats, &exception);
|
320
152
|
CHECK_EXCEPTION()
|
321
153
|
(void) DestroyExceptionInfo(&exception);
|
322
154
|
|
323
|
-
#endif
|
324
155
|
|
325
|
-
for(x = 0; x < number_formats; x++)
|
156
|
+
for (x = 0; x < number_formats; x++)
|
326
157
|
{
|
327
158
|
(void) rb_hash_aset(formats
|
328
|
-
|
329
|
-
|
330
|
-
}
|
331
|
-
return formats;
|
332
|
-
|
333
|
-
#else
|
334
|
-
|
335
|
-
MagickInfo *m;
|
336
|
-
volatile VALUE formats;
|
337
|
-
ExceptionInfo exception;
|
338
|
-
|
339
|
-
class = class; // defeat "never referenced" message from icc
|
340
|
-
|
341
|
-
formats = rb_hash_new();
|
342
|
-
|
343
|
-
GetExceptionInfo(&exception);
|
344
|
-
m = (MagickInfo *)GetMagickInfo("*", &exception);
|
345
|
-
CHECK_EXCEPTION()
|
346
|
-
(void) DestroyExceptionInfo(&exception);
|
347
|
-
|
348
|
-
for ( ; m != NULL; m = m->next)
|
349
|
-
{
|
350
|
-
rb_hash_aset(formats, rb_str_new2(m->name), MagickInfo_to_format(m));
|
159
|
+
, rb_str_new2(magick_info[x]->name)
|
160
|
+
, MagickInfo_to_format((MagickInfo *)magick_info[x]));
|
351
161
|
}
|
352
|
-
|
353
162
|
return formats;
|
354
|
-
|
355
|
-
#endif
|
356
163
|
}
|
357
164
|
|
358
165
|
|
@@ -365,7 +172,6 @@ Magick_init_formats(VALUE class)
|
|
365
172
|
static VALUE
|
366
173
|
Magick_limit_resource(int argc, VALUE *argv, VALUE class)
|
367
174
|
{
|
368
|
-
#if defined(HAVE_GETMAGICKRESOURCELIMIT)
|
369
175
|
volatile VALUE resource, limit;
|
370
176
|
ResourceType res = UndefinedResource;
|
371
177
|
char *str;
|
@@ -404,7 +210,7 @@ Magick_limit_resource(int argc, VALUE *argv, VALUE class)
|
|
404
210
|
break;
|
405
211
|
|
406
212
|
default:
|
407
|
-
str =
|
213
|
+
str = StringValuePtr(resource);
|
408
214
|
if (*str == '\0')
|
409
215
|
{
|
410
216
|
return class;
|
@@ -440,84 +246,9 @@ Magick_limit_resource(int argc, VALUE *argv, VALUE class)
|
|
440
246
|
}
|
441
247
|
|
442
248
|
return ULONG2NUM(cur_limit);
|
443
|
-
#else
|
444
|
-
rm_not_implemented();
|
445
|
-
return (VALUE)0;
|
446
|
-
#endif
|
447
|
-
}
|
448
|
-
|
449
|
-
|
450
|
-
/*
|
451
|
-
This is the exit known to ImageMagick. Retrieve the monitor
|
452
|
-
proc and call it, passing the 3 exit arguments.
|
453
|
-
*/
|
454
|
-
static unsigned int
|
455
|
-
monitor_handler(
|
456
|
-
const char *text,
|
457
|
-
const magick_int64_t quantum,
|
458
|
-
const magick_uint64_t span,
|
459
|
-
ExceptionInfo *exception)
|
460
|
-
{
|
461
|
-
volatile VALUE monitor;
|
462
|
-
volatile VALUE args[3];
|
463
|
-
|
464
|
-
exception = exception; // defeat "never referenced" message from icc
|
465
|
-
|
466
|
-
if (rb_cvar_defined(Module_Magick, Magick_Monitor) == Qtrue)
|
467
|
-
{
|
468
|
-
args[0] = rb_str_new2(text);
|
469
|
-
// Convert these possibly-64-bit types to 32-bit types that
|
470
|
-
// Ruby can handle.
|
471
|
-
args[1] = INT2NUM((long) quantum);
|
472
|
-
args[2] = UINT2NUM((unsigned long) span);
|
473
|
-
|
474
|
-
monitor = rb_cvar_get(Module_Magick, Magick_Monitor);
|
475
|
-
(void) rb_funcall2((VALUE)monitor, rm_ID_call, 3, (VALUE *)args);
|
476
|
-
}
|
477
|
-
|
478
|
-
return True;
|
479
249
|
}
|
480
250
|
|
481
|
-
/*
|
482
|
-
Method: Magick.set_monitor(&monitor)
|
483
|
-
Purpose: Establish MagickMonitor exit
|
484
|
-
Notes: use nil argument to turn off monitoring
|
485
|
-
*/
|
486
|
-
static VALUE
|
487
|
-
Magick_set_monitor(VALUE class, VALUE monitor)
|
488
|
-
{
|
489
|
-
|
490
|
-
// 1st time: establish ID, define @@__MAGICK_MONITOR__
|
491
|
-
// class variable, stow monitor VALUE in it.
|
492
|
-
if (!Magick_Monitor)
|
493
|
-
{
|
494
|
-
Magick_Monitor = rb_intern(MAGICK_MONITOR_CVAR);
|
495
|
-
rb_define_class_variable(Module_Magick, MAGICK_MONITOR_CVAR, monitor);
|
496
251
|
|
497
|
-
#if defined(HAVE_SETIMAGEPROGRESSMONITOR)
|
498
|
-
rb_warning("Magick.set_monitor is deprecated; use Image#monitor= or Image::Info#monitor= instead.");
|
499
|
-
#endif
|
500
|
-
|
501
|
-
}
|
502
|
-
|
503
|
-
// If nil, turn off monitoring.
|
504
|
-
if (monitor == Qnil)
|
505
|
-
{
|
506
|
-
(void) SetMonitorHandler(NULL);
|
507
|
-
}
|
508
|
-
else
|
509
|
-
// Otherwise, store monitor in @@__MAGICK_MONITOR__
|
510
|
-
{
|
511
|
-
// 1.8.0 deletes rb_cvar_declare and adds another
|
512
|
-
// parm to rb_cvar_set - if rb_cvar_declare is
|
513
|
-
// available, use the 3-parm version of rb_cvar_set.
|
514
|
-
RUBY18(rb_cvar_set(Module_Magick, Magick_Monitor, monitor, 0);)
|
515
|
-
RUBY16(rb_cvar_set(Module_Magick, Magick_Monitor, monitor);)
|
516
|
-
(void) SetMonitorHandler((MonitorHandler)&monitor_handler);
|
517
|
-
}
|
518
|
-
|
519
|
-
return class;
|
520
|
-
}
|
521
252
|
|
522
253
|
/*
|
523
254
|
Method Magick.set_cache_threshold(megabytes)
|
@@ -525,8 +256,6 @@ Magick_set_monitor(VALUE class, VALUE monitor)
|
|
525
256
|
pixel cache. Once this threshold is exceeded, all
|
526
257
|
subsequent pixels cache operations are to/from disk.
|
527
258
|
Notes: singleton method
|
528
|
-
Pre-5.5.1 this method called the SetCacheThreshold
|
529
|
-
function, which is deprecated in 5.5.1.
|
530
259
|
*/
|
531
260
|
static VALUE
|
532
261
|
Magick_set_cache_threshold(VALUE class, VALUE threshold)
|
@@ -555,7 +284,7 @@ Magick_set_log_event_mask(int argc, VALUE *argv, VALUE class)
|
|
555
284
|
}
|
556
285
|
for (x = 0; x < argc; x++)
|
557
286
|
{
|
558
|
-
(void) SetLogEventMask(
|
287
|
+
(void) SetLogEventMask(StringValuePtr(argv[x]));
|
559
288
|
}
|
560
289
|
return class;
|
561
290
|
}
|
@@ -577,25 +306,30 @@ Magick_set_log_event_mask(int argc, VALUE *argv, VALUE class)
|
|
577
306
|
static VALUE
|
578
307
|
Magick_set_log_format(VALUE class, VALUE format)
|
579
308
|
{
|
580
|
-
SetLogFormat(
|
309
|
+
SetLogFormat(StringValuePtr(format));
|
581
310
|
return class;
|
582
311
|
}
|
583
312
|
|
584
313
|
|
585
314
|
|
586
315
|
/*
|
587
|
-
External:
|
316
|
+
External: Init_RMagick2
|
588
317
|
Purpose: define the classes and constants
|
589
318
|
Arguments: void
|
590
319
|
Returns: void
|
591
320
|
*/
|
592
321
|
|
593
322
|
void
|
594
|
-
|
323
|
+
Init_RMagick2(void)
|
595
324
|
{
|
596
325
|
volatile VALUE observable;
|
597
326
|
|
327
|
+
#if defined(HAVE_MagickCoreGenesis)
|
328
|
+
MagickCoreGenesis("RMagick", MagickFalse);
|
329
|
+
#else
|
598
330
|
InitializeMagick("RMagick");
|
331
|
+
#endif
|
332
|
+
|
599
333
|
test_Magick_version();
|
600
334
|
|
601
335
|
Module_Magick = rb_define_module("Magick");
|
@@ -604,6 +338,7 @@ Init_RMagick(void)
|
|
604
338
|
/* Create IDs for frequently used methods, etc. */
|
605
339
|
/*-----------------------------------------------------------------------*/
|
606
340
|
|
341
|
+
rm_ID_trace_proc = rb_intern("@trace_proc");
|
607
342
|
rm_ID__dummy_img_ = rb_intern("_dummy_img_");
|
608
343
|
rm_ID_call = rb_intern("call");
|
609
344
|
rm_ID_changed = rb_intern("changed");
|
@@ -622,7 +357,8 @@ Init_RMagick(void)
|
|
622
357
|
rm_ID_new = rb_intern("new");
|
623
358
|
rm_ID_push = rb_intern("push");
|
624
359
|
rm_ID_spaceship = rb_intern("<=>");
|
625
|
-
rm_ID__tmpnam_ = rb_intern("
|
360
|
+
rm_ID__tmpnam_ = rb_intern("_tmpnam_");
|
361
|
+
rm_ID_to_i = rb_intern("to_i");
|
626
362
|
rm_ID_to_s = rb_intern("to_s");
|
627
363
|
rm_ID_values = rb_intern("values");
|
628
364
|
rm_ID_width = rb_intern("width");
|
@@ -637,7 +373,6 @@ Init_RMagick(void)
|
|
637
373
|
rb_define_module_function(Module_Magick, "fonts", Magick_fonts, 0);
|
638
374
|
rb_define_module_function(Module_Magick, "init_formats", Magick_init_formats, 0);
|
639
375
|
rb_define_module_function(Module_Magick, "limit_resource", Magick_limit_resource, -1);
|
640
|
-
rb_define_module_function(Module_Magick, "set_monitor", Magick_set_monitor, 1);
|
641
376
|
rb_define_module_function(Module_Magick, "set_cache_threshold", Magick_set_cache_threshold, 1);
|
642
377
|
rb_define_module_function(Module_Magick, "set_log_event_mask", Magick_set_log_event_mask, -1);
|
643
378
|
rb_define_module_function(Module_Magick, "set_log_format", Magick_set_log_format, 1);
|
@@ -651,14 +386,10 @@ Init_RMagick(void)
|
|
651
386
|
// Define an alias for Object#display before we override it
|
652
387
|
rb_define_alias(Class_Image, "__display__", "display");
|
653
388
|
|
654
|
-
#if defined(HAVE_RB_DEFINE_ALLOC_FUNC)
|
655
389
|
rb_define_alloc_func(Class_Image, Image_alloc);
|
656
390
|
rb_define_method(Class_Image, "initialize", Image_initialize, -1);
|
657
|
-
#else
|
658
|
-
rb_define_singleton_method(Class_Image, "new", Image_new, -1);
|
659
|
-
rb_define_method(Class_Image, "initialize", Image_initialize, 4);
|
660
|
-
#endif
|
661
391
|
|
392
|
+
rb_define_singleton_method(Class_Image, "combine", Image_combine, -1);
|
662
393
|
rb_define_singleton_method(Class_Image, "constitute", Image_constitute, 4);
|
663
394
|
rb_define_singleton_method(Class_Image, "_load", Image__load, 1);
|
664
395
|
rb_define_singleton_method(Class_Image, "capture", Image_capture, -1);
|
@@ -667,6 +398,7 @@ Init_RMagick(void)
|
|
667
398
|
rb_define_singleton_method(Class_Image, "read_inline", Image_read_inline, 1);
|
668
399
|
rb_define_singleton_method(Class_Image, "from_blob", Image_from_blob, 1);
|
669
400
|
|
401
|
+
DCL_ATTR_WRITER(Image, alpha)
|
670
402
|
DCL_ATTR_ACCESSOR(Image, background_color)
|
671
403
|
DCL_ATTR_READER(Image, base_columns)
|
672
404
|
DCL_ATTR_READER(Image, base_filename)
|
@@ -697,7 +429,8 @@ Init_RMagick(void)
|
|
697
429
|
DCL_ATTR_ACCESSOR(Image, fuzz)
|
698
430
|
DCL_ATTR_ACCESSOR(Image, gamma)
|
699
431
|
DCL_ATTR_ACCESSOR(Image, geometry)
|
700
|
-
DCL_ATTR_ACCESSOR(Image,
|
432
|
+
DCL_ATTR_ACCESSOR(Image, gravity)
|
433
|
+
DCL_ATTR_READER(Image, image_type)
|
701
434
|
DCL_ATTR_ACCESSOR(Image, interlace)
|
702
435
|
DCL_ATTR_ACCESSOR(Image, iptc_profile)
|
703
436
|
DCL_ATTR_ACCESSOR(Image, iterations) // do not document! Only used by Image#iterations=
|
@@ -707,7 +440,7 @@ Init_RMagick(void)
|
|
707
440
|
DCL_ATTR_READER(Image, mean_error_per_pixel)
|
708
441
|
DCL_ATTR_READER(Image, mime_type)
|
709
442
|
DCL_ATTR_WRITER(Image, monitor)
|
710
|
-
|
443
|
+
DCL_ATTR_READER(Image, montage)
|
711
444
|
DCL_ATTR_READER(Image, normalized_mean_error)
|
712
445
|
DCL_ATTR_READER(Image, normalized_maximum_error)
|
713
446
|
DCL_ATTR_READER(Image, number_colors)
|
@@ -716,9 +449,7 @@ Init_RMagick(void)
|
|
716
449
|
DCL_ATTR_ACCESSOR(Image, orientation)
|
717
450
|
DCL_ATTR_ACCESSOR(Image, page)
|
718
451
|
DCL_ATTR_ACCESSOR(Image, pixel_interpolation_method)
|
719
|
-
#if defined(HAVE_IMAGE_QUALITY)
|
720
452
|
DCL_ATTR_READER(Image, quality)
|
721
|
-
#endif
|
722
453
|
DCL_ATTR_READER(Image, quantum_depth)
|
723
454
|
DCL_ATTR_ACCESSOR(Image, rendering_intent)
|
724
455
|
DCL_ATTR_READER(Image, rows)
|
@@ -726,7 +457,6 @@ Init_RMagick(void)
|
|
726
457
|
DCL_ATTR_ACCESSOR(Image, start_loop)
|
727
458
|
DCL_ATTR_ACCESSOR(Image, class_type)
|
728
459
|
DCL_ATTR_ACCESSOR(Image, ticks_per_second)
|
729
|
-
DCL_ATTR_ACCESSOR(Image, tile_info)
|
730
460
|
DCL_ATTR_READER(Image, total_colors)
|
731
461
|
DCL_ATTR_ACCESSOR(Image, transparent_color)
|
732
462
|
DCL_ATTR_ACCESSOR(Image, units)
|
@@ -762,13 +492,14 @@ Init_RMagick(void)
|
|
762
492
|
rb_define_method(Class_Image, "channel", Image_channel, 1);
|
763
493
|
// An alias for compare_channel
|
764
494
|
rb_define_method(Class_Image, "channel_compare", Image_compare_channel, -1);
|
495
|
+
rb_define_method(Class_Image, "check_destroyed", Image_check_destroyed, 0);
|
765
496
|
rb_define_method(Class_Image, "compare_channel", Image_compare_channel, -1);
|
766
497
|
rb_define_method(Class_Image, "channel_depth", Image_channel_depth, -1);
|
767
498
|
rb_define_method(Class_Image, "channel_extrema", Image_channel_extrema, -1);
|
768
499
|
rb_define_method(Class_Image, "channel_mean", Image_channel_mean, -1);
|
769
|
-
rb_define_method(Class_Image, "channel_threshold", Image_channel_threshold, -1);
|
770
500
|
rb_define_method(Class_Image, "charcoal", Image_charcoal, -1);
|
771
501
|
rb_define_method(Class_Image, "chop", Image_chop, 4);
|
502
|
+
rb_define_method(Class_Image, "clut_channel", Image_clut_channel, -1);
|
772
503
|
rb_define_method(Class_Image, "clone", Image_clone, 0);
|
773
504
|
rb_define_method(Class_Image, "color_flood_fill", Image_color_flood_fill, 5);
|
774
505
|
rb_define_method(Class_Image, "color_histogram", Image_color_histogram, 0);
|
@@ -790,11 +521,14 @@ Init_RMagick(void)
|
|
790
521
|
rb_define_method(Class_Image, "cycle_colormap", Image_cycle_colormap, 1);
|
791
522
|
rb_define_method(Class_Image, "delete_profile", Image_delete_profile, 1);
|
792
523
|
rb_define_method(Class_Image, "despeckle", Image_despeckle, 0);
|
524
|
+
rb_define_method(Class_Image, "destroy!", Image_destroy_bang, 0);
|
525
|
+
rb_define_method(Class_Image, "destroyed?", Image_destroyed_q, 0);
|
793
526
|
rb_define_method(Class_Image, "difference", Image_difference, 1);
|
794
527
|
rb_define_method(Class_Image, "dispatch", Image_dispatch, -1);
|
795
528
|
rb_define_method(Class_Image, "displace", Image_displace, -1);
|
796
529
|
rb_define_method(Class_Image, "display", Image_display, 0);
|
797
530
|
rb_define_method(Class_Image, "dissolve", Image_dissolve, -1);
|
531
|
+
rb_define_method(Class_Image, "distort", Image_distort, -1);
|
798
532
|
rb_define_method(Class_Image, "distortion_channel", Image_distortion_channel, -1);
|
799
533
|
rb_define_method(Class_Image, "_dump", Image__dump, 1);
|
800
534
|
rb_define_method(Class_Image, "dup", Image_dup, 0);
|
@@ -803,9 +537,13 @@ Init_RMagick(void)
|
|
803
537
|
rb_define_method(Class_Image, "emboss", Image_emboss, -1);
|
804
538
|
rb_define_method(Class_Image, "enhance", Image_enhance, 0);
|
805
539
|
rb_define_method(Class_Image, "equalize", Image_equalize, 0);
|
540
|
+
rb_define_method(Class_Image, "equalize_channel", Image_equalize_channel, -1);
|
806
541
|
rb_define_method(Class_Image, "erase!", Image_erase_bang, 0);
|
542
|
+
rb_define_method(Class_Image, "excerpt", Image_excerpt, 4);
|
543
|
+
rb_define_method(Class_Image, "excerpt!", Image_excerpt_bang, 4);
|
807
544
|
rb_define_method(Class_Image, "export_pixels", Image_export_pixels, -1);
|
808
545
|
rb_define_method(Class_Image, "export_pixels_to_str", Image_export_pixels_to_str, -1);
|
546
|
+
rb_define_method(Class_Image, "extent", Image_extent, -1);
|
809
547
|
rb_define_method(Class_Image, "find_similar_region", Image_find_similar_region, -1);
|
810
548
|
rb_define_method(Class_Image, "flip", Image_flip, 0);
|
811
549
|
rb_define_method(Class_Image, "flip!", Image_flip_bang, 0);
|
@@ -819,7 +557,7 @@ Init_RMagick(void)
|
|
819
557
|
rb_define_method(Class_Image, "get_pixels", Image_get_pixels, 4);
|
820
558
|
rb_define_method(Class_Image, "gray?", Image_gray_q, 0);
|
821
559
|
rb_define_method(Class_Image, "grey?", Image_gray_q, 0);
|
822
|
-
rb_define_method(Class_Image, "
|
560
|
+
rb_define_method(Class_Image, "histogram?", Image_histogram_q, 0);
|
823
561
|
rb_define_method(Class_Image, "implode", Image_implode, -1);
|
824
562
|
rb_define_method(Class_Image, "import_pixels", Image_import_pixels, -1);
|
825
563
|
rb_define_method(Class_Image, "initialize_copy", Image_init_copy, 1);
|
@@ -857,7 +595,6 @@ Init_RMagick(void)
|
|
857
595
|
rb_define_method(Class_Image, "radial_blur", Image_radial_blur, 1);
|
858
596
|
rb_define_method(Class_Image, "radial_blur_channel", Image_radial_blur_channel, -1);
|
859
597
|
rb_define_method(Class_Image, "raise", Image_raise, -1);
|
860
|
-
rb_define_method(Class_Image, "random_channel_threshold", Image_random_channel_threshold, 2);
|
861
598
|
rb_define_method(Class_Image, "random_threshold_channel", Image_random_threshold_channel, -1);
|
862
599
|
rb_define_method(Class_Image, "recolor", Image_recolor, 1);
|
863
600
|
rb_define_method(Class_Image, "reduce_noise", Image_reduce_noise, 1);
|
@@ -871,6 +608,7 @@ Init_RMagick(void)
|
|
871
608
|
rb_define_method(Class_Image, "scale", Image_scale, -1);
|
872
609
|
rb_define_method(Class_Image, "scale!", Image_scale_bang, -1);
|
873
610
|
rb_define_method(Class_Image, "segment", Image_segment, -1);
|
611
|
+
rb_define_method(Class_Image, "separate", Image_separate, -1);
|
874
612
|
rb_define_method(Class_Image, "sepiatone", Image_sepiatone, -1);
|
875
613
|
rb_define_method(Class_Image, "set_channel_depth", Image_set_channel_depth, 2);
|
876
614
|
rb_define_method(Class_Image, "shade", Image_shade, -1);
|
@@ -887,12 +625,12 @@ Init_RMagick(void)
|
|
887
625
|
rb_define_method(Class_Image, "<=>", Image_spaceship, 1);
|
888
626
|
rb_define_method(Class_Image, "splice", Image_splice, -1);
|
889
627
|
rb_define_method(Class_Image, "spread", Image_spread, -1);
|
890
|
-
rb_define_method(Class_Image, "statistics", Image_statistics, 0);
|
891
628
|
rb_define_method(Class_Image, "stegano", Image_stegano, 2);
|
892
629
|
rb_define_method(Class_Image, "stereo", Image_stereo, 1);
|
893
630
|
rb_define_method(Class_Image, "strip!", Image_strip_bang, 0);
|
894
631
|
rb_define_method(Class_Image, "store_pixels", Image_store_pixels, 5);
|
895
632
|
rb_define_method(Class_Image, "swirl", Image_swirl, 1);
|
633
|
+
rb_define_method(Class_Image, "sync_profiles", Image_sync_profiles, 0);
|
896
634
|
rb_define_method(Class_Image, "texture_flood_fill", Image_texture_flood_fill, 5);
|
897
635
|
rb_define_method(Class_Image, "threshold", Image_threshold, 1);
|
898
636
|
rb_define_method(Class_Image, "thumbnail", Image_thumbnail, -1);
|
@@ -905,8 +643,8 @@ Init_RMagick(void)
|
|
905
643
|
rb_define_method(Class_Image, "transpose!", Image_transpose_bang, 0);
|
906
644
|
rb_define_method(Class_Image, "transverse", Image_transverse, 0);
|
907
645
|
rb_define_method(Class_Image, "transverse!", Image_transverse_bang, 0);
|
908
|
-
rb_define_method(Class_Image, "trim", Image_trim,
|
909
|
-
rb_define_method(Class_Image, "trim!", Image_trim_bang,
|
646
|
+
rb_define_method(Class_Image, "trim", Image_trim, -1);
|
647
|
+
rb_define_method(Class_Image, "trim!", Image_trim_bang, -1);
|
910
648
|
rb_define_method(Class_Image, "unique_colors", Image_unique_colors, 0);
|
911
649
|
rb_define_method(Class_Image, "unsharp_mask", Image_unsharp_mask, -1);
|
912
650
|
rb_define_method(Class_Image, "unsharp_mask_channel", Image_unsharp_mask_channel, -1);
|
@@ -921,18 +659,15 @@ Init_RMagick(void)
|
|
921
659
|
/* Class Magick::ImageList methods (see also RMagick.rb) */
|
922
660
|
/*-----------------------------------------------------------------------*/
|
923
661
|
|
924
|
-
Class_ImageList = rb_define_class_under(Module_Magick, "ImageList",
|
662
|
+
Class_ImageList = rb_define_class_under(Module_Magick, "ImageList", rb_cObject);
|
925
663
|
|
926
664
|
// Define an alias for Object#display before we override it
|
927
665
|
rb_define_alias(Class_ImageList, "__display__", "display");
|
928
|
-
|
929
|
-
// Define an alias for Array's "map" method.
|
930
|
-
rb_define_alias(Class_ImageList, "__ary_map__", "map");
|
931
|
-
|
932
666
|
rb_define_method(Class_ImageList, "animate", ImageList_animate, -1);
|
933
667
|
rb_define_method(Class_ImageList, "append", ImageList_append, 1);
|
934
668
|
rb_define_method(Class_ImageList, "average", ImageList_average, 0);
|
935
669
|
rb_define_method(Class_ImageList, "coalesce", ImageList_coalesce, 0);
|
670
|
+
rb_define_method(Class_ImageList, "composite_layers", ImageList_composite_layers, -1);
|
936
671
|
rb_define_method(Class_ImageList, "deconstruct", ImageList_deconstruct, 0);
|
937
672
|
rb_define_method(Class_ImageList, "display", ImageList_display, 0);
|
938
673
|
rb_define_method(Class_ImageList, "flatten_images", ImageList_flatten_images, 0);
|
@@ -951,11 +686,7 @@ Init_RMagick(void)
|
|
951
686
|
/*-----------------------------------------------------------------------*/
|
952
687
|
|
953
688
|
Class_Draw = rb_define_class_under(Module_Magick, "Draw", rb_cObject);
|
954
|
-
#if defined(HAVE_RB_DEFINE_ALLOC_FUNC)
|
955
689
|
rb_define_alloc_func(Class_Draw, Draw_alloc);
|
956
|
-
#else
|
957
|
-
rb_define_singleton_method(Class_Draw, "new", Draw_new, 0);
|
958
|
-
#endif
|
959
690
|
|
960
691
|
DCL_ATTR_WRITER(Draw, affine)
|
961
692
|
DCL_ATTR_WRITER(Draw, align)
|
@@ -963,6 +694,7 @@ Init_RMagick(void)
|
|
963
694
|
DCL_ATTR_WRITER(Draw, density)
|
964
695
|
DCL_ATTR_WRITER(Draw, encoding)
|
965
696
|
DCL_ATTR_WRITER(Draw, fill)
|
697
|
+
DCL_ATTR_WRITER(Draw, fill_pattern)
|
966
698
|
DCL_ATTR_WRITER(Draw, font)
|
967
699
|
DCL_ATTR_WRITER(Draw, font_family)
|
968
700
|
DCL_ATTR_WRITER(Draw, font_stretch)
|
@@ -972,6 +704,7 @@ Init_RMagick(void)
|
|
972
704
|
DCL_ATTR_WRITER(Draw, pointsize)
|
973
705
|
DCL_ATTR_WRITER(Draw, rotation)
|
974
706
|
DCL_ATTR_WRITER(Draw, stroke)
|
707
|
+
DCL_ATTR_WRITER(Draw, stroke_pattern)
|
975
708
|
DCL_ATTR_WRITER(Draw, stroke_width)
|
976
709
|
DCL_ATTR_WRITER(Draw, text_antialias)
|
977
710
|
DCL_ATTR_WRITER(Draw, tile)
|
@@ -997,11 +730,7 @@ Init_RMagick(void)
|
|
997
730
|
|
998
731
|
Class_DrawOptions = rb_define_class_under(Class_Image, "DrawOptions", rb_cObject);
|
999
732
|
|
1000
|
-
#if defined(HAVE_RB_DEFINE_ALLOC_FUNC)
|
1001
733
|
rb_define_alloc_func(Class_DrawOptions, DrawOptions_alloc);
|
1002
|
-
#else
|
1003
|
-
rb_define_singleton_method(Class_DrawOptions, "new", DrawOptions_new, 0);
|
1004
|
-
#endif
|
1005
734
|
|
1006
735
|
rb_define_method(Class_DrawOptions, "initialize", DrawOptions_initialize, 0);
|
1007
736
|
|
@@ -1011,6 +740,7 @@ Init_RMagick(void)
|
|
1011
740
|
SHARE_ATTR_WRITER(DrawOptions, Draw, density)
|
1012
741
|
SHARE_ATTR_WRITER(DrawOptions, Draw, encoding)
|
1013
742
|
SHARE_ATTR_WRITER(DrawOptions, Draw, fill)
|
743
|
+
SHARE_ATTR_WRITER(DrawOptions, Draw, fill_pattern)
|
1014
744
|
SHARE_ATTR_WRITER(DrawOptions, Draw, font)
|
1015
745
|
SHARE_ATTR_WRITER(DrawOptions, Draw, font_family)
|
1016
746
|
SHARE_ATTR_WRITER(DrawOptions, Draw, font_stretch)
|
@@ -1020,6 +750,7 @@ Init_RMagick(void)
|
|
1020
750
|
SHARE_ATTR_WRITER(DrawOptions, Draw, pointsize)
|
1021
751
|
SHARE_ATTR_WRITER(DrawOptions, Draw, rotation)
|
1022
752
|
SHARE_ATTR_WRITER(DrawOptions, Draw, stroke)
|
753
|
+
SHARE_ATTR_WRITER(DrawOptions, Draw, stroke_pattern)
|
1023
754
|
SHARE_ATTR_WRITER(DrawOptions, Draw, stroke_width)
|
1024
755
|
SHARE_ATTR_WRITER(DrawOptions, Draw, text_antialias)
|
1025
756
|
SHARE_ATTR_WRITER(DrawOptions, Draw, tile)
|
@@ -1040,11 +771,7 @@ Init_RMagick(void)
|
|
1040
771
|
rb_include_module(Class_Pixel, rb_mComparable);
|
1041
772
|
|
1042
773
|
// Magick::Pixel has 3 constructors: "new" "from_color", and "from_HSL".
|
1043
|
-
#if defined(HAVE_RB_DEFINE_ALLOC_FUNC)
|
1044
774
|
rb_define_alloc_func(Class_Pixel, Pixel_alloc);
|
1045
|
-
#else
|
1046
|
-
rb_define_singleton_method(Class_Pixel, "new", Pixel_new, -1);
|
1047
|
-
#endif
|
1048
775
|
rb_define_singleton_method(Class_Pixel, "from_color", Pixel_from_color, 1);
|
1049
776
|
rb_define_singleton_method(Class_Pixel, "from_HSL", Pixel_from_HSL, 1);
|
1050
777
|
|
@@ -1082,11 +809,7 @@ Init_RMagick(void)
|
|
1082
809
|
|
1083
810
|
Class_Montage = rb_define_class_under(Class_ImageList, "Montage", rb_cObject);
|
1084
811
|
|
1085
|
-
#if defined(HAVE_RB_DEFINE_ALLOC_FUNC)
|
1086
812
|
rb_define_alloc_func(Class_Montage, Montage_alloc);
|
1087
|
-
#else
|
1088
|
-
rb_define_singleton_method(Class_Montage, "new", Montage_new, 0);
|
1089
|
-
#endif
|
1090
813
|
|
1091
814
|
rb_define_method(Class_Montage, "initialize", Montage_initialize, 0);
|
1092
815
|
rb_define_method(Class_Montage, "freeze", rm_no_freeze, 0);
|
@@ -1116,33 +839,30 @@ Init_RMagick(void)
|
|
1116
839
|
|
1117
840
|
Class_Info = rb_define_class_under(Class_Image, "Info", rb_cObject);
|
1118
841
|
|
1119
|
-
#if defined(HAVE_RB_DEFINE_ALLOC_FUNC)
|
1120
842
|
rb_define_alloc_func(Class_Info, Info_alloc);
|
1121
|
-
#else
|
1122
|
-
rb_define_singleton_method(Class_Info, "new", Info_new, 0);
|
1123
|
-
#endif
|
1124
843
|
|
1125
844
|
rb_define_method(Class_Info, "initialize", Info_initialize, 0);
|
1126
845
|
rb_define_method(Class_Info, "channel", Info_channel, -1);
|
1127
846
|
rb_define_method(Class_Info, "freeze", rm_no_freeze, 0);
|
1128
847
|
rb_define_method(Class_Info, "define", Info_define, -1);
|
1129
|
-
rb_define_method(Class_Info, "[]=", Info_aset,
|
1130
|
-
rb_define_method(Class_Info, "[]", Info_aref,
|
848
|
+
rb_define_method(Class_Info, "[]=", Info_aset, -1);
|
849
|
+
rb_define_method(Class_Info, "[]", Info_aref, -1);
|
1131
850
|
rb_define_method(Class_Info, "undefine", Info_undefine, 2);
|
1132
851
|
|
1133
852
|
DCL_ATTR_ACCESSOR(Info, antialias)
|
853
|
+
DCL_ATTR_ACCESSOR(Info, attenuate)
|
1134
854
|
DCL_ATTR_ACCESSOR(Info, authenticate)
|
1135
855
|
DCL_ATTR_ACCESSOR(Info, background_color)
|
1136
856
|
DCL_ATTR_ACCESSOR(Info, border_color)
|
1137
857
|
DCL_ATTR_ACCESSOR(Info, colorspace)
|
1138
|
-
DCL_ATTR_ACCESSOR(Info, comment)
|
858
|
+
DCL_ATTR_ACCESSOR(Info, comment)
|
1139
859
|
DCL_ATTR_ACCESSOR(Info, compression)
|
1140
|
-
DCL_ATTR_ACCESSOR(Info, delay)
|
860
|
+
DCL_ATTR_ACCESSOR(Info, delay)
|
1141
861
|
DCL_ATTR_ACCESSOR(Info, density)
|
1142
862
|
DCL_ATTR_ACCESSOR(Info, depth)
|
1143
|
-
DCL_ATTR_ACCESSOR(Info, dispose)
|
863
|
+
DCL_ATTR_ACCESSOR(Info, dispose)
|
1144
864
|
DCL_ATTR_ACCESSOR(Info, dither)
|
1145
|
-
DCL_ATTR_ACCESSOR(Info, extract)
|
865
|
+
DCL_ATTR_ACCESSOR(Info, extract)
|
1146
866
|
DCL_ATTR_ACCESSOR(Info, filename)
|
1147
867
|
DCL_ATTR_ACCESSOR(Info, fill)
|
1148
868
|
DCL_ATTR_ACCESSOR(Info, font)
|
@@ -1150,26 +870,27 @@ Init_RMagick(void)
|
|
1150
870
|
DCL_ATTR_ACCESSOR(Info, fuzz)
|
1151
871
|
DCL_ATTR_ACCESSOR(Info, gravity)
|
1152
872
|
DCL_ATTR_ACCESSOR(Info, group)
|
873
|
+
DCL_ATTR_ACCESSOR(Info, image_type)
|
1153
874
|
DCL_ATTR_ACCESSOR(Info, interlace)
|
1154
|
-
DCL_ATTR_ACCESSOR(Info, label)
|
875
|
+
DCL_ATTR_ACCESSOR(Info, label)
|
1155
876
|
DCL_ATTR_ACCESSOR(Info, matte_color)
|
1156
877
|
DCL_ATTR_WRITER(Info, monitor)
|
1157
878
|
DCL_ATTR_ACCESSOR(Info, monochrome)
|
1158
|
-
DCL_ATTR_ACCESSOR(Info, number_scenes)
|
1159
|
-
DCL_ATTR_ACCESSOR(Info, orientation)
|
879
|
+
DCL_ATTR_ACCESSOR(Info, number_scenes)
|
880
|
+
DCL_ATTR_ACCESSOR(Info, orientation)
|
1160
881
|
DCL_ATTR_ACCESSOR(Info, origin) // new in 6.3.1
|
1161
882
|
DCL_ATTR_ACCESSOR(Info, page)
|
1162
883
|
DCL_ATTR_ACCESSOR(Info, pointsize)
|
1163
884
|
DCL_ATTR_ACCESSOR(Info, quality)
|
1164
885
|
DCL_ATTR_ACCESSOR(Info, sampling_factor)
|
1165
|
-
DCL_ATTR_ACCESSOR(Info, scene)
|
886
|
+
DCL_ATTR_ACCESSOR(Info, scene)
|
1166
887
|
DCL_ATTR_ACCESSOR(Info, server_name)
|
1167
888
|
DCL_ATTR_ACCESSOR(Info, size)
|
1168
|
-
DCL_ATTR_ACCESSOR(Info,
|
1169
|
-
DCL_ATTR_ACCESSOR(Info,
|
889
|
+
DCL_ATTR_ACCESSOR(Info, stroke)
|
890
|
+
DCL_ATTR_ACCESSOR(Info, stroke_width)
|
1170
891
|
DCL_ATTR_WRITER(Info, texture)
|
1171
|
-
DCL_ATTR_ACCESSOR(Info,
|
1172
|
-
DCL_ATTR_ACCESSOR(Info,
|
892
|
+
DCL_ATTR_ACCESSOR(Info, tile_offset)
|
893
|
+
DCL_ATTR_ACCESSOR(Info, undercolor)
|
1173
894
|
DCL_ATTR_ACCESSOR(Info, units)
|
1174
895
|
DCL_ATTR_ACCESSOR(Info, view)
|
1175
896
|
|
@@ -1180,21 +901,19 @@ Init_RMagick(void)
|
|
1180
901
|
|
1181
902
|
Class_PolaroidOptions = rb_define_class_under(Class_Image, "PolaroidOptions", rb_cObject);
|
1182
903
|
|
1183
|
-
#if defined(HAVE_RB_DEFINE_ALLOC_FUNC)
|
1184
904
|
rb_define_alloc_func(Class_PolaroidOptions, PolaroidOptions_alloc);
|
1185
|
-
#else
|
1186
|
-
rb_define_singleton_method(Class_PolaroidOptions, "new", PolaroidOptions_new, 0);
|
1187
|
-
#endif
|
1188
905
|
|
1189
906
|
rb_define_method(Class_PolaroidOptions, "initialize", PolaroidOptions_initialize, 0);
|
1190
907
|
|
1191
908
|
DCL_ATTR_WRITER(PolaroidOptions, shadow_color)
|
909
|
+
DCL_ATTR_WRITER(PolaroidOptions, border_color)
|
1192
910
|
// The other attribute writer methods are implemented by Draw's functions
|
1193
911
|
SHARE_ATTR_WRITER(PolaroidOptions, Draw, align)
|
1194
912
|
SHARE_ATTR_WRITER(PolaroidOptions, Draw, decorate)
|
1195
913
|
SHARE_ATTR_WRITER(PolaroidOptions, Draw, density)
|
1196
914
|
SHARE_ATTR_WRITER(PolaroidOptions, Draw, encoding)
|
1197
915
|
SHARE_ATTR_WRITER(PolaroidOptions, Draw, fill)
|
916
|
+
SHARE_ATTR_WRITER(PolaroidOptions, Draw, fill_pattern)
|
1198
917
|
SHARE_ATTR_WRITER(PolaroidOptions, Draw, font)
|
1199
918
|
SHARE_ATTR_WRITER(PolaroidOptions, Draw, font_family)
|
1200
919
|
SHARE_ATTR_WRITER(PolaroidOptions, Draw, font_stretch)
|
@@ -1203,6 +922,7 @@ Init_RMagick(void)
|
|
1203
922
|
SHARE_ATTR_WRITER(PolaroidOptions, Draw, gravity)
|
1204
923
|
SHARE_ATTR_WRITER(PolaroidOptions, Draw, pointsize)
|
1205
924
|
SHARE_ATTR_WRITER(PolaroidOptions, Draw, stroke)
|
925
|
+
SHARE_ATTR_WRITER(PolaroidOptions, Draw, stroke_pattern)
|
1206
926
|
SHARE_ATTR_WRITER(PolaroidOptions, Draw, stroke_width)
|
1207
927
|
SHARE_ATTR_WRITER(PolaroidOptions, Draw, text_antialias)
|
1208
928
|
SHARE_ATTR_WRITER(PolaroidOptions, Draw, undercolor)
|
@@ -1215,11 +935,7 @@ Init_RMagick(void)
|
|
1215
935
|
// class Magick::GradientFill
|
1216
936
|
Class_GradientFill = rb_define_class_under(Module_Magick, "GradientFill", rb_cObject);
|
1217
937
|
|
1218
|
-
#if defined(HAVE_RB_DEFINE_ALLOC_FUNC)
|
1219
938
|
rb_define_alloc_func(Class_GradientFill, GradientFill_alloc);
|
1220
|
-
#else
|
1221
|
-
rb_define_singleton_method(Class_GradientFill, "new", GradientFill_new, 6);
|
1222
|
-
#endif
|
1223
939
|
|
1224
940
|
rb_define_method(Class_GradientFill, "initialize", GradientFill_initialize, 6);
|
1225
941
|
rb_define_method(Class_GradientFill, "fill", GradientFill_fill, 1);
|
@@ -1227,11 +943,7 @@ Init_RMagick(void)
|
|
1227
943
|
// class Magick::TextureFill
|
1228
944
|
Class_TextureFill = rb_define_class_under(Module_Magick, "TextureFill", rb_cObject);
|
1229
945
|
|
1230
|
-
#if defined(HAVE_RB_DEFINE_ALLOC_FUNC)
|
1231
946
|
rb_define_alloc_func(Class_TextureFill, TextureFill_alloc);
|
1232
|
-
#else
|
1233
|
-
rb_define_singleton_method(Class_TextureFill, "new", TextureFill_new, 1);
|
1234
|
-
#endif
|
1235
947
|
|
1236
948
|
rb_define_method(Class_TextureFill, "initialize", TextureFill_initialize, 1);
|
1237
949
|
rb_define_method(Class_TextureFill, "fill", TextureFill_fill, 1);
|
@@ -1242,20 +954,24 @@ Init_RMagick(void)
|
|
1242
954
|
|
1243
955
|
Class_ImageMagickError = rb_define_class_under(Module_Magick, "ImageMagickError", rb_eStandardError);
|
1244
956
|
rb_define_method(Class_ImageMagickError, "initialize", ImageMagickError_initialize, -1);
|
1245
|
-
RUBY16(rb_enable_super(Class_ImageMagickError, "initialize");)
|
1246
957
|
rb_define_attr(Class_ImageMagickError, MAGICK_LOC, True, False);
|
1247
958
|
|
1248
959
|
|
1249
|
-
|
1250
|
-
|
1251
|
-
|
960
|
+
/*-----------------------------------------------------------------------*/
|
961
|
+
/* Class Magick::DestroyedImageError < StandardError */
|
962
|
+
/*-----------------------------------------------------------------------*/
|
963
|
+
Class_DestroyedImageError = rb_define_class_under(Module_Magick, "DestroyedImageError", rb_eStandardError);
|
1252
964
|
|
1253
|
-
version_constants();
|
1254
965
|
|
1255
|
-
//
|
966
|
+
// Miscellaneous fixed-point constants
|
967
|
+
DEF_CONST(MaxRGB);
|
968
|
+
DEF_CONST(QuantumRange);
|
969
|
+
DEF_CONST(QuantumDepth);
|
1256
970
|
DEF_CONST(OpaqueOpacity);
|
1257
971
|
DEF_CONST(TransparentOpacity);
|
1258
972
|
|
973
|
+
version_constants();
|
974
|
+
|
1259
975
|
/*-----------------------------------------------------------------------*/
|
1260
976
|
/* Class Magick::Enum */
|
1261
977
|
/*-----------------------------------------------------------------------*/
|
@@ -1264,11 +980,7 @@ Init_RMagick(void)
|
|
1264
980
|
Class_Enum = rb_define_class_under(Module_Magick, "Enum", rb_cObject);
|
1265
981
|
rb_include_module(Class_Enum, rb_mComparable);
|
1266
982
|
|
1267
|
-
#if defined(HAVE_RB_DEFINE_ALLOC_FUNC)
|
1268
983
|
rb_define_alloc_func(Class_Enum, Enum_alloc);
|
1269
|
-
#else
|
1270
|
-
rb_define_singleton_method(Class_Enum, "new", Enum_new, 2);
|
1271
|
-
#endif
|
1272
984
|
|
1273
985
|
rb_define_method(Class_Enum, "initialize", Enum_initialize, 2);
|
1274
986
|
rb_define_method(Class_Enum, "to_s", Enum_to_s, 0);
|
@@ -1284,6 +996,17 @@ Init_RMagick(void)
|
|
1284
996
|
ENUMERATOR(RightAlign)
|
1285
997
|
END_ENUM
|
1286
998
|
|
999
|
+
// AlphaChannelType constants
|
1000
|
+
#if defined(HAVE_TYPE_ALPHACHANNELTYPE)
|
1001
|
+
DEF_ENUM(AlphaChannelType)
|
1002
|
+
ENUMERATOR(UndefinedAlphaChannel)
|
1003
|
+
ENUMERATOR(ActivateAlphaChannel)
|
1004
|
+
ENUMERATOR(DeactivateAlphaChannel)
|
1005
|
+
ENUMERATOR(ResetAlphaChannel)
|
1006
|
+
ENUMERATOR(SetAlphaChannel)
|
1007
|
+
END_ENUM
|
1008
|
+
#endif
|
1009
|
+
|
1287
1010
|
// AnchorType constants (for Draw#text_anchor - these are not defined by ImageMagick)
|
1288
1011
|
DEF_ENUM(AnchorType)
|
1289
1012
|
ENUMERATOR(StartAnchor)
|
@@ -1305,15 +1028,9 @@ Init_RMagick(void)
|
|
1305
1028
|
|
1306
1029
|
ENUMERATOR(BlackChannel)
|
1307
1030
|
ENUMERATOR(MatteChannel)
|
1308
|
-
|
1309
|
-
ENUMERATOR(IndexChannel) // 5.5.8
|
1310
|
-
#endif
|
1311
|
-
#if defined(HAVE_GRAYCHANNEL)
|
1031
|
+
ENUMERATOR(IndexChannel)
|
1312
1032
|
ENUMERATOR(GrayChannel)
|
1313
|
-
#endif
|
1314
|
-
#if defined(HAVE_ALLCHANNELS)
|
1315
1033
|
ENUMERATOR(AllChannels)
|
1316
|
-
#endif
|
1317
1034
|
|
1318
1035
|
// Define alternate names for ChannelType enums for Image::Info#channel=
|
1319
1036
|
// AlphaChannel == OpacityChannel
|
@@ -1366,30 +1083,13 @@ Init_RMagick(void)
|
|
1366
1083
|
, INT2FIX(sRGBColorspace)));
|
1367
1084
|
ENUMERATOR(HSLColorspace)
|
1368
1085
|
ENUMERATOR(HWBColorspace)
|
1369
|
-
|
1370
|
-
ENUMERATOR(
|
1371
|
-
|
1372
|
-
|
1373
|
-
ENUMERATOR(
|
1374
|
-
|
1375
|
-
|
1376
|
-
ENUMERATOR(LABColorspace) // GM 1.2
|
1377
|
-
#endif
|
1378
|
-
#if defined(HAVE_REC601LUMACOLORSPACE)
|
1379
|
-
ENUMERATOR(Rec601LumaColorspace) // GM 1.2 && IM 6.2.2
|
1380
|
-
#endif
|
1381
|
-
#if defined(HAVE_REC601YCBCRCOLORSPACE)
|
1382
|
-
ENUMERATOR(Rec601YCbCrColorspace) // GM 1.2 && IM 6.2.2
|
1383
|
-
#endif
|
1384
|
-
#if defined(HAVE_REC709LUMACOLORSPACE)
|
1385
|
-
ENUMERATOR(Rec709LumaColorspace) // GM 1.2 && IM 6.2.2
|
1386
|
-
#endif
|
1387
|
-
#if defined(HAVE_REC709YCBCRCOLORSPACE)
|
1388
|
-
ENUMERATOR(Rec709YCbCrColorspace) // GM 1.2 && IM 6.2.2
|
1389
|
-
#endif
|
1390
|
-
#if defined(HAVE_LOGCOLORSPACE)
|
1391
|
-
ENUMERATOR(LogColorspace) // IM 6.2.3
|
1392
|
-
#endif
|
1086
|
+
ENUMERATOR(HSBColorspace)
|
1087
|
+
ENUMERATOR(LABColorspace)
|
1088
|
+
ENUMERATOR(Rec601LumaColorspace)
|
1089
|
+
ENUMERATOR(Rec601YCbCrColorspace)
|
1090
|
+
ENUMERATOR(Rec709LumaColorspace)
|
1091
|
+
ENUMERATOR(Rec709YCbCrColorspace)
|
1092
|
+
ENUMERATOR(LogColorspace)
|
1393
1093
|
END_ENUM
|
1394
1094
|
|
1395
1095
|
// ComplianceType constants are defined as enums but used as bit flags
|
@@ -1414,32 +1114,44 @@ Init_RMagick(void)
|
|
1414
1114
|
ENUMERATOR(NoCompositeOp)
|
1415
1115
|
ENUMERATOR(AddCompositeOp)
|
1416
1116
|
ENUMERATOR(AtopCompositeOp)
|
1117
|
+
ENUMERATOR(BlendCompositeOp)
|
1417
1118
|
ENUMERATOR(BumpmapCompositeOp)
|
1119
|
+
#if defined(HAVE_ENUM_CHANGEMASKCOMPOSITEOP)
|
1120
|
+
ENUMERATOR(ChangeMaskCompositeOp)
|
1121
|
+
#endif
|
1418
1122
|
ENUMERATOR(ClearCompositeOp)
|
1123
|
+
ENUMERATOR(ColorBurnCompositeOp)
|
1124
|
+
ENUMERATOR(ColorDodgeCompositeOp)
|
1419
1125
|
ENUMERATOR(ColorizeCompositeOp)
|
1126
|
+
ENUMERATOR(CopyBlackCompositeOp)
|
1420
1127
|
ENUMERATOR(CopyBlueCompositeOp)
|
1421
1128
|
ENUMERATOR(CopyCompositeOp)
|
1129
|
+
ENUMERATOR(CopyCyanCompositeOp)
|
1422
1130
|
ENUMERATOR(CopyGreenCompositeOp)
|
1131
|
+
ENUMERATOR(CopyMagentaCompositeOp)
|
1423
1132
|
ENUMERATOR(CopyOpacityCompositeOp)
|
1424
1133
|
ENUMERATOR(CopyRedCompositeOp)
|
1425
|
-
ENUMERATOR(CopyCyanCompositeOp)
|
1426
|
-
ENUMERATOR(CopyMagentaCompositeOp)
|
1427
1134
|
ENUMERATOR(CopyYellowCompositeOp)
|
1428
|
-
ENUMERATOR(CopyBlackCompositeOp)
|
1429
1135
|
ENUMERATOR(DarkenCompositeOp)
|
1430
|
-
|
1431
|
-
ENUMERATOR(
|
1432
|
-
|
1433
|
-
|
1434
|
-
ENUMERATOR(DstAtopCompositeOp) // Added 6.0.2?
|
1136
|
+
#if defined(HAVE_ENUM_DIVIDECOMPOSITEOP)
|
1137
|
+
ENUMERATOR(DivideCompositeOp)
|
1138
|
+
#endif
|
1139
|
+
ENUMERATOR(DstAtopCompositeOp)
|
1435
1140
|
ENUMERATOR(DstCompositeOp)
|
1436
1141
|
ENUMERATOR(DstInCompositeOp)
|
1437
1142
|
ENUMERATOR(DstOutCompositeOp)
|
1438
1143
|
ENUMERATOR(DstOverCompositeOp)
|
1439
|
-
|
1144
|
+
ENUMERATOR(DifferenceCompositeOp)
|
1145
|
+
ENUMERATOR(DisplaceCompositeOp)
|
1146
|
+
ENUMERATOR(DissolveCompositeOp)
|
1147
|
+
ENUMERATOR(ExclusionCompositeOp)
|
1148
|
+
ENUMERATOR(HardLightCompositeOp)
|
1440
1149
|
ENUMERATOR(HueCompositeOp)
|
1441
1150
|
ENUMERATOR(InCompositeOp)
|
1442
1151
|
ENUMERATOR(LightenCompositeOp)
|
1152
|
+
#if defined(HAVE_ENUM_LINEARLIGHTCOMPOSITEOP)
|
1153
|
+
ENUMERATOR(LinearLightCompositeOp)
|
1154
|
+
#endif
|
1443
1155
|
ENUMERATOR(LuminizeCompositeOp)
|
1444
1156
|
ENUMERATOR(MinusCompositeOp)
|
1445
1157
|
ENUMERATOR(ModulateCompositeOp)
|
@@ -1448,30 +1160,18 @@ Init_RMagick(void)
|
|
1448
1160
|
ENUMERATOR(OverCompositeOp)
|
1449
1161
|
ENUMERATOR(OverlayCompositeOp)
|
1450
1162
|
ENUMERATOR(PlusCompositeOp)
|
1451
|
-
#if defined(HAVE_REPLACECOMPOSITEOP) // Added 5.5.8
|
1452
1163
|
ENUMERATOR(ReplaceCompositeOp) // synonym for CopyCompositeOp
|
1453
|
-
#endif
|
1454
1164
|
ENUMERATOR(SaturateCompositeOp)
|
1455
1165
|
ENUMERATOR(ScreenCompositeOp)
|
1456
|
-
|
1166
|
+
ENUMERATOR(SoftLightCompositeOp)
|
1457
1167
|
ENUMERATOR(SrcAtopCompositeOp)
|
1458
1168
|
ENUMERATOR(SrcCompositeOp)
|
1459
1169
|
ENUMERATOR(SrcInCompositeOp)
|
1460
1170
|
ENUMERATOR(SrcOutCompositeOp)
|
1461
1171
|
ENUMERATOR(SrcOverCompositeOp)
|
1462
|
-
#endif
|
1463
1172
|
ENUMERATOR(SubtractCompositeOp)
|
1464
1173
|
ENUMERATOR(ThresholdCompositeOp)
|
1465
1174
|
ENUMERATOR(XorCompositeOp)
|
1466
|
-
|
1467
|
-
#if defined(HAVE_COLORDODGECOMPOSITEOP)
|
1468
|
-
ENUMERATOR(BlendCompositeOp)
|
1469
|
-
ENUMERATOR(ColorBurnCompositeOp)
|
1470
|
-
ENUMERATOR(ColorDodgeCompositeOp)
|
1471
|
-
ENUMERATOR(ExclusionCompositeOp)
|
1472
|
-
ENUMERATOR(HardLightCompositeOp)
|
1473
|
-
ENUMERATOR(SoftLightCompositeOp)
|
1474
|
-
#endif
|
1475
1175
|
END_ENUM
|
1476
1176
|
|
1477
1177
|
// CompressionType constants
|
@@ -1482,13 +1182,10 @@ Init_RMagick(void)
|
|
1482
1182
|
ENUMERATOR(FaxCompression)
|
1483
1183
|
ENUMERATOR(Group4Compression)
|
1484
1184
|
ENUMERATOR(JPEGCompression)
|
1485
|
-
#if defined(HAVE_JPEG2000COMPRESSION)
|
1486
1185
|
ENUMERATOR(JPEG2000Compression)
|
1487
|
-
#endif
|
1488
1186
|
ENUMERATOR(LosslessJPEGCompression)
|
1489
1187
|
ENUMERATOR(LZWCompression)
|
1490
|
-
ENUMERATOR(RLECompression)
|
1491
|
-
ENUMERATOR(RunlengthEncodedCompression) // deprecated
|
1188
|
+
ENUMERATOR(RLECompression)
|
1492
1189
|
ENUMERATOR(ZipCompression)
|
1493
1190
|
END_ENUM
|
1494
1191
|
|
@@ -1508,6 +1205,24 @@ Init_RMagick(void)
|
|
1508
1205
|
ENUMERATOR(PreviousDispose)
|
1509
1206
|
END_ENUM
|
1510
1207
|
|
1208
|
+
#if defined(HAVE_DISTORTIMAGE)
|
1209
|
+
// DistortImage "method" argument values
|
1210
|
+
DEF_ENUM(DistortImageMethod)
|
1211
|
+
ENUMERATOR(UndefinedDistortion)
|
1212
|
+
ENUMERATOR(AffineDistortion)
|
1213
|
+
ENUMERATOR(AffineProjectionDistortion)
|
1214
|
+
#if defined(HAVE_ENUM_ARCDISTORTION)
|
1215
|
+
ENUMERATOR(ArcDistortion)
|
1216
|
+
#endif
|
1217
|
+
ENUMERATOR(BilinearDistortion)
|
1218
|
+
ENUMERATOR(PerspectiveDistortion)
|
1219
|
+
#if defined(HAVE_PERSPECTIVEPROJECTIONDISTORTION)
|
1220
|
+
ENUMERATOR(PerspectiveProjectionDistortion)
|
1221
|
+
#endif
|
1222
|
+
ENUMERATOR(ScaleRotateTranslateDistortion)
|
1223
|
+
END_ENUM
|
1224
|
+
#endif
|
1225
|
+
|
1511
1226
|
DEF_ENUM(EndianType)
|
1512
1227
|
ENUMERATOR(UndefinedEndian)
|
1513
1228
|
ENUMERATOR(LSBEndian)
|
@@ -1532,17 +1247,32 @@ Init_RMagick(void)
|
|
1532
1247
|
ENUMERATOR(LanczosFilter)
|
1533
1248
|
ENUMERATOR(BesselFilter)
|
1534
1249
|
ENUMERATOR(SincFilter)
|
1250
|
+
#if defined(HAVE_ENUM_KAISERFILTER)
|
1251
|
+
ENUMERATOR(KaiserFilter)
|
1252
|
+
#endif
|
1253
|
+
#if defined(HAVE_ENUM_WELSHFILTER)
|
1254
|
+
ENUMERATOR(WelshFilter)
|
1255
|
+
#endif
|
1256
|
+
#if defined(HAVE_ENUM_PARZENFILTER)
|
1257
|
+
ENUMERATOR(ParzenFilter)
|
1258
|
+
#endif
|
1259
|
+
#if defined(HAVE_ENUM_LAGRANGEFILTER)
|
1260
|
+
ENUMERATOR(LagrangeFilter)
|
1261
|
+
#endif
|
1262
|
+
#if defined(HAVE_ENUM_BOHMANFILTER)
|
1263
|
+
ENUMERATOR(BohmanFilter)
|
1264
|
+
#endif
|
1265
|
+
#if defined(HAVE_ENUM_BARTLETTFILTER)
|
1266
|
+
ENUMERATOR(BartlettFilter)
|
1267
|
+
#endif
|
1268
|
+
#if defined(HAVE_ENUM_SENTINELFILTER)
|
1269
|
+
ENUMERATOR(SentinelFilter)
|
1270
|
+
#endif
|
1535
1271
|
END_ENUM
|
1536
1272
|
|
1537
1273
|
// GravityType constants
|
1538
1274
|
DEF_ENUM(GravityType)
|
1539
|
-
#if defined(HAVE_UNDEFINEDGRAVITY)
|
1540
1275
|
ENUMERATOR(UndefinedGravity)
|
1541
|
-
#else
|
1542
|
-
// Provide this enumerator in older (pre 6.0.0) versions of ImageMagick
|
1543
|
-
_enum = rm_enum_new(_cls, ID2SYM(rb_intern("UndefinedGravity")), INT2FIX(0));\
|
1544
|
-
rb_define_const(Module_Magick, "UndefinedGravity", _enum);
|
1545
|
-
#endif
|
1546
1276
|
ENUMERATOR(ForgetGravity)
|
1547
1277
|
ENUMERATOR(NorthWestGravity)
|
1548
1278
|
ENUMERATOR(NorthGravity)
|
@@ -1569,9 +1299,7 @@ Init_RMagick(void)
|
|
1569
1299
|
ENUMERATOR(ColorSeparationType)
|
1570
1300
|
ENUMERATOR(ColorSeparationMatteType)
|
1571
1301
|
ENUMERATOR(OptimizeType)
|
1572
|
-
#if defined(HAVE_PALETTEBILEVELMATTETYPE)
|
1573
1302
|
ENUMERATOR(PaletteBilevelMatteType)
|
1574
|
-
#endif
|
1575
1303
|
END_ENUM
|
1576
1304
|
|
1577
1305
|
// InterlaceType constants
|
@@ -1581,9 +1309,17 @@ Init_RMagick(void)
|
|
1581
1309
|
ENUMERATOR(LineInterlace)
|
1582
1310
|
ENUMERATOR(PlaneInterlace)
|
1583
1311
|
ENUMERATOR(PartitionInterlace)
|
1312
|
+
#if defined(HAVE_ENUM_GIFINTERLACE)
|
1313
|
+
ENUMERATOR(GIFInterlace)
|
1314
|
+
#endif
|
1315
|
+
#if defined(HAVE_ENUM_JPEGINTERLACE)
|
1316
|
+
ENUMERATOR(JPEGInterlace)
|
1317
|
+
#endif
|
1318
|
+
#if defined(HAVE_ENUM_PNGINTERLACE)
|
1319
|
+
ENUMERATOR(PNGInterlace)
|
1320
|
+
#endif
|
1584
1321
|
END_ENUM
|
1585
1322
|
|
1586
|
-
#if defined(HAVE_INTERPOLATEPIXELCOLOR)
|
1587
1323
|
DEF_ENUM(InterpolatePixelMethod)
|
1588
1324
|
ENUMERATOR(UndefinedInterpolatePixel)
|
1589
1325
|
ENUMERATOR(AverageInterpolatePixel)
|
@@ -1593,35 +1329,62 @@ Init_RMagick(void)
|
|
1593
1329
|
ENUMERATOR(IntegerInterpolatePixel)
|
1594
1330
|
ENUMERATOR(MeshInterpolatePixel)
|
1595
1331
|
ENUMERATOR(NearestNeighborInterpolatePixel)
|
1596
|
-
|
1332
|
+
#if defined(HAVE_SPLINEINTERPOLATEPIXEL)
|
1333
|
+
ENUMERATOR(SplineInterpolatePixel)
|
1597
1334
|
#endif
|
1335
|
+
END_ENUM
|
1598
1336
|
|
1599
|
-
#if defined(
|
1337
|
+
#if defined(HAVE_TYPE_IMAGELAYERMETHOD)
|
1338
|
+
DEF_ENUM(ImageLayerMethod)
|
1339
|
+
#else
|
1600
1340
|
DEF_ENUM(MagickLayerMethod)
|
1341
|
+
#endif
|
1601
1342
|
ENUMERATOR(UndefinedLayer)
|
1602
1343
|
ENUMERATOR(CompareAnyLayer)
|
1603
1344
|
ENUMERATOR(CompareClearLayer)
|
1604
1345
|
ENUMERATOR(CompareOverlayLayer)
|
1605
1346
|
ENUMERATOR(OptimizeLayer)
|
1606
1347
|
ENUMERATOR(OptimizePlusLayer)
|
1607
|
-
#if defined(HAVE_COALESCELAYER)
|
1608
|
-
// Introduced in IM 6.2.7-0
|
1609
1348
|
ENUMERATOR(CoalesceLayer)
|
1610
1349
|
ENUMERATOR(DisposeLayer)
|
1350
|
+
#if defined(HAVE_ENUM_OPTIMIZETRANSLAYER)
|
1351
|
+
ENUMERATOR(OptimizeTransLayer)
|
1611
1352
|
#endif
|
1612
|
-
|
1353
|
+
#if defined(HAVE_ENUM_OPTIMIZEIMAGELAYER)
|
1354
|
+
ENUMERATOR(OptimizeImageLayer)
|
1355
|
+
#endif
|
1356
|
+
#if defined(HAVE_ENUM_REMOVEDUPSLAYER)
|
1357
|
+
ENUMERATOR(RemoveDupsLayer)
|
1613
1358
|
#endif
|
1359
|
+
#if defined(HAVE_ENUM_REMOVEZEROLAYER)
|
1360
|
+
ENUMERATOR(RemoveZeroLayer)
|
1361
|
+
#endif
|
1362
|
+
#if defined(HAVE_ENUM_COMPOSITELAYER)
|
1363
|
+
ENUMERATOR(CompositeLayer)
|
1364
|
+
#endif
|
1365
|
+
#if defined(HAVE_ENUM_MERGELAYER)
|
1366
|
+
ENUMERATOR(MergeLayer)
|
1367
|
+
#endif
|
1368
|
+
#if defined(HAVE_ENUM_MOSAICLAYER)
|
1369
|
+
ENUMERATOR(MosaicLayer)
|
1370
|
+
#endif
|
1371
|
+
#if defined(HAVE_ENUM_FLATTENLAYER)
|
1372
|
+
ENUMERATOR(FlattenLayer)
|
1373
|
+
#endif
|
1374
|
+
END_ENUM
|
1614
1375
|
|
1615
|
-
#if defined(HAVE_COMPAREIMAGECHANNELS)
|
1616
1376
|
DEF_ENUM(MetricType)
|
1617
1377
|
ENUMERATOR(UndefinedMetric)
|
1378
|
+
ENUMERATOR(AbsoluteErrorMetric)
|
1618
1379
|
ENUMERATOR(MeanAbsoluteErrorMetric)
|
1380
|
+
#if defined(HAVE_ENUM_MEANERRORPERPIXELMETRIC)
|
1381
|
+
ENUMERATOR(MeanErrorPerPixelMetric)
|
1382
|
+
#endif
|
1619
1383
|
ENUMERATOR(MeanSquaredErrorMetric)
|
1620
1384
|
ENUMERATOR(PeakAbsoluteErrorMetric)
|
1621
1385
|
ENUMERATOR(PeakSignalToNoiseRatioMetric)
|
1622
1386
|
ENUMERATOR(RootMeanSquaredErrorMetric)
|
1623
1387
|
END_ENUM
|
1624
|
-
#endif
|
1625
1388
|
|
1626
1389
|
// NoiseType constants
|
1627
1390
|
DEF_ENUM(NoiseType)
|
@@ -1631,9 +1394,11 @@ Init_RMagick(void)
|
|
1631
1394
|
ENUMERATOR(ImpulseNoise)
|
1632
1395
|
ENUMERATOR(LaplacianNoise)
|
1633
1396
|
ENUMERATOR(PoissonNoise)
|
1397
|
+
#if defined(HAVE_ENUM_RANDOMNOISE)
|
1398
|
+
ENUMERATOR(RandomNoise)
|
1399
|
+
#endif
|
1634
1400
|
END_ENUM
|
1635
1401
|
|
1636
|
-
#if defined(HAVE_IMAGE_ORIENTATION)
|
1637
1402
|
// Orientation constants
|
1638
1403
|
DEF_ENUM(OrientationType)
|
1639
1404
|
ENUMERATOR(UndefinedOrientation)
|
@@ -1646,7 +1411,6 @@ Init_RMagick(void)
|
|
1646
1411
|
ENUMERATOR(RightBottomOrientation)
|
1647
1412
|
ENUMERATOR(LeftBottomOrientation)
|
1648
1413
|
END_ENUM
|
1649
|
-
#endif
|
1650
1414
|
|
1651
1415
|
// Paint method constants
|
1652
1416
|
DEF_ENUM(PaintMethod)
|
@@ -1691,24 +1455,20 @@ Init_RMagick(void)
|
|
1691
1455
|
ENUMERATOR(JPEGPreview)
|
1692
1456
|
END_ENUM
|
1693
1457
|
|
1694
|
-
#if defined(HAVE_QUANTUMOPERATORREGIONIMAGE) || defined(HAVE_EVALUATEIMAGECHANNEL)
|
1695
1458
|
DEF_ENUM(QuantumExpressionOperator)
|
1696
1459
|
ENUMERATOR(UndefinedQuantumOperator)
|
1697
1460
|
ENUMERATOR(AddQuantumOperator)
|
1698
1461
|
ENUMERATOR(AndQuantumOperator)
|
1699
1462
|
ENUMERATOR(DivideQuantumOperator)
|
1700
1463
|
ENUMERATOR(LShiftQuantumOperator)
|
1701
|
-
#if defined(HAVE_MAXEVALUATEOPERATOR)
|
1702
1464
|
ENUMERATOR(MaxQuantumOperator)
|
1703
1465
|
ENUMERATOR(MinQuantumOperator)
|
1704
|
-
#endif
|
1705
1466
|
ENUMERATOR(MultiplyQuantumOperator)
|
1706
1467
|
ENUMERATOR(OrQuantumOperator)
|
1707
1468
|
ENUMERATOR(RShiftQuantumOperator)
|
1708
1469
|
ENUMERATOR(SubtractQuantumOperator)
|
1709
1470
|
ENUMERATOR(XorQuantumOperator)
|
1710
1471
|
END_ENUM
|
1711
|
-
#endif
|
1712
1472
|
|
1713
1473
|
// RenderingIntent
|
1714
1474
|
DEF_ENUM(RenderingIntent)
|
@@ -1728,17 +1488,13 @@ Init_RMagick(void)
|
|
1728
1488
|
|
1729
1489
|
// StorageType
|
1730
1490
|
DEF_ENUM(StorageType)
|
1731
|
-
#if defined(HAVE_UNDEFINEDGRAVITY) // UndefinedGravity & UndefinedPixel were both introduced in IM 6.0.0
|
1732
1491
|
ENUMERATOR(UndefinedPixel)
|
1733
|
-
#endif
|
1734
1492
|
ENUMERATOR(CharPixel)
|
1735
1493
|
ENUMERATOR(DoublePixel)
|
1736
1494
|
ENUMERATOR(FloatPixel)
|
1737
1495
|
ENUMERATOR(IntegerPixel)
|
1738
1496
|
ENUMERATOR(LongPixel)
|
1739
|
-
#if defined(HAVE_QUANTUMPIXEL)
|
1740
1497
|
ENUMERATOR(QuantumPixel)
|
1741
|
-
#endif
|
1742
1498
|
ENUMERATOR(ShortPixel)
|
1743
1499
|
END_ENUM
|
1744
1500
|
|
@@ -1770,9 +1526,22 @@ Init_RMagick(void)
|
|
1770
1526
|
ENUMERATOR(EdgeVirtualPixelMethod)
|
1771
1527
|
ENUMERATOR(MirrorVirtualPixelMethod)
|
1772
1528
|
ENUMERATOR(TileVirtualPixelMethod)
|
1773
|
-
#if defined(HAVE_TRANSPARENTVIRTUALPIXELMETHOD)
|
1774
|
-
ENUMERATOR(BackgroundVirtualPixelMethod)
|
1775
1529
|
ENUMERATOR(TransparentVirtualPixelMethod)
|
1530
|
+
ENUMERATOR(BackgroundVirtualPixelMethod)
|
1531
|
+
ENUMERATOR(DitherVirtualPixelMethod)
|
1532
|
+
ENUMERATOR(RandomVirtualPixelMethod)
|
1533
|
+
ENUMERATOR(ConstantVirtualPixelMethod)
|
1534
|
+
#if defined(HAVE_ENUM_MASKVIRTUALPIXELMETHOD)
|
1535
|
+
ENUMERATOR(MaskVirtualPixelMethod)
|
1536
|
+
#endif
|
1537
|
+
#if defined(HAVE_ENUM_BLACKVIRTUALPIXELMETHOD)
|
1538
|
+
ENUMERATOR(BlackVirtualPixelMethod)
|
1539
|
+
#endif
|
1540
|
+
#if defined(HAVE_ENUM_GRAYVIRTUALPIXELMETHOD)
|
1541
|
+
ENUMERATOR(GrayVirtualPixelMethod)
|
1542
|
+
#endif
|
1543
|
+
#if defined(HAVE_ENUM_WHITEVIRTUALPIXELMETHOD)
|
1544
|
+
ENUMERATOR(WhiteVirtualPixelMethod)
|
1776
1545
|
#endif
|
1777
1546
|
END_ENUM
|
1778
1547
|
|
@@ -1796,18 +1565,6 @@ Init_RMagick(void)
|
|
1796
1565
|
Class_AffineMatrix = rb_struct_define(NULL, "sx", "rx", "ry", "sy", "tx", "ty", NULL);
|
1797
1566
|
rb_define_const(Module_Magick, "AffineMatrix", Class_AffineMatrix);
|
1798
1567
|
|
1799
|
-
#if defined(HAVE_GETIMAGESTATISTICS)
|
1800
|
-
// These classes are defined for >= GM 1.1.
|
1801
|
-
|
1802
|
-
// Magick::Statistics
|
1803
|
-
Class_Statistics = rb_struct_define(NULL, "red", "green", "blue", "opacity", NULL);
|
1804
|
-
rb_define_const(Module_Magick, "Statistics", Class_Statistics);
|
1805
|
-
// Magick::ChannelStatistics
|
1806
|
-
Class_StatisticsChannel = rb_struct_define(NULL, "max", "min", "mean", "stddev", "var", NULL);
|
1807
|
-
rb_define_const(Class_Statistics, "Channel", Class_StatisticsChannel);
|
1808
|
-
#endif
|
1809
|
-
|
1810
|
-
|
1811
1568
|
// Magick::Primary
|
1812
1569
|
Class_Primary = rb_struct_define(NULL, "x", "y", "z", NULL);
|
1813
1570
|
rb_define_method(Class_Primary, "to_s", PrimaryInfo_to_s, 0);
|
@@ -1815,11 +1572,11 @@ Init_RMagick(void)
|
|
1815
1572
|
|
1816
1573
|
// Magick::Chromaticity
|
1817
1574
|
Class_Chromaticity = rb_struct_define(NULL
|
1818
|
-
|
1819
|
-
|
1820
|
-
|
1821
|
-
|
1822
|
-
|
1575
|
+
, "red_primary"
|
1576
|
+
, "green_primary"
|
1577
|
+
, "blue_primary"
|
1578
|
+
, "white_point"
|
1579
|
+
, NULL);
|
1823
1580
|
rb_define_method(Class_Chromaticity, "to_s", ChromaticityInfo_to_s, 0);
|
1824
1581
|
rb_define_const(Module_Magick, "Chromaticity", Class_Chromaticity);
|
1825
1582
|
|
@@ -1844,8 +1601,8 @@ Init_RMagick(void)
|
|
1844
1601
|
|
1845
1602
|
// Magick::Font
|
1846
1603
|
Class_Font = rb_struct_define(NULL, "name", "description",
|
1847
|
-
|
1848
|
-
|
1604
|
+
"family", "style", "stretch", "weight",
|
1605
|
+
"encoding", "foundry", "format", NULL);
|
1849
1606
|
rb_define_method(Class_Font, "to_s", Font_to_s, 0);
|
1850
1607
|
rb_define_const(Module_Magick, "Font", Class_Font);
|
1851
1608
|
|
@@ -1865,8 +1622,7 @@ Init_RMagick(void)
|
|
1865
1622
|
/*
|
1866
1623
|
* Static: test_Magick_version
|
1867
1624
|
* Purpose: Ensure the version of ImageMagick we're running with matches
|
1868
|
-
* the version we were compiled with.
|
1869
|
-
* GetMagickVersion returns the runtime version.
|
1625
|
+
* the version we were compiled with.
|
1870
1626
|
* Notes: Bypass the test by defining the constant RMAGICK_BYPASS_VERSION_TEST
|
1871
1627
|
* to 'true' at the top level, before requiring 'RMagick'
|
1872
1628
|
*/
|
@@ -1874,6 +1630,13 @@ static void test_Magick_version(void)
|
|
1874
1630
|
{
|
1875
1631
|
unsigned long version_number;
|
1876
1632
|
const char *version_str;
|
1633
|
+
const char *web_site =
|
1634
|
+
#if defined(MagickHomeURL)
|
1635
|
+
MagickHomeURL
|
1636
|
+
#else
|
1637
|
+
MagickWebSite
|
1638
|
+
#endif
|
1639
|
+
;
|
1877
1640
|
int x, n;
|
1878
1641
|
ID bypass = rb_intern("RMAGICK_BYPASS_VERSION_TEST");
|
1879
1642
|
|
@@ -1883,11 +1646,7 @@ static void test_Magick_version(void)
|
|
1883
1646
|
}
|
1884
1647
|
|
1885
1648
|
version_str = GetMagickVersion(&version_number);
|
1886
|
-
#if defined(GRAPHICSMAGICK)
|
1887
|
-
if ((version_number & 0xff0000) != (MagickLibVersion & 0xff0000))
|
1888
|
-
#else
|
1889
1649
|
if (version_number != MagickLibVersion)
|
1890
|
-
#endif
|
1891
1650
|
{
|
1892
1651
|
// Extract the string "ImageMagick X.Y.Z"
|
1893
1652
|
n = 0;
|
@@ -1900,9 +1659,12 @@ static void test_Magick_version(void)
|
|
1900
1659
|
}
|
1901
1660
|
|
1902
1661
|
rb_raise(rb_eRuntimeError,
|
1903
|
-
|
1904
|
-
|
1905
|
-
|
1662
|
+
"This version of RMagick was created to run with %s %s\n"
|
1663
|
+
"but %.*s is installed on this system. You should either\n"
|
1664
|
+
" 1) Configure and build RMagick for %.*s, or\n"
|
1665
|
+
" 2) download %s %s from %s and install it.\n" ,
|
1666
|
+
MagickPackageName, MagickLibVersionText, x, version_str, x, version_str,
|
1667
|
+
MagickPackageName, MagickLibVersionText, web_site);
|
1906
1668
|
}
|
1907
1669
|
|
1908
1670
|
}
|
@@ -1924,23 +1686,23 @@ static void version_constants(void)
|
|
1924
1686
|
mgk_version = GetMagickVersion(NULL);
|
1925
1687
|
|
1926
1688
|
str = rb_str_new2(mgk_version);
|
1927
|
-
(
|
1689
|
+
OBJ_FREEZE(str);
|
1928
1690
|
rb_define_const(Module_Magick, "Magick_version", str);
|
1929
1691
|
|
1930
|
-
str = rb_str_new2(
|
1931
|
-
(
|
1692
|
+
str = rb_str_new2(Q(RMAGICK_VERSION_STRING));
|
1693
|
+
OBJ_FREEZE(str);
|
1932
1694
|
rb_define_const(Module_Magick, "Version", str);
|
1933
1695
|
|
1934
1696
|
sprintf(long_version,
|
1935
|
-
|
1936
|
-
|
1937
|
-
|
1938
|
-
|
1939
|
-
|
1940
|
-
|
1697
|
+
"This is %s ($Date: 2007/12/26 21:43:52 $) Copyright (C) 2007 by Timothy P. Hunter\n"
|
1698
|
+
"Built with %s\n"
|
1699
|
+
"Built for %s\n"
|
1700
|
+
"Web page: http://rmagick.rubyforge.org\n"
|
1701
|
+
"Email: rmagick@rubyforge.org\n",
|
1702
|
+
Q(RMAGICK_VERSION_STRING), mgk_version, Q(RUBY_VERSION_STRING));
|
1941
1703
|
|
1942
1704
|
str = rb_str_new2(long_version);
|
1943
|
-
(
|
1705
|
+
OBJ_FREEZE(str);
|
1944
1706
|
rb_define_const(Module_Magick, "Long_version", str);
|
1945
1707
|
|
1946
1708
|
}
|