rmagick 3.0.0 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of rmagick might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/.appveyor.yml +32 -6
- data/.circleci/config.yml +1 -1
- data/.gitignore +1 -0
- data/.rubocop.yml +9 -9
- data/.rubocop_todo.yml +351 -17
- data/.travis.yml +14 -1
- data/CHANGELOG.md +55 -0
- data/CONTRIBUTING.md +11 -18
- data/README.textile +2 -2
- data/Rakefile +1 -1
- data/before_install_linux.sh +56 -19
- data/doc/ex/sparse_color.rb +5 -0
- data/doc/magick.html +9 -4
- data/doc/rvg.html +2 -2
- data/doc/rvgtut.html +1 -1
- data/examples/histogram.rb +1 -1
- data/ext/RMagick/extconf.rb +90 -264
- data/ext/RMagick/rmagick.c +28 -6
- data/ext/RMagick/rmagick.h +53 -199
- data/ext/RMagick/rmdraw.c +52 -70
- data/ext/RMagick/rmenum.c +332 -274
- data/ext/RMagick/rmfill.c +62 -112
- data/ext/RMagick/rmilist.c +27 -62
- data/ext/RMagick/rmimage.c +424 -634
- data/ext/RMagick/rminfo.c +46 -37
- data/ext/RMagick/rmkinfo.c +47 -42
- data/ext/RMagick/rmmain.c +125 -180
- data/ext/RMagick/rmmontage.c +5 -5
- data/ext/RMagick/rmpixel.c +133 -62
- data/ext/RMagick/rmstruct.c +14 -181
- data/ext/RMagick/rmutil.c +195 -111
- data/lib/rmagick/version.rb +2 -3
- data/lib/rvg/deep_equal.rb +1 -1
- data/lib/rvg/misc.rb +4 -4
- data/lib/rvg/units.rb +2 -2
- data/rmagick.gemspec +2 -2
- data/spec/rmagick/ImageList1_spec.rb +2 -2
- data/spec/rmagick/draw_spec.rb +4 -4
- data/spec/rmagick/image/composite_spec.rb +6 -1
- data/spec/rmagick/image/properties_spec.rb +8 -8
- data/test/Draw.rb +414 -0
- data/test/Enum.rb +76 -0
- data/test/Fill.rb +93 -0
- data/test/Image1.rb +9 -1
- data/test/Image2.rb +14 -4
- data/test/Image3.rb +73 -3
- data/test/ImageList1.rb +22 -9
- data/test/ImageList2.rb +41 -9
- data/test/Image_attributes.rb +45 -8
- data/test/Info.rb +102 -6
- data/test/Magick.rb +8 -1
- data/test/PolaroidOptions.rb +23 -0
- data/test/test_all_basic.rb +4 -0
- metadata +28 -8
- data/.hound.yml +0 -2
- data/wercker.yml +0 -10
data/ext/RMagick/rminfo.c
CHANGED
@@ -13,7 +13,26 @@
|
|
13
13
|
#include "rmagick.h"
|
14
14
|
|
15
15
|
|
16
|
-
|
16
|
+
/*
|
17
|
+
* Define functions to get/set attributes in Image::Info that
|
18
|
+
* use the Get/SetImageOption API.
|
19
|
+
*/
|
20
|
+
//! Option attribute reader. For Image::Info.
|
21
|
+
#define OPTION_ATTR_READER(opt, key) \
|
22
|
+
VALUE Info_##opt(VALUE self)\
|
23
|
+
{\
|
24
|
+
return get_option(self, #key);\
|
25
|
+
}
|
26
|
+
//! Option attribute writer. For Image::Info.
|
27
|
+
#define OPTION_ATTR_WRITER(opt, key) \
|
28
|
+
VALUE Info_##opt##_eq(VALUE self, VALUE string)\
|
29
|
+
{\
|
30
|
+
return set_option(self, #key, string);\
|
31
|
+
}
|
32
|
+
//! Option attribute accessor. For Image::Info.
|
33
|
+
#define OPTION_ATTR_ACCESSOR(opt, key)\
|
34
|
+
OPTION_ATTR_READER(opt, key)\
|
35
|
+
OPTION_ATTR_WRITER(opt, key)
|
17
36
|
|
18
37
|
|
19
38
|
/**
|
@@ -64,7 +83,7 @@ set_option(VALUE self, const char *key, VALUE string)
|
|
64
83
|
|
65
84
|
if (NIL_P(string))
|
66
85
|
{
|
67
|
-
(void)
|
86
|
+
(void) DeleteImageOption(info, key);
|
68
87
|
}
|
69
88
|
else
|
70
89
|
{
|
@@ -81,7 +100,7 @@ set_option(VALUE self, const char *key, VALUE string)
|
|
81
100
|
* No Ruby usage (internal function)
|
82
101
|
*
|
83
102
|
* Notes:
|
84
|
-
* - Call
|
103
|
+
* - Call QueryColorCompliance to validate color name.
|
85
104
|
*
|
86
105
|
* @param self this object
|
87
106
|
* @param option the option
|
@@ -92,7 +111,7 @@ static VALUE set_color_option(VALUE self, const char *option, VALUE color)
|
|
92
111
|
{
|
93
112
|
Info *info;
|
94
113
|
char *name;
|
95
|
-
|
114
|
+
PixelColor pp;
|
96
115
|
ExceptionInfo *exception;
|
97
116
|
MagickBooleanType okay;
|
98
117
|
|
@@ -100,20 +119,19 @@ static VALUE set_color_option(VALUE self, const char *option, VALUE color)
|
|
100
119
|
|
101
120
|
if (NIL_P(color))
|
102
121
|
{
|
103
|
-
(void)
|
122
|
+
(void) DeleteImageOption(info, option);
|
104
123
|
}
|
105
124
|
else
|
106
125
|
{
|
107
|
-
exception = AcquireExceptionInfo();
|
108
126
|
name = StringValuePtr(color);
|
109
|
-
|
127
|
+
exception = AcquireExceptionInfo();
|
128
|
+
okay = QueryColorCompliance(name, AllCompliance, &pp, exception);
|
110
129
|
(void) DestroyExceptionInfo(exception);
|
111
130
|
if (!okay)
|
112
131
|
{
|
113
132
|
rb_raise(rb_eArgError, "invalid color name `%s'", name);
|
114
133
|
}
|
115
134
|
|
116
|
-
(void) RemoveImageOption(info, option);
|
117
135
|
(void) SetImageOption(info, option, name);
|
118
136
|
}
|
119
137
|
|
@@ -179,7 +197,7 @@ static VALUE set_dbl_option(VALUE self, const char *option, VALUE value)
|
|
179
197
|
|
180
198
|
if (NIL_P(value))
|
181
199
|
{
|
182
|
-
(void)
|
200
|
+
(void) DeleteImageOption(info, option);
|
183
201
|
}
|
184
202
|
else
|
185
203
|
{
|
@@ -194,7 +212,6 @@ static VALUE set_dbl_option(VALUE self, const char *option, VALUE value)
|
|
194
212
|
len = sprintf(buff, "%-10.2f", d);
|
195
213
|
}
|
196
214
|
memset(buff+len, '\0', sizeof(buff)-len);
|
197
|
-
(void) RemoveImageOption(info, option);
|
198
215
|
(void) SetImageOption(info, option, buff);
|
199
216
|
}
|
200
217
|
|
@@ -214,9 +231,9 @@ static VALUE set_dbl_option(VALUE self, const char *option, VALUE value)
|
|
214
231
|
*/
|
215
232
|
static char *pixel_packet_to_hexname(PixelPacket *pp, char *name)
|
216
233
|
{
|
217
|
-
|
234
|
+
MagickPixel mpp;
|
218
235
|
|
219
|
-
|
236
|
+
rm_init_magickpixel(NULL, &mpp);
|
220
237
|
rm_set_magick_pixel_packet(pp, &mpp);
|
221
238
|
(void) GetColorTuple(&mpp, MagickTrue, name);
|
222
239
|
return name;
|
@@ -356,7 +373,7 @@ Info_aset(int argc, VALUE *argv, VALUE self)
|
|
356
373
|
|
357
374
|
if (NIL_P(value))
|
358
375
|
{
|
359
|
-
(void)
|
376
|
+
(void) DeleteImageOption(info, ckey);
|
360
377
|
}
|
361
378
|
else
|
362
379
|
{
|
@@ -364,7 +381,6 @@ Info_aset(int argc, VALUE *argv, VALUE self)
|
|
364
381
|
value = rm_to_s(value);
|
365
382
|
value_p = StringValuePtr(value);
|
366
383
|
|
367
|
-
(void) RemoveImageOption(info, ckey);
|
368
384
|
okay = SetImageOption(info, ckey, value_p);
|
369
385
|
if (!okay)
|
370
386
|
{
|
@@ -492,7 +508,7 @@ Info_background_color(VALUE self)
|
|
492
508
|
Info *info;
|
493
509
|
|
494
510
|
Data_Get_Struct(self, Info, info);
|
495
|
-
return
|
511
|
+
return rm_pixelcolor_to_color_name_info(info, &info->background_color);
|
496
512
|
}
|
497
513
|
|
498
514
|
|
@@ -517,7 +533,7 @@ Info_background_color_eq(VALUE self, VALUE bc_arg)
|
|
517
533
|
//char colorname[MaxTextExtent];
|
518
534
|
|
519
535
|
Data_Get_Struct(self, Info, info);
|
520
|
-
|
536
|
+
Color_to_PixelColor(&info->background_color, bc_arg);
|
521
537
|
//SetImageOption(info, "background", pixel_packet_to_hexname(&info->background_color, colorname));
|
522
538
|
return self;
|
523
539
|
}
|
@@ -538,7 +554,7 @@ Info_border_color(VALUE self)
|
|
538
554
|
Info *info;
|
539
555
|
|
540
556
|
Data_Get_Struct(self, Info, info);
|
541
|
-
return
|
557
|
+
return rm_pixelcolor_to_color_name_info(info, &info->border_color);
|
542
558
|
}
|
543
559
|
|
544
560
|
/**
|
@@ -562,7 +578,7 @@ Info_border_color_eq(VALUE self, VALUE bc_arg)
|
|
562
578
|
//char colorname[MaxTextExtent];
|
563
579
|
|
564
580
|
Data_Get_Struct(self, Info, info);
|
565
|
-
|
581
|
+
Color_to_PixelColor(&info->border_color, bc_arg);
|
566
582
|
//SetImageOption(info, "bordercolor", pixel_packet_to_hexname(&info->border_color, colorname));
|
567
583
|
return self;
|
568
584
|
}
|
@@ -770,7 +786,7 @@ Info_define(int argc, VALUE *argv, VALUE self)
|
|
770
786
|
}
|
771
787
|
(void) sprintf(ckey, "%s:%s", format, key);
|
772
788
|
|
773
|
-
(void)
|
789
|
+
(void) DeleteImageOption(info, ckey);
|
774
790
|
okay = SetImageOption(info, ckey, value);
|
775
791
|
if (!okay)
|
776
792
|
{
|
@@ -859,7 +875,7 @@ Info_delay_eq(VALUE self, VALUE string)
|
|
859
875
|
|
860
876
|
if (NIL_P(string))
|
861
877
|
{
|
862
|
-
(void)
|
878
|
+
(void) DeleteImageOption(info, "delay");
|
863
879
|
}
|
864
880
|
else
|
865
881
|
{
|
@@ -871,7 +887,6 @@ Info_delay_eq(VALUE self, VALUE string)
|
|
871
887
|
}
|
872
888
|
delay = NUM2INT(string);
|
873
889
|
sprintf(dstr, "%d", delay);
|
874
|
-
(void) RemoveImageOption(info, "delay");
|
875
890
|
(void) SetImageOption(info, "delay", dstr);
|
876
891
|
}
|
877
892
|
return self;
|
@@ -1092,7 +1107,7 @@ Info_dispose_eq(VALUE self, VALUE disp)
|
|
1092
1107
|
|
1093
1108
|
if (NIL_P(disp))
|
1094
1109
|
{
|
1095
|
-
(void)
|
1110
|
+
(void) DeleteImageOption(info, "dispose");
|
1096
1111
|
return self;
|
1097
1112
|
}
|
1098
1113
|
|
@@ -1401,9 +1416,9 @@ Info_format_eq(VALUE self, VALUE magick)
|
|
1401
1416
|
|
1402
1417
|
Data_Get_Struct(self, Info, info);
|
1403
1418
|
|
1404
|
-
exception = AcquireExceptionInfo();
|
1405
|
-
|
1406
1419
|
mgk = StringValuePtr(magick);
|
1420
|
+
|
1421
|
+
exception = AcquireExceptionInfo();
|
1407
1422
|
m = GetMagickInfo(mgk, exception);
|
1408
1423
|
CHECK_EXCEPTION()
|
1409
1424
|
(void) DestroyExceptionInfo(exception);
|
@@ -1562,7 +1577,7 @@ Info_gravity_eq(VALUE self, VALUE grav)
|
|
1562
1577
|
|
1563
1578
|
if (NIL_P(grav))
|
1564
1579
|
{
|
1565
|
-
(void)
|
1580
|
+
(void) DeleteImageOption(info, "gravity");
|
1566
1581
|
return self;
|
1567
1582
|
}
|
1568
1583
|
|
@@ -1681,7 +1696,7 @@ Info_matte_color(VALUE self)
|
|
1681
1696
|
Info *info;
|
1682
1697
|
|
1683
1698
|
Data_Get_Struct(self, Info, info);
|
1684
|
-
return
|
1699
|
+
return rm_pixelcolor_to_color_name_info(info, &info->matte_color);
|
1685
1700
|
}
|
1686
1701
|
|
1687
1702
|
/**
|
@@ -1702,7 +1717,7 @@ Info_matte_color_eq(VALUE self, VALUE matte_arg)
|
|
1702
1717
|
//char colorname[MaxTextExtent];
|
1703
1718
|
|
1704
1719
|
Data_Get_Struct(self, Info, info);
|
1705
|
-
|
1720
|
+
Color_to_PixelColor(&info->matte_color, matte_arg);
|
1706
1721
|
//SetImageOption(info, "mattecolor", pixel_packet_to_hexname(&info->matte_color, colorname));
|
1707
1722
|
return self;
|
1708
1723
|
}
|
@@ -1734,10 +1749,6 @@ Info_monitor_eq(VALUE self, VALUE monitor)
|
|
1734
1749
|
(void) SetImageInfoProgressMonitor(info, rm_progress_monitor, (void *)monitor);
|
1735
1750
|
}
|
1736
1751
|
|
1737
|
-
#if defined(_WIN32)
|
1738
|
-
rb_warn("Info#monitor= does not work on Windows");
|
1739
|
-
#endif
|
1740
|
-
|
1741
1752
|
return self;
|
1742
1753
|
}
|
1743
1754
|
|
@@ -1833,7 +1844,7 @@ Info_origin_eq(VALUE self, VALUE origin_arg)
|
|
1833
1844
|
|
1834
1845
|
if (NIL_P(origin_arg))
|
1835
1846
|
{
|
1836
|
-
(void)
|
1847
|
+
(void) DeleteImageOption(info, "origin");
|
1837
1848
|
return self;
|
1838
1849
|
}
|
1839
1850
|
|
@@ -2291,7 +2302,7 @@ Info_transparent_color(VALUE self)
|
|
2291
2302
|
Info *info;
|
2292
2303
|
|
2293
2304
|
Data_Get_Struct(self, Info, info);
|
2294
|
-
return
|
2305
|
+
return rm_pixelcolor_to_color_name_info(info, &info->transparent_color);
|
2295
2306
|
}
|
2296
2307
|
|
2297
2308
|
|
@@ -2313,7 +2324,7 @@ Info_transparent_color_eq(VALUE self, VALUE tc_arg)
|
|
2313
2324
|
//char colorname[MaxTextExtent];
|
2314
2325
|
|
2315
2326
|
Data_Get_Struct(self, Info, info);
|
2316
|
-
|
2327
|
+
Color_to_PixelColor(&info->transparent_color, tc_arg);
|
2317
2328
|
//SetImageOption(info, "transparent", pixel_packet_to_hexname(&info->transparent_color, colorname));
|
2318
2329
|
return self;
|
2319
2330
|
}
|
@@ -2377,9 +2388,7 @@ Info_undefine(VALUE self, VALUE format, VALUE key)
|
|
2377
2388
|
sprintf(fkey, "%.60s:%.*s", format_p, (int)(MaxTextExtent-61), key_p);
|
2378
2389
|
|
2379
2390
|
Data_Get_Struct(self, Info, info);
|
2380
|
-
|
2381
|
-
/* char * or MagickBooleanType. Ignore the return value. */
|
2382
|
-
(void) RemoveImageOption(info, fkey);
|
2391
|
+
(void) DeleteImageOption(info, fkey);
|
2383
2392
|
|
2384
2393
|
return self;
|
2385
2394
|
}
|
data/ext/RMagick/rmkinfo.c
CHANGED
@@ -21,8 +21,8 @@
|
|
21
21
|
static void
|
22
22
|
rm_kernel_info_destroy(void *kernel)
|
23
23
|
{
|
24
|
-
|
25
|
-
|
24
|
+
if (kernel)
|
25
|
+
DestroyKernelInfo((KernelInfo*)kernel);
|
26
26
|
}
|
27
27
|
|
28
28
|
/**
|
@@ -36,7 +36,7 @@ rm_kernel_info_destroy(void *kernel)
|
|
36
36
|
VALUE
|
37
37
|
KernelInfo_alloc(VALUE class)
|
38
38
|
{
|
39
|
-
|
39
|
+
return Data_Wrap_Struct(class, NULL, rm_kernel_info_destroy, NULL);
|
40
40
|
}
|
41
41
|
|
42
42
|
/**
|
@@ -52,18 +52,18 @@ KernelInfo_alloc(VALUE class)
|
|
52
52
|
VALUE
|
53
53
|
KernelInfo_initialize(VALUE self, VALUE kernel_string)
|
54
54
|
{
|
55
|
-
|
55
|
+
KernelInfo *kernel;
|
56
56
|
|
57
|
-
|
57
|
+
Check_Type(kernel_string, T_STRING);
|
58
58
|
|
59
|
-
|
59
|
+
kernel = AcquireKernelInfo(StringValueCStr(kernel_string));
|
60
60
|
|
61
|
-
|
62
|
-
|
61
|
+
if (kernel == NULL)
|
62
|
+
rb_raise(rb_eRuntimeError, "failed to parse kernel string");
|
63
63
|
|
64
|
-
|
64
|
+
DATA_PTR(self) = kernel;
|
65
65
|
|
66
|
-
|
66
|
+
return self;
|
67
67
|
}
|
68
68
|
|
69
69
|
/**
|
@@ -73,12 +73,14 @@ KernelInfo_initialize(VALUE self, VALUE kernel_string)
|
|
73
73
|
* - @verbatim KernelInfo#zero_nans @endverbatim
|
74
74
|
*
|
75
75
|
* @param self this object
|
76
|
+
* @deprecated This method has been deprecated.
|
76
77
|
*/
|
77
78
|
VALUE
|
78
79
|
KernelInfo_zero_nans(VALUE self)
|
79
80
|
{
|
80
|
-
|
81
|
-
|
81
|
+
rb_warning("KernelInfo#zero_nans is deprecated");
|
82
|
+
ZeroKernelNans((KernelInfo*)DATA_PTR(self));
|
83
|
+
return Qnil;
|
82
84
|
}
|
83
85
|
|
84
86
|
/**
|
@@ -93,11 +95,11 @@ KernelInfo_zero_nans(VALUE self)
|
|
93
95
|
VALUE
|
94
96
|
KernelInfo_unity_add(VALUE self, VALUE scale)
|
95
97
|
{
|
96
|
-
|
97
|
-
|
98
|
+
if (!FIXNUM_P(scale))
|
99
|
+
Check_Type(scale, T_FLOAT);
|
98
100
|
|
99
|
-
|
100
|
-
|
101
|
+
UnityAddKernelInfo((KernelInfo*)DATA_PTR(self), NUM2DBL(scale));
|
102
|
+
return Qnil;
|
101
103
|
}
|
102
104
|
|
103
105
|
/**
|
@@ -107,12 +109,14 @@ KernelInfo_unity_add(VALUE self, VALUE scale)
|
|
107
109
|
* - @verbatim KernelInfo#show @endverbatim
|
108
110
|
*
|
109
111
|
* @param self this object
|
112
|
+
* @deprecated This method has been deprecated.
|
110
113
|
*/
|
111
114
|
VALUE
|
112
115
|
KernelInfo_show(VALUE self)
|
113
116
|
{
|
114
|
-
|
115
|
-
|
117
|
+
rb_warning("KernelInfo#show is deprecated");
|
118
|
+
ShowKernelInfo((KernelInfo*)DATA_PTR(self));
|
119
|
+
return Qnil;
|
116
120
|
}
|
117
121
|
|
118
122
|
/**
|
@@ -130,18 +134,18 @@ KernelInfo_show(VALUE self)
|
|
130
134
|
VALUE
|
131
135
|
KernelInfo_scale(VALUE self, VALUE scale, VALUE flags)
|
132
136
|
{
|
133
|
-
|
137
|
+
GeometryFlags geoflags;
|
134
138
|
|
135
|
-
|
136
|
-
|
139
|
+
if (!FIXNUM_P(scale))
|
140
|
+
Check_Type(scale, T_FLOAT);
|
137
141
|
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
+
if (rb_obj_is_instance_of(flags, Class_GeometryFlags))
|
143
|
+
VALUE_TO_ENUM(flags, geoflags, GeometryFlags);
|
144
|
+
else
|
145
|
+
rb_raise(rb_eArgError, "expected Integer or Magick::GeometryFlags to specify flags");
|
142
146
|
|
143
|
-
|
144
|
-
|
147
|
+
ScaleKernelInfo((KernelInfo*)DATA_PTR(self), NUM2DBL(scale), geoflags);
|
148
|
+
return Qnil;
|
145
149
|
}
|
146
150
|
|
147
151
|
/**
|
@@ -157,9 +161,9 @@ KernelInfo_scale(VALUE self, VALUE scale, VALUE flags)
|
|
157
161
|
VALUE
|
158
162
|
KernelInfo_scale_geometry(VALUE self, VALUE geometry)
|
159
163
|
{
|
160
|
-
|
161
|
-
|
162
|
-
|
164
|
+
Check_Type(geometry, T_STRING);
|
165
|
+
ScaleGeometryKernelInfo((KernelInfo*)DATA_PTR(self), StringValueCStr(geometry));
|
166
|
+
return Qnil;
|
163
167
|
}
|
164
168
|
|
165
169
|
/**
|
@@ -174,8 +178,8 @@ KernelInfo_scale_geometry(VALUE self, VALUE geometry)
|
|
174
178
|
VALUE
|
175
179
|
KernelInfo_clone(VALUE self)
|
176
180
|
{
|
177
|
-
|
178
|
-
|
181
|
+
KernelInfo *kernel = CloneKernelInfo((KernelInfo*)DATA_PTR(self));
|
182
|
+
return Data_Wrap_Struct(Class_KernelInfo, NULL, rm_kernel_info_destroy, kernel);
|
179
183
|
}
|
180
184
|
|
181
185
|
/**
|
@@ -224,24 +228,25 @@ KernelInfo_clone(VALUE self)
|
|
224
228
|
* Magick::OctagonalKernel
|
225
229
|
* Magick::EuclideanKernel
|
226
230
|
* Magick::UserDefinedKernel
|
231
|
+
* Magick::BinomialKernel
|
227
232
|
* @param geometry geometry to pass to default kernel
|
228
233
|
* @return KernelInfo instance
|
229
234
|
*/
|
230
235
|
VALUE
|
231
236
|
KernelInfo_builtin(VALUE self, VALUE what, VALUE geometry)
|
232
237
|
{
|
233
|
-
|
234
|
-
|
235
|
-
|
238
|
+
KernelInfo *kernel;
|
239
|
+
KernelInfoType kernel_type;
|
240
|
+
GeometryInfo info;
|
236
241
|
|
237
|
-
|
238
|
-
|
239
|
-
|
242
|
+
Check_Type(geometry, T_STRING);
|
243
|
+
VALUE_TO_ENUM(what, kernel_type, KernelInfoType);
|
244
|
+
ParseGeometry(StringValueCStr(geometry), &info);
|
240
245
|
|
241
|
-
|
246
|
+
kernel = AcquireKernelBuiltIn(kernel_type, &info);
|
242
247
|
|
243
|
-
|
244
|
-
|
248
|
+
if (!kernel)
|
249
|
+
rb_raise(rb_eRuntimeError, "failed to acquire builtin kernel");
|
245
250
|
|
246
|
-
|
251
|
+
return Data_Wrap_Struct(self, NULL, rm_kernel_info_destroy, kernel);
|
247
252
|
}
|
data/ext/RMagick/rmmain.c
CHANGED
@@ -13,7 +13,6 @@
|
|
13
13
|
|
14
14
|
#define MAIN // Define external variables
|
15
15
|
#include "rmagick.h"
|
16
|
-
#include "magick/version.h"
|
17
16
|
|
18
17
|
/*----------------------------------------------------------------------------\
|
19
18
|
| External declarations
|
@@ -25,13 +24,34 @@ static void version_constants(void);
|
|
25
24
|
static void features_constant(void);
|
26
25
|
|
27
26
|
|
27
|
+
/*
|
28
|
+
* Enum constants - define a subclass of Enum for the specified enumeration.
|
29
|
+
* Define an instance of the subclass for each member in the enumeration.
|
30
|
+
* Initialize each instance with its name and value.
|
31
|
+
*/
|
32
|
+
//! define Ruby enum
|
33
|
+
#define DEF_ENUM(tag) {\
|
34
|
+
VALUE _cls, _enum;\
|
35
|
+
_cls = Class_##tag = rm_define_enum_type(#tag);
|
36
|
+
|
37
|
+
//! define Ruby enumerator elements
|
38
|
+
#define ENUMERATOR(val)\
|
39
|
+
_enum = rm_enum_new(_cls, ID2SYM(rb_intern(#val)), INT2NUM(val));\
|
40
|
+
rb_define_const(Module_Magick, #val, _enum);
|
28
41
|
|
42
|
+
//! define Ruby enumerator elements when name is different from the value
|
43
|
+
#define ENUMERATORV(name, val)\
|
44
|
+
_enum = rm_enum_new(_cls, ID2SYM(rb_intern(#name)), INT2NUM(val));\
|
45
|
+
rb_define_const(Module_Magick, #name, _enum);
|
46
|
+
|
47
|
+
//! end of an enumerator
|
48
|
+
#define END_ENUM }
|
29
49
|
|
30
50
|
/*
|
31
51
|
* Handle transferring ImageMagick memory allocations/frees to Ruby.
|
32
52
|
* These functions have the same signature as the equivalent C functions.
|
33
53
|
*/
|
34
|
-
|
54
|
+
|
35
55
|
/**
|
36
56
|
* Allocate memory.
|
37
57
|
*
|
@@ -118,7 +138,6 @@ static void set_managed_memory(void)
|
|
118
138
|
rb_define_const(Module_Magick, "MANAGED_MEMORY", Qfalse);
|
119
139
|
}
|
120
140
|
}
|
121
|
-
#endif
|
122
141
|
|
123
142
|
|
124
143
|
|
@@ -139,11 +158,7 @@ Init_RMagick2(void)
|
|
139
158
|
|
140
159
|
Module_Magick = rb_define_module("Magick");
|
141
160
|
|
142
|
-
#if defined(HAVE_SETMAGICKMEMORYMETHODS)
|
143
161
|
set_managed_memory();
|
144
|
-
#else
|
145
|
-
rb_define_const(Module_Magick, "MANAGED_MEMORY", Qfalse);
|
146
|
-
#endif
|
147
162
|
|
148
163
|
/*-----------------------------------------------------------------------*/
|
149
164
|
/* Create IDs for frequently used methods, etc. */
|
@@ -379,6 +394,7 @@ Init_RMagick2(void)
|
|
379
394
|
rb_define_method(Class_Image, "flop!", Image_flop_bang, 0);
|
380
395
|
rb_define_method(Class_Image, "frame", Image_frame, -1);
|
381
396
|
rb_define_method(Class_Image, "function_channel", Image_function_channel, -1);
|
397
|
+
rb_define_method(Class_Image, "fx", Image_fx, -1);
|
382
398
|
rb_define_method(Class_Image, "gamma_channel", Image_gamma_channel, -1);
|
383
399
|
rb_define_method(Class_Image, "gamma_correct", Image_gamma_correct, -1);
|
384
400
|
rb_define_method(Class_Image, "gaussian_blur", Image_gaussian_blur, -1);
|
@@ -883,18 +899,17 @@ Init_RMagick2(void)
|
|
883
899
|
ENUMERATOR(DeactivateAlphaChannel)
|
884
900
|
ENUMERATOR(ResetAlphaChannel) /* deprecated */
|
885
901
|
ENUMERATOR(SetAlphaChannel)
|
886
|
-
#if defined(HAVE_ENUM_REMOVEALPHACHANNEL)
|
887
902
|
ENUMERATOR(RemoveAlphaChannel)
|
888
|
-
#endif
|
889
|
-
#if defined(HAVE_ENUM_COPYALPHACHANNEL)
|
890
903
|
ENUMERATOR(CopyAlphaChannel)
|
891
904
|
ENUMERATOR(ExtractAlphaChannel)
|
892
905
|
ENUMERATOR(OpaqueAlphaChannel)
|
893
906
|
ENUMERATOR(ShapeAlphaChannel)
|
894
907
|
ENUMERATOR(TransparentAlphaChannel)
|
895
|
-
#endif
|
896
|
-
#if defined(HAVE_ENUM_BACKGROUNDALPHACHANNEL)
|
897
908
|
ENUMERATOR(BackgroundAlphaChannel)
|
909
|
+
ENUMERATOR(FlattenAlphaChannel)
|
910
|
+
#if defined(IMAGEMAGICK_GREATER_THAN_EQUAL_6_8_9)
|
911
|
+
ENUMERATOR(AssociateAlphaChannel)
|
912
|
+
ENUMERATOR(DisassociateAlphaChannel)
|
898
913
|
#endif
|
899
914
|
END_ENUM
|
900
915
|
|
@@ -915,36 +930,16 @@ Init_RMagick2(void)
|
|
915
930
|
ENUMERATOR(BlueChannel)
|
916
931
|
ENUMERATOR(YellowChannel)
|
917
932
|
ENUMERATOR(OpacityChannel)
|
918
|
-
|
919
|
-
|
920
933
|
ENUMERATOR(BlackChannel)
|
921
934
|
ENUMERATOR(MatteChannel)
|
922
935
|
ENUMERATOR(IndexChannel)
|
923
936
|
ENUMERATOR(GrayChannel)
|
924
937
|
ENUMERATOR(AllChannels)
|
925
|
-
|
926
|
-
|
927
|
-
|
928
|
-
|
929
|
-
|
930
|
-
|
931
|
-
// DefaultChannels
|
932
|
-
_enum = rm_enum_new(Class_ChannelType, ID2SYM(rb_intern("DefaultChannels")), INT2FIX(0xff & ~OpacityChannel));
|
933
|
-
rb_define_const(Module_Magick, "DefaultChannels", _enum);
|
934
|
-
|
935
|
-
// HueChannel == RedChannel
|
936
|
-
_enum = rm_enum_new(Class_ChannelType, ID2SYM(rb_intern("HueChannel")), INT2FIX(RedChannel));
|
937
|
-
rb_define_const(Module_Magick, "HueChannel", _enum);
|
938
|
-
|
939
|
-
// LuminosityChannel = BlueChannel
|
940
|
-
_enum = rm_enum_new(Class_ChannelType, ID2SYM(rb_intern("LuminosityChannel")), INT2FIX(BlueChannel));
|
941
|
-
rb_define_const(Module_Magick, "LuminosityChannel", _enum);
|
942
|
-
|
943
|
-
// SaturationChannel = GreenChannel
|
944
|
-
_enum = rm_enum_new(Class_ChannelType, ID2SYM(rb_intern("SaturationChannel")), INT2FIX(GreenChannel));
|
945
|
-
rb_define_const(Module_Magick, "SaturationChannel", _enum);
|
946
|
-
|
947
|
-
|
938
|
+
ENUMERATORV(AlphaChannel, OpacityChannel)
|
939
|
+
ENUMERATORV(DefaultChannels, 0xff & ~OpacityChannel)
|
940
|
+
ENUMERATORV(HueChannel, RedChannel)
|
941
|
+
ENUMERATORV(LuminosityChannel, BlueChannel)
|
942
|
+
ENUMERATORV(SaturationChannel, GreenChannel)
|
948
943
|
END_ENUM
|
949
944
|
|
950
945
|
// ClassType constants
|
@@ -968,10 +963,7 @@ Init_RMagick2(void)
|
|
968
963
|
ENUMERATOR(YPbPrColorspace)
|
969
964
|
ENUMERATOR(YUVColorspace)
|
970
965
|
ENUMERATOR(CMYKColorspace)
|
971
|
-
|
972
|
-
, rm_enum_new(Class_ColorspaceType
|
973
|
-
, ID2SYM(rb_intern("SRGBColorspace"))
|
974
|
-
, INT2FIX(sRGBColorspace)));
|
966
|
+
ENUMERATORV(SRGBColorspace, sRGBColorspace)
|
975
967
|
ENUMERATOR(HSLColorspace)
|
976
968
|
ENUMERATOR(HWBColorspace)
|
977
969
|
ENUMERATOR(HSBColorspace)
|
@@ -982,18 +974,27 @@ Init_RMagick2(void)
|
|
982
974
|
ENUMERATOR(Rec709YCbCrColorspace)
|
983
975
|
ENUMERATOR(LogColorspace)
|
984
976
|
ENUMERATOR(CMYColorspace)
|
977
|
+
#if defined(IMAGEMAGICK_GREATER_THAN_EQUAL_6_8_9)
|
978
|
+
ENUMERATOR(LuvColorspace)
|
979
|
+
ENUMERATOR(HCLColorspace)
|
980
|
+
ENUMERATOR(LCHColorspace)
|
981
|
+
ENUMERATOR(LMSColorspace)
|
982
|
+
ENUMERATOR(LCHabColorspace)
|
983
|
+
ENUMERATOR(LCHuvColorspace)
|
984
|
+
ENUMERATORV(ScRGBColorspace, scRGBColorspace)
|
985
|
+
ENUMERATOR(HSIColorspace)
|
986
|
+
ENUMERATOR(HSVColorspace)
|
987
|
+
ENUMERATOR(HCLpColorspace)
|
988
|
+
ENUMERATOR(YDbDrColorspace)
|
989
|
+
ENUMERATORV(XyYColorspace, xyYColorspace)
|
990
|
+
#endif
|
985
991
|
END_ENUM
|
986
992
|
|
987
993
|
// ComplianceType constants are defined as enums but used as bit flags
|
988
994
|
DEF_ENUM(ComplianceType)
|
989
995
|
ENUMERATOR(UndefinedCompliance)
|
990
|
-
|
991
996
|
// AllCompliance is 0xffff, not too useful for us!
|
992
|
-
|
993
|
-
, rm_enum_new(Class_ComplianceType
|
994
|
-
, ID2SYM(rb_intern("AllCompliance"))
|
995
|
-
, INT2FIX(SVGCompliance|X11Compliance|XPMCompliance)));
|
996
|
-
|
997
|
+
ENUMERATORV(AllCompliance, SVGCompliance|X11Compliance|XPMCompliance)
|
997
998
|
ENUMERATOR(NoCompliance)
|
998
999
|
ENUMERATOR(SVGCompliance)
|
999
1000
|
ENUMERATOR(X11Compliance)
|
@@ -1002,14 +1003,10 @@ Init_RMagick2(void)
|
|
1002
1003
|
|
1003
1004
|
// CompositeOperator constants
|
1004
1005
|
DEF_ENUM(CompositeOperator)
|
1005
|
-
ENUMERATOR(UndefinedCompositeOp)
|
1006
|
-
ENUMERATOR(NoCompositeOp)
|
1007
1006
|
ENUMERATOR(AddCompositeOp)
|
1008
1007
|
ENUMERATOR(AtopCompositeOp)
|
1009
1008
|
ENUMERATOR(BlendCompositeOp)
|
1010
|
-
#if defined(HAVE_ENUM_BLURCOMPOSITEOP)
|
1011
1009
|
ENUMERATOR(BlurCompositeOp)
|
1012
|
-
#endif
|
1013
1010
|
ENUMERATOR(BumpmapCompositeOp)
|
1014
1011
|
ENUMERATOR(ChangeMaskCompositeOp)
|
1015
1012
|
ENUMERATOR(ClearCompositeOp)
|
@@ -1026,10 +1023,10 @@ Init_RMagick2(void)
|
|
1026
1023
|
ENUMERATOR(CopyRedCompositeOp)
|
1027
1024
|
ENUMERATOR(CopyYellowCompositeOp)
|
1028
1025
|
ENUMERATOR(DarkenCompositeOp)
|
1029
|
-
|
1026
|
+
ENUMERATOR(DarkenIntensityCompositeOp)
|
1030
1027
|
ENUMERATOR(DistortCompositeOp)
|
1031
|
-
#endif
|
1032
1028
|
ENUMERATOR(DivideCompositeOp)
|
1029
|
+
ENUMERATOR(DivideSrcCompositeOp)
|
1033
1030
|
ENUMERATOR(DstAtopCompositeOp)
|
1034
1031
|
ENUMERATOR(DstCompositeOp)
|
1035
1032
|
ENUMERATOR(DstInCompositeOp)
|
@@ -1040,29 +1037,28 @@ Init_RMagick2(void)
|
|
1040
1037
|
ENUMERATOR(DissolveCompositeOp)
|
1041
1038
|
ENUMERATOR(ExclusionCompositeOp)
|
1042
1039
|
ENUMERATOR(HardLightCompositeOp)
|
1040
|
+
#if defined(IMAGEMAGICK_GREATER_THAN_EQUAL_6_8_9)
|
1041
|
+
ENUMERATOR(HardMixCompositeOp)
|
1042
|
+
#endif
|
1043
1043
|
ENUMERATOR(HueCompositeOp)
|
1044
1044
|
ENUMERATOR(InCompositeOp)
|
1045
1045
|
ENUMERATOR(LightenCompositeOp)
|
1046
|
-
|
1046
|
+
ENUMERATOR(LightenIntensityCompositeOp)
|
1047
1047
|
ENUMERATOR(LinearBurnCompositeOp)
|
1048
|
-
#endif
|
1049
|
-
#if defined(HAVE_ENUM_LINEARDODGECOMPOSITEOP)
|
1050
1048
|
ENUMERATOR(LinearDodgeCompositeOp)
|
1051
|
-
#endif
|
1052
1049
|
ENUMERATOR(LinearLightCompositeOp)
|
1053
1050
|
ENUMERATOR(LuminizeCompositeOp)
|
1051
|
+
ENUMERATOR(MathematicsCompositeOp)
|
1054
1052
|
ENUMERATOR(MinusCompositeOp)
|
1053
|
+
ENUMERATOR(MinusSrcCompositeOp)
|
1055
1054
|
ENUMERATOR(ModulateCompositeOp)
|
1056
1055
|
ENUMERATOR(MultiplyCompositeOp)
|
1056
|
+
ENUMERATOR(NoCompositeOp)
|
1057
1057
|
ENUMERATOR(OutCompositeOp)
|
1058
1058
|
ENUMERATOR(OverCompositeOp)
|
1059
1059
|
ENUMERATOR(OverlayCompositeOp)
|
1060
|
-
#if defined(HAVE_ENUM_PEGTOPLIGHTCOMPOSITEOP)
|
1061
1060
|
ENUMERATOR(PegtopLightCompositeOp)
|
1062
|
-
#endif
|
1063
|
-
#if defined(HAVE_ENUM_PINLIGHTCOMPOSITEOP)
|
1064
1061
|
ENUMERATOR(PinLightCompositeOp)
|
1065
|
-
#endif
|
1066
1062
|
ENUMERATOR(PlusCompositeOp)
|
1067
1063
|
ENUMERATOR(ReplaceCompositeOp) // synonym for CopyCompositeOp
|
1068
1064
|
ENUMERATOR(SaturateCompositeOp)
|
@@ -1075,9 +1071,8 @@ Init_RMagick2(void)
|
|
1075
1071
|
ENUMERATOR(SrcOverCompositeOp)
|
1076
1072
|
ENUMERATOR(SubtractCompositeOp)
|
1077
1073
|
ENUMERATOR(ThresholdCompositeOp)
|
1078
|
-
|
1074
|
+
ENUMERATOR(UndefinedCompositeOp)
|
1079
1075
|
ENUMERATOR(VividLightCompositeOp)
|
1080
|
-
#endif
|
1081
1076
|
ENUMERATOR(XorCompositeOp)
|
1082
1077
|
END_ENUM
|
1083
1078
|
|
@@ -1085,39 +1080,26 @@ Init_RMagick2(void)
|
|
1085
1080
|
DEF_ENUM(CompressionType)
|
1086
1081
|
ENUMERATOR(UndefinedCompression)
|
1087
1082
|
ENUMERATOR(NoCompression)
|
1088
|
-
#if defined(HAVE_ENUM_B44COMPRESSION)
|
1089
1083
|
ENUMERATOR(B44Compression)
|
1090
|
-
#endif
|
1091
|
-
#if defined(HAVE_ENUM_B44ACOMPRESSION)
|
1092
1084
|
ENUMERATOR(B44ACompression)
|
1093
|
-
#endif
|
1094
1085
|
ENUMERATOR(BZipCompression)
|
1095
|
-
#if defined(HAVE_ENUM_DXT1COMPRESSION)
|
1096
1086
|
ENUMERATOR(DXT1Compression)
|
1097
|
-
#endif
|
1098
|
-
#if defined(HAVE_ENUM_DXT3COMPRESSION)
|
1099
1087
|
ENUMERATOR(DXT3Compression)
|
1100
|
-
#endif
|
1101
|
-
#if defined(HAVE_ENUM_DXT5COMPRESSION)
|
1102
1088
|
ENUMERATOR(DXT5Compression)
|
1103
|
-
#endif
|
1104
1089
|
ENUMERATOR(FaxCompression)
|
1105
1090
|
ENUMERATOR(Group4Compression)
|
1106
1091
|
ENUMERATOR(JPEGCompression)
|
1107
1092
|
ENUMERATOR(JPEG2000Compression)
|
1108
1093
|
ENUMERATOR(LosslessJPEGCompression)
|
1109
1094
|
ENUMERATOR(LZWCompression)
|
1110
|
-
#if defined(HAVE_ENUM_PIZCOMPRESSION)
|
1111
1095
|
ENUMERATOR(PizCompression)
|
1112
|
-
#endif
|
1113
|
-
#if defined(HAVE_ENUM_PXR24COMPRESSION)
|
1114
1096
|
ENUMERATOR(Pxr24Compression)
|
1115
|
-
#endif
|
1116
1097
|
ENUMERATOR(RLECompression)
|
1117
1098
|
ENUMERATOR(ZipCompression)
|
1118
|
-
#if defined(HAVE_ENUM_ZIPSCOMPRESSION)
|
1119
1099
|
ENUMERATOR(ZipSCompression)
|
1120
|
-
|
1100
|
+
ENUMERATOR(LZMACompression)
|
1101
|
+
ENUMERATOR(JBIG1Compression)
|
1102
|
+
ENUMERATOR(JBIG2Compression)
|
1121
1103
|
END_ENUM
|
1122
1104
|
|
1123
1105
|
// DecorationType constants
|
@@ -1142,46 +1124,30 @@ Init_RMagick2(void)
|
|
1142
1124
|
ENUMERATOR(AffineDistortion)
|
1143
1125
|
ENUMERATOR(AffineProjectionDistortion)
|
1144
1126
|
ENUMERATOR(ArcDistortion)
|
1145
|
-
#if defined(HAVE_ENUM_POLARDISTORTION)
|
1146
1127
|
ENUMERATOR(PolarDistortion)
|
1147
|
-
#endif
|
1148
|
-
#if defined(HAVE_ENUM_DEPOLARDISTORTION)
|
1149
1128
|
ENUMERATOR(DePolarDistortion)
|
1150
|
-
#endif
|
1151
|
-
#if defined(HAVE_ENUM_BARRELDISTORTION)
|
1152
1129
|
ENUMERATOR(BarrelDistortion)
|
1153
|
-
#endif
|
1154
1130
|
ENUMERATOR(BilinearDistortion)
|
1155
|
-
#if defined(HAVE_ENUM_BILINEARFORWARDDISTORTION)
|
1156
1131
|
ENUMERATOR(BilinearForwardDistortion)
|
1157
|
-
#endif
|
1158
|
-
#if defined(HAVE_ENUM_BILINEARREVERSEDISTORTION)
|
1159
1132
|
ENUMERATOR(BilinearReverseDistortion)
|
1160
|
-
#endif
|
1161
1133
|
ENUMERATOR(PerspectiveDistortion)
|
1162
1134
|
ENUMERATOR(PerspectiveProjectionDistortion)
|
1163
|
-
#if defined(HAVE_ENUM_POLYNOMIALDISTORTION)
|
1164
1135
|
ENUMERATOR(PolynomialDistortion)
|
1165
|
-
#endif
|
1166
1136
|
ENUMERATOR(ScaleRotateTranslateDistortion)
|
1167
|
-
#if defined(HAVE_ENUM_SHEPARDSDISTORTION)
|
1168
1137
|
ENUMERATOR(ShepardsDistortion)
|
1169
|
-
#endif
|
1170
|
-
#if defined(HAVE_ENUM_BARRELINVERSEDISTORTION)
|
1171
1138
|
ENUMERATOR(BarrelInverseDistortion)
|
1172
|
-
|
1139
|
+
ENUMERATOR(Cylinder2PlaneDistortion)
|
1140
|
+
ENUMERATOR(Plane2CylinderDistortion)
|
1141
|
+
ENUMERATOR(ResizeDistortion)
|
1142
|
+
ENUMERATOR(SentinelDistortion)
|
1173
1143
|
END_ENUM
|
1174
1144
|
|
1175
|
-
#if defined(HAVE_TYPE_DITHERMETHOD)
|
1176
1145
|
DEF_ENUM(DitherMethod)
|
1177
1146
|
ENUMERATOR(UndefinedDitherMethod)
|
1178
|
-
#if defined(HAVE_ENUM_NODITHERMETHOD)
|
1179
1147
|
ENUMERATOR(NoDitherMethod)
|
1180
|
-
#endif
|
1181
1148
|
ENUMERATOR(RiemersmaDitherMethod)
|
1182
1149
|
ENUMERATOR(FloydSteinbergDitherMethod)
|
1183
1150
|
END_ENUM
|
1184
|
-
#endif
|
1185
1151
|
|
1186
1152
|
DEF_ENUM(EndianType)
|
1187
1153
|
ENUMERATOR(UndefinedEndian)
|
@@ -1207,23 +1173,23 @@ Init_RMagick2(void)
|
|
1207
1173
|
ENUMERATOR(LanczosFilter)
|
1208
1174
|
ENUMERATOR(BesselFilter)
|
1209
1175
|
ENUMERATOR(SincFilter)
|
1210
|
-
#if defined(HAVE_ENUM_KAISERFILTER)
|
1211
1176
|
ENUMERATOR(KaiserFilter)
|
1212
|
-
#endif
|
1213
|
-
#if defined(HAVE_ENUM_WELSHFILTER)
|
1214
1177
|
ENUMERATOR(WelshFilter)
|
1215
|
-
#endif
|
1216
|
-
#if defined(HAVE_ENUM_PARZENFILTER)
|
1217
1178
|
ENUMERATOR(ParzenFilter)
|
1218
|
-
#endif
|
1219
|
-
#if defined(HAVE_ENUM_LAGRANGEFILTER)
|
1220
1179
|
ENUMERATOR(LagrangeFilter)
|
1221
|
-
#endif
|
1222
|
-
#if defined(HAVE_ENUM_BOHMANFILTER)
|
1223
1180
|
ENUMERATOR(BohmanFilter)
|
1224
|
-
#endif
|
1225
|
-
#if defined(HAVE_ENUM_BARTLETTFILTER)
|
1226
1181
|
ENUMERATOR(BartlettFilter)
|
1182
|
+
ENUMERATOR(JincFilter)
|
1183
|
+
ENUMERATOR(SincFastFilter)
|
1184
|
+
ENUMERATOR(LanczosSharpFilter)
|
1185
|
+
ENUMERATOR(Lanczos2Filter)
|
1186
|
+
ENUMERATOR(Lanczos2SharpFilter)
|
1187
|
+
ENUMERATOR(RobidouxFilter)
|
1188
|
+
ENUMERATOR(RobidouxSharpFilter)
|
1189
|
+
ENUMERATOR(CosineFilter)
|
1190
|
+
ENUMERATOR(SplineFilter)
|
1191
|
+
#if defined(IMAGEMAGICK_GREATER_THAN_EQUAL_6_8_9)
|
1192
|
+
ENUMERATOR(LanczosRadiusFilter)
|
1227
1193
|
#endif
|
1228
1194
|
END_ENUM
|
1229
1195
|
|
@@ -1281,27 +1247,22 @@ Init_RMagick2(void)
|
|
1281
1247
|
ENUMERATOR(MeshInterpolatePixel)
|
1282
1248
|
ENUMERATOR(NearestNeighborInterpolatePixel)
|
1283
1249
|
ENUMERATOR(SplineInterpolatePixel)
|
1250
|
+
ENUMERATOR(Average9InterpolatePixel)
|
1251
|
+
ENUMERATOR(Average16InterpolatePixel)
|
1252
|
+
ENUMERATOR(BlendInterpolatePixel)
|
1253
|
+
ENUMERATOR(BackgroundInterpolatePixel)
|
1254
|
+
ENUMERATOR(CatromInterpolatePixel)
|
1284
1255
|
END_ENUM
|
1285
1256
|
|
1286
|
-
#if defined(HAVE_TYPE_MAGICKFUNCTION)
|
1287
1257
|
DEF_ENUM(MagickFunction)
|
1288
1258
|
ENUMERATOR(UndefinedFunction)
|
1289
1259
|
ENUMERATOR(PolynomialFunction)
|
1290
1260
|
ENUMERATOR(SinusoidFunction)
|
1291
|
-
#if defined(HAVE_ENUM_ARCSINFUNCTION)
|
1292
1261
|
ENUMERATOR(ArcsinFunction)
|
1293
|
-
#endif
|
1294
|
-
#if defined(HAVE_ENUM_ARCTANFUNCTION)
|
1295
1262
|
ENUMERATOR(ArctanFunction)
|
1296
|
-
#endif
|
1297
1263
|
END_ENUM
|
1298
|
-
#endif
|
1299
1264
|
|
1300
|
-
#if defined(HAVE_TYPE_IMAGELAYERMETHOD)
|
1301
1265
|
DEF_ENUM(ImageLayerMethod)
|
1302
|
-
#else
|
1303
|
-
DEF_ENUM(MagickLayerMethod)
|
1304
|
-
#endif
|
1305
1266
|
ENUMERATOR(UndefinedLayer)
|
1306
1267
|
ENUMERATOR(CompareAnyLayer)
|
1307
1268
|
ENUMERATOR(CompareClearLayer)
|
@@ -1311,24 +1272,14 @@ Init_RMagick2(void)
|
|
1311
1272
|
ENUMERATOR(CoalesceLayer)
|
1312
1273
|
ENUMERATOR(DisposeLayer)
|
1313
1274
|
ENUMERATOR(OptimizeTransLayer)
|
1314
|
-
#if defined(HAVE_ENUM_OPTIMIZEIMAGELAYER)
|
1315
1275
|
ENUMERATOR(OptimizeImageLayer)
|
1316
|
-
#endif
|
1317
1276
|
ENUMERATOR(RemoveDupsLayer)
|
1318
1277
|
ENUMERATOR(RemoveZeroLayer)
|
1319
1278
|
ENUMERATOR(CompositeLayer)
|
1320
|
-
#if defined(HAVE_ENUM_MERGELAYER)
|
1321
1279
|
ENUMERATOR(MergeLayer)
|
1322
|
-
#endif
|
1323
|
-
#if defined(HAVE_ENUM_MOSAICLAYER)
|
1324
1280
|
ENUMERATOR(MosaicLayer)
|
1325
|
-
#endif
|
1326
|
-
#if defined(HAVE_ENUM_FLATTENLAYER)
|
1327
1281
|
ENUMERATOR(FlattenLayer)
|
1328
|
-
#endif
|
1329
|
-
#if defined(HAVE_ENUM_TRIMBOUNDSLAYER)
|
1330
1282
|
ENUMERATOR(TrimBoundsLayer)
|
1331
|
-
#endif
|
1332
1283
|
END_ENUM
|
1333
1284
|
|
1334
1285
|
DEF_ENUM(MetricType)
|
@@ -1340,6 +1291,12 @@ Init_RMagick2(void)
|
|
1340
1291
|
ENUMERATOR(PeakAbsoluteErrorMetric)
|
1341
1292
|
ENUMERATOR(PeakSignalToNoiseRatioMetric)
|
1342
1293
|
ENUMERATOR(RootMeanSquaredErrorMetric)
|
1294
|
+
ENUMERATOR(NormalizedCrossCorrelationErrorMetric)
|
1295
|
+
ENUMERATOR(FuzzErrorMetric)
|
1296
|
+
#if defined(IMAGEMAGICK_GREATER_THAN_EQUAL_6_8_9)
|
1297
|
+
ENUMERATOR(UndefinedErrorMetric)
|
1298
|
+
ENUMERATOR(PerceptualHashErrorMetric)
|
1299
|
+
#endif
|
1343
1300
|
END_ENUM
|
1344
1301
|
|
1345
1302
|
// NoiseType constants
|
@@ -1422,47 +1379,27 @@ Init_RMagick2(void)
|
|
1422
1379
|
ENUMERATOR(RShiftQuantumOperator)
|
1423
1380
|
ENUMERATOR(SubtractQuantumOperator)
|
1424
1381
|
ENUMERATOR(XorQuantumOperator)
|
1425
|
-
#if defined(HAVE_ENUM_POWEVALUATEOPERATOR)
|
1426
1382
|
ENUMERATOR(PowQuantumOperator)
|
1427
|
-
#endif
|
1428
|
-
#if defined(HAVE_ENUM_LOGEVALUATEOPERATOR)
|
1429
1383
|
ENUMERATOR(LogQuantumOperator)
|
1430
|
-
#endif
|
1431
|
-
#if defined(HAVE_ENUM_THRESHOLDEVALUATEOPERATOR)
|
1432
1384
|
ENUMERATOR(ThresholdQuantumOperator)
|
1433
|
-
#endif
|
1434
|
-
#if defined(HAVE_ENUM_THRESHOLDBLACKEVALUATEOPERATOR)
|
1435
1385
|
ENUMERATOR(ThresholdBlackQuantumOperator)
|
1436
|
-
#endif
|
1437
|
-
#if defined(HAVE_ENUM_THRESHOLDWHITEEVALUATEOPERATOR)
|
1438
1386
|
ENUMERATOR(ThresholdWhiteQuantumOperator)
|
1439
|
-
#endif
|
1440
|
-
#if defined(HAVE_ENUM_GAUSSIANNOISEEVALUATEOPERATOR)
|
1441
1387
|
ENUMERATOR(GaussianNoiseQuantumOperator)
|
1442
|
-
#endif
|
1443
|
-
#if defined(HAVE_ENUM_IMPULSENOISEEVALUATEOPERATOR)
|
1444
1388
|
ENUMERATOR(ImpulseNoiseQuantumOperator)
|
1445
|
-
#endif
|
1446
|
-
#if defined(HAVE_ENUM_LAPLACIANNOISEEVALUATEOPERATOR)
|
1447
1389
|
ENUMERATOR(LaplacianNoiseQuantumOperator)
|
1448
|
-
#endif
|
1449
|
-
#if defined(HAVE_ENUM_MULTIPLICATIVENOISEEVALUATEOPERATOR)
|
1450
1390
|
ENUMERATOR(MultiplicativeNoiseQuantumOperator)
|
1451
|
-
#endif
|
1452
|
-
#if defined(HAVE_ENUM_POISSONNOISEEVALUATEOPERATOR)
|
1453
1391
|
ENUMERATOR(PoissonNoiseQuantumOperator)
|
1454
|
-
#endif
|
1455
|
-
#if defined(HAVE_ENUM_UNIFORMNOISEEVALUATEOPERATOR)
|
1456
1392
|
ENUMERATOR(UniformNoiseQuantumOperator)
|
1457
|
-
#endif
|
1458
|
-
#if defined(HAVE_ENUM_COSINEEVALUATEOPERATOR)
|
1459
1393
|
ENUMERATOR(CosineQuantumOperator)
|
1460
|
-
#endif
|
1461
|
-
#if defined(HAVE_ENUM_SINEEVALUATEOPERATOR)
|
1462
1394
|
ENUMERATOR(SineQuantumOperator)
|
1463
|
-
#endif
|
1464
|
-
#if defined(HAVE_ENUM_ADDMODULUSEVALUATEOPERATOR)
|
1465
1395
|
ENUMERATOR(AddModulusQuantumOperator)
|
1396
|
+
ENUMERATOR(MeanQuantumOperator)
|
1397
|
+
ENUMERATOR(AbsQuantumOperator)
|
1398
|
+
ENUMERATOR(ExponentialQuantumOperator)
|
1399
|
+
ENUMERATOR(MedianQuantumOperator)
|
1400
|
+
ENUMERATOR(SumQuantumOperator)
|
1401
|
+
#if defined(IMAGEMAGICK_GREATER_THAN_EQUAL_6_8_9)
|
1402
|
+
ENUMERATOR(RootMeanSquareQuantumOperator)
|
1466
1403
|
#endif
|
1467
1404
|
END_ENUM
|
1468
1405
|
|
@@ -1482,7 +1419,6 @@ Init_RMagick2(void)
|
|
1482
1419
|
ENUMERATOR(PixelsPerCentimeterResolution)
|
1483
1420
|
END_ENUM
|
1484
1421
|
|
1485
|
-
#if defined(HAVE_SPARSECOLORIMAGE)
|
1486
1422
|
DEF_ENUM(SparseColorMethod)
|
1487
1423
|
ENUMERATOR(UndefinedColorInterpolate)
|
1488
1424
|
ENUMERATOR(BarycentricColorInterpolate)
|
@@ -1490,8 +1426,8 @@ Init_RMagick2(void)
|
|
1490
1426
|
//ENUMERATOR(PolynomialColorInterpolate)
|
1491
1427
|
ENUMERATOR(ShepardsColorInterpolate)
|
1492
1428
|
ENUMERATOR(VoronoiColorInterpolate)
|
1429
|
+
ENUMERATOR(InverseColorInterpolate)
|
1493
1430
|
END_ENUM
|
1494
|
-
#endif
|
1495
1431
|
|
1496
1432
|
// SpreadMethod
|
1497
1433
|
DEF_ENUM(SpreadMethod)
|
@@ -1550,21 +1486,11 @@ Init_RMagick2(void)
|
|
1550
1486
|
ENUMERATOR(BlackVirtualPixelMethod)
|
1551
1487
|
ENUMERATOR(GrayVirtualPixelMethod)
|
1552
1488
|
ENUMERATOR(WhiteVirtualPixelMethod)
|
1553
|
-
#if defined(HAVE_ENUM_HORIZONTALTILEVIRTUALPIXELMETHOD)
|
1554
1489
|
ENUMERATOR(HorizontalTileVirtualPixelMethod)
|
1555
|
-
#endif
|
1556
|
-
#if defined(HAVE_ENUM_VERTICALTILEVIRTUALPIXELMETHOD)
|
1557
1490
|
ENUMERATOR(VerticalTileVirtualPixelMethod)
|
1558
|
-
#endif
|
1559
|
-
#if defined(HAVE_ENUM_HORIZONTALTILEEDGEVIRTUALPIXELMETHOD)
|
1560
1491
|
ENUMERATOR(HorizontalTileEdgeVirtualPixelMethod)
|
1561
|
-
#endif
|
1562
|
-
#if defined(HAVE_ENUM_VERTICALTILEEDGEVIRTUALPIXELMETHOD)
|
1563
1492
|
ENUMERATOR(VerticalTileEdgeVirtualPixelMethod)
|
1564
|
-
#endif
|
1565
|
-
#if defined(HAVE_ENUM_CHECKERTILEVIRTUALPIXELMETHOD)
|
1566
1493
|
ENUMERATOR(CheckerTileVirtualPixelMethod)
|
1567
|
-
#endif
|
1568
1494
|
END_ENUM
|
1569
1495
|
// WeightType constants
|
1570
1496
|
DEF_ENUM(WeightType)
|
@@ -1577,9 +1503,34 @@ Init_RMagick2(void)
|
|
1577
1503
|
|
1578
1504
|
// For KernelInfo scaling
|
1579
1505
|
DEF_ENUM(GeometryFlags)
|
1506
|
+
ENUMERATOR(NoValue)
|
1507
|
+
ENUMERATOR(XValue)
|
1508
|
+
ENUMERATOR(XiValue)
|
1509
|
+
ENUMERATOR(YValue)
|
1510
|
+
ENUMERATOR(PsiValue)
|
1511
|
+
ENUMERATOR(WidthValue)
|
1512
|
+
ENUMERATOR(RhoValue)
|
1513
|
+
ENUMERATOR(HeightValue)
|
1514
|
+
ENUMERATOR(SigmaValue)
|
1515
|
+
ENUMERATOR(ChiValue)
|
1516
|
+
ENUMERATOR(XiNegative)
|
1517
|
+
ENUMERATOR(XNegative)
|
1518
|
+
ENUMERATOR(PsiNegative)
|
1519
|
+
ENUMERATOR(YNegative)
|
1520
|
+
ENUMERATOR(ChiNegative)
|
1521
|
+
ENUMERATOR(PercentValue)
|
1522
|
+
ENUMERATOR(AspectValue)
|
1580
1523
|
ENUMERATOR(NormalizeValue)
|
1524
|
+
ENUMERATOR(LessValue)
|
1525
|
+
ENUMERATOR(GreaterValue)
|
1526
|
+
ENUMERATOR(MinimumValue)
|
1581
1527
|
ENUMERATOR(CorrelateNormalizeValue)
|
1582
|
-
ENUMERATOR(
|
1528
|
+
ENUMERATOR(AreaValue)
|
1529
|
+
ENUMERATOR(DecimalValue)
|
1530
|
+
#if defined(IMAGEMAGICK_GREATER_THAN_EQUAL_6_8_9)
|
1531
|
+
ENUMERATOR(SeparatorValue)
|
1532
|
+
#endif
|
1533
|
+
ENUMERATOR(AllValues)
|
1583
1534
|
END_ENUM
|
1584
1535
|
|
1585
1536
|
// Morphology methods
|
@@ -1606,6 +1557,7 @@ Init_RMagick2(void)
|
|
1606
1557
|
ENUMERATOR(ThinningMorphology)
|
1607
1558
|
ENUMERATOR(ThickenMorphology)
|
1608
1559
|
ENUMERATOR(VoronoiMorphology)
|
1560
|
+
ENUMERATOR(IterativeDistanceMorphology)
|
1609
1561
|
END_ENUM
|
1610
1562
|
|
1611
1563
|
DEF_ENUM(KernelInfoType)
|
@@ -1646,6 +1598,9 @@ Init_RMagick2(void)
|
|
1646
1598
|
ENUMERATOR(OctagonalKernel)
|
1647
1599
|
ENUMERATOR(EuclideanKernel)
|
1648
1600
|
ENUMERATOR(UserDefinedKernel)
|
1601
|
+
#if defined(IMAGEMAGICK_GREATER_THAN_EQUAL_6_8_9)
|
1602
|
+
ENUMERATOR(BinomialKernel)
|
1603
|
+
#endif
|
1649
1604
|
END_ENUM
|
1650
1605
|
|
1651
1606
|
/*-----------------------------------------------------------------------*/
|
@@ -1817,18 +1772,8 @@ features_constant(void)
|
|
1817
1772
|
{
|
1818
1773
|
VALUE features;
|
1819
1774
|
|
1820
|
-
#if defined(HAVE_GETMAGICKFEATURES)
|
1821
1775
|
// 6.5.7 - latest (7.0.0)
|
1822
1776
|
features = rb_str_new2(GetMagickFeatures());
|
1823
|
-
#elif defined(MagickFeatures)
|
1824
|
-
// 6.5.7 - latest (7.0.0)
|
1825
|
-
features = rb_str_new2(MagickFeatures);
|
1826
|
-
#elif defined(MagickSupport)
|
1827
|
-
// 6.5.5 - 6.5.6
|
1828
|
-
features = rb_str_new2(MagickSupport);
|
1829
|
-
#else
|
1830
|
-
features = rb_str_new("unknown", 7);
|
1831
|
-
#endif
|
1832
1777
|
|
1833
1778
|
rb_obj_freeze(features);
|
1834
1779
|
rb_define_const(Module_Magick, "Magick_features", features);
|