rmagick 3.1.0 → 3.2.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.
- checksums.yaml +4 -4
- data/.appveyor.yml +4 -4
- data/.circleci/config.yml +1 -1
- data/.gitignore +1 -0
- data/.rubocop_todo.yml +6 -0
- data/.travis.yml +26 -8
- data/CHANGELOG.md +104 -0
- data/before_install_linux.sh +19 -10
- data/benchmarks/memory/README.md +50 -0
- data/benchmarks/memory/image_new.rb +8 -0
- data/benchmarks/memory/rmagick.gnuplot +16 -0
- data/doc/ex/coalesce.rb +2 -2
- data/doc/ex/drawcomp.rb +3 -3
- data/doc/ex/get_pixels.rb +1 -1
- data/doc/ex/images/Coffee.png +0 -0
- data/doc/ex/images/No.png +0 -0
- data/doc/ex/images/Snake.png +0 -0
- data/doc/ex/implode.rb +2 -2
- data/doc/ex/mask.rb +1 -1
- data/doc/ex/matte_fill_to_border.rb +1 -1
- data/doc/ex/matte_floodfill.rb +1 -1
- data/doc/ex/matte_replace.rb +1 -1
- data/doc/ex/stegano.rb +1 -1
- data/examples/constitute.rb +1 -1
- data/examples/crop_with_gravity.rb +1 -1
- data/examples/demo.rb +4 -4
- data/examples/find_similar_region.rb +1 -1
- data/examples/histogram.rb +3 -3
- data/examples/identify.rb +46 -46
- data/examples/image_opacity.rb +2 -2
- data/examples/vignette.rb +3 -3
- data/ext/RMagick/extconf.rb +19 -15
- data/ext/RMagick/rmagick.c +1 -2
- data/ext/RMagick/rmagick.h +59 -30
- data/ext/RMagick/rmdraw.c +62 -274
- data/ext/RMagick/rmenum.c +121 -665
- data/ext/RMagick/rmfill.c +7 -7
- data/ext/RMagick/rmilist.c +91 -7
- data/ext/RMagick/rmimage.c +568 -379
- data/ext/RMagick/rminfo.c +152 -110
- data/ext/RMagick/rmkinfo.c +17 -1
- data/ext/RMagick/rmmain.c +75 -74
- data/ext/RMagick/rmmontage.c +33 -33
- data/ext/RMagick/rmpixel.c +75 -14
- data/ext/RMagick/rmstruct.c +5 -5
- data/ext/RMagick/rmutil.c +3 -13
- data/lib/obsolete.rb +66 -0
- data/lib/rmagick/version.rb +1 -1
- data/lib/rmagick_internal.rb +54 -41
- data/spec/rmagick/image/composite_spec.rb +5 -76
- data/spec/rmagick/image/properties_spec.rb +1 -1
- data/test/Draw.rb +52 -115
- data/test/Enum.rb +153 -1
- data/test/Fill.rb +1 -1
- data/test/Image1.rb +97 -43
- data/test/Image2.rb +140 -36
- data/test/Image3.rb +110 -120
- data/test/ImageList1.rb +46 -11
- data/test/ImageList2.rb +11 -21
- data/test/Image_attributes.rb +81 -127
- data/test/Import_Export.rb +2 -2
- data/test/Info.rb +5 -1
- data/test/KernelInfo.rb +67 -0
- data/test/Magick.rb +17 -35
- data/test/Pixel.rb +193 -24
- data/test/PolaroidOptions.rb +1 -1
- data/test/Preview.rb +3 -35
- data/test/Struct.rb +45 -0
- data/test/appearance/Montage.rb +26 -0
- data/test/appearance/appearance_assertion.rb +13 -0
- data/test/appearance/expected/montage_border_color.jpg +0 -0
- data/test/lib/Obsolete.rb +30 -0
- data/test/lib/internal/Draw.rb +823 -0
- data/test/lib/internal/Geometry.rb +98 -0
- data/test/lib/internal/Magick.rb +40 -0
- data/test/test_all_basic.rb +16 -17
- metadata +27 -5
- data/doc/ex/images/Coffee.wmf +0 -0
- data/doc/ex/images/No.wmf +0 -0
- data/doc/ex/images/Snake.wmf +0 -0
data/ext/RMagick/rmkinfo.c
CHANGED
@@ -58,8 +58,10 @@ KernelInfo_initialize(VALUE self, VALUE kernel_string)
|
|
58
58
|
|
59
59
|
kernel = AcquireKernelInfo(StringValueCStr(kernel_string));
|
60
60
|
|
61
|
-
if (kernel
|
61
|
+
if (!kernel)
|
62
|
+
{
|
62
63
|
rb_raise(rb_eRuntimeError, "failed to parse kernel string");
|
64
|
+
}
|
63
65
|
|
64
66
|
DATA_PTR(self) = kernel;
|
65
67
|
|
@@ -75,6 +77,10 @@ KernelInfo_initialize(VALUE self, VALUE kernel_string)
|
|
75
77
|
* @param self this object
|
76
78
|
* @deprecated This method has been deprecated.
|
77
79
|
*/
|
80
|
+
|
81
|
+
/* ZeroKernelNans() is private function in ImageMagick. */
|
82
|
+
MagickExport void ZeroKernelNans(KernelInfo *kernel);
|
83
|
+
|
78
84
|
VALUE
|
79
85
|
KernelInfo_zero_nans(VALUE self)
|
80
86
|
{
|
@@ -92,6 +98,10 @@ KernelInfo_zero_nans(VALUE self)
|
|
92
98
|
* @param self this object
|
93
99
|
* @param scale scale to add
|
94
100
|
*/
|
101
|
+
|
102
|
+
/* UnityAddKernelInfo() was private function until IM 6.9 */
|
103
|
+
MagickExport void UnityAddKernelInfo(KernelInfo *kernel, const double scale);
|
104
|
+
|
95
105
|
VALUE
|
96
106
|
KernelInfo_unity_add(VALUE self, VALUE scale)
|
97
107
|
{
|
@@ -131,6 +141,10 @@ KernelInfo_show(VALUE self)
|
|
131
141
|
* and/or Magick::PercentValue
|
132
142
|
* @param self this object
|
133
143
|
*/
|
144
|
+
|
145
|
+
/* ScaleKernelInfo() was private function until IM 6.9 */
|
146
|
+
MagickExport void ScaleKernelInfo(KernelInfo *kernel, const double scaling_factor,const GeometryFlags normalize_flags);
|
147
|
+
|
134
148
|
VALUE
|
135
149
|
KernelInfo_scale(VALUE self, VALUE scale, VALUE flags)
|
136
150
|
{
|
@@ -246,7 +260,9 @@ KernelInfo_builtin(VALUE self, VALUE what, VALUE geometry)
|
|
246
260
|
kernel = AcquireKernelBuiltIn(kernel_type, &info);
|
247
261
|
|
248
262
|
if (!kernel)
|
263
|
+
{
|
249
264
|
rb_raise(rb_eRuntimeError, "failed to acquire builtin kernel");
|
265
|
+
}
|
250
266
|
|
251
267
|
return Data_Wrap_Struct(self, NULL, rm_kernel_info_destroy, kernel);
|
252
268
|
}
|
data/ext/RMagick/rmmain.c
CHANGED
@@ -62,17 +62,7 @@ static void features_constant(void);
|
|
62
62
|
*/
|
63
63
|
static void *rm_malloc(size_t size)
|
64
64
|
{
|
65
|
-
|
66
|
-
// int old_state;
|
67
|
-
|
68
|
-
// old_state = rb_gc_disable();
|
69
|
-
p = xmalloc((long)size);
|
70
|
-
// if (!RTEST(old_state))
|
71
|
-
// {
|
72
|
-
// rb_gc_enable();
|
73
|
-
// }
|
74
|
-
|
75
|
-
return p;
|
65
|
+
return xmalloc((long)size);
|
76
66
|
}
|
77
67
|
|
78
68
|
|
@@ -89,17 +79,7 @@ static void *rm_malloc(size_t size)
|
|
89
79
|
*/
|
90
80
|
static void *rm_realloc(void *ptr, size_t size)
|
91
81
|
{
|
92
|
-
|
93
|
-
// int old_state;
|
94
|
-
|
95
|
-
// old_state = rb_gc_disable();
|
96
|
-
p = xrealloc(ptr, (long)size);
|
97
|
-
// if (!RTEST(old_state))
|
98
|
-
// {
|
99
|
-
// rb_gc_enable();
|
100
|
-
// }
|
101
|
-
|
102
|
-
return p;
|
82
|
+
return xrealloc(ptr, (long)size);
|
103
83
|
}
|
104
84
|
|
105
85
|
|
@@ -123,20 +103,37 @@ static void rm_free(void *ptr)
|
|
123
103
|
*
|
124
104
|
* No Ruby usage (internal function)
|
125
105
|
*/
|
126
|
-
static void
|
106
|
+
static inline void managed_memory_enable(VALUE enable)
|
127
107
|
{
|
128
|
-
|
129
|
-
|
130
|
-
if (RTEST(rb_const_defined(rb_cObject, enable_mm)) && RTEST(rb_const_get(rb_cObject, enable_mm)))
|
108
|
+
if (enable)
|
131
109
|
{
|
132
|
-
rb_warning("RMagick: %s", "managed memory enabled. This is an experimental feature.");
|
133
110
|
SetMagickMemoryMethods(rm_malloc, rm_realloc, rm_free);
|
134
|
-
rb_define_const(Module_Magick, "MANAGED_MEMORY", Qtrue);
|
135
111
|
}
|
136
|
-
|
112
|
+
rb_define_const(Module_Magick, "MANAGED_MEMORY", enable);
|
113
|
+
}
|
114
|
+
|
115
|
+
static void set_managed_memory(void)
|
116
|
+
{
|
117
|
+
char *disable = getenv("RMAGICK_DISABLE_MANAGED_MEMORY");
|
118
|
+
|
119
|
+
if (disable)
|
137
120
|
{
|
138
|
-
|
121
|
+
managed_memory_enable(Qfalse);
|
122
|
+
return;
|
139
123
|
}
|
124
|
+
|
125
|
+
#if defined(_WIN32)
|
126
|
+
#if defined(IMAGEMAGICK_GREATER_THAN_EQUAL_6_9_0)
|
127
|
+
managed_memory_enable(Qtrue);
|
128
|
+
#else
|
129
|
+
// Disable managed memory feature with ImageMagick 6.8.x or below because causes crash.
|
130
|
+
// Refer https://ci.appveyor.com/project/mockdeep/rmagick/builds/24706171
|
131
|
+
managed_memory_enable(Qfalse);
|
132
|
+
#endif
|
133
|
+
#else
|
134
|
+
// Not Windows
|
135
|
+
managed_memory_enable(Qtrue);
|
136
|
+
#endif
|
140
137
|
}
|
141
138
|
|
142
139
|
|
@@ -152,14 +149,14 @@ Init_RMagick2(void)
|
|
152
149
|
{
|
153
150
|
VALUE observable;
|
154
151
|
|
155
|
-
MagickCoreGenesis("RMagick", MagickFalse);
|
156
|
-
|
157
|
-
test_Magick_version();
|
158
|
-
|
159
152
|
Module_Magick = rb_define_module("Magick");
|
160
153
|
|
161
154
|
set_managed_memory();
|
162
155
|
|
156
|
+
MagickCoreGenesis("RMagick", MagickFalse);
|
157
|
+
|
158
|
+
test_Magick_version();
|
159
|
+
|
163
160
|
/*-----------------------------------------------------------------------*/
|
164
161
|
/* Create IDs for frequently used methods, etc. */
|
165
162
|
/*-----------------------------------------------------------------------*/
|
@@ -419,7 +416,7 @@ Init_RMagick2(void)
|
|
419
416
|
rb_define_method(Class_Image, "marshal_dump", Image_marshal_dump, 0);
|
420
417
|
rb_define_method(Class_Image, "marshal_load", Image_marshal_load, 1);
|
421
418
|
rb_define_method(Class_Image, "mask", Image_mask, -1);
|
422
|
-
rb_define_method(Class_Image, "matte_flood_fill", Image_matte_flood_fill,
|
419
|
+
rb_define_method(Class_Image, "matte_flood_fill", Image_matte_flood_fill, -1);
|
423
420
|
rb_define_method(Class_Image, "median_filter", Image_median_filter, -1);
|
424
421
|
rb_define_method(Class_Image, "minify", Image_minify, 0);
|
425
422
|
rb_define_method(Class_Image, "minify!", Image_minify_bang, 0);
|
@@ -527,6 +524,7 @@ Init_RMagick2(void)
|
|
527
524
|
rb_define_method(Class_ImageList, "append", ImageList_append, 1);
|
528
525
|
rb_define_method(Class_ImageList, "average", ImageList_average, 0);
|
529
526
|
rb_define_method(Class_ImageList, "coalesce", ImageList_coalesce, 0);
|
527
|
+
rb_define_method(Class_ImageList, "combine", ImageList_combine, -1);
|
530
528
|
rb_define_method(Class_ImageList, "composite_layers", ImageList_composite_layers, -1);
|
531
529
|
rb_define_method(Class_ImageList, "deconstruct", ImageList_deconstruct, 0);
|
532
530
|
rb_define_method(Class_ImageList, "display", ImageList_display, 0);
|
@@ -646,6 +644,7 @@ Init_RMagick2(void)
|
|
646
644
|
DCL_ATTR_ACCESSOR(Pixel, red)
|
647
645
|
DCL_ATTR_ACCESSOR(Pixel, green)
|
648
646
|
DCL_ATTR_ACCESSOR(Pixel, blue)
|
647
|
+
DCL_ATTR_ACCESSOR(Pixel, alpha)
|
649
648
|
DCL_ATTR_ACCESSOR(Pixel, opacity)
|
650
649
|
|
651
650
|
// Define the CMYK attributes
|
@@ -861,7 +860,9 @@ Init_RMagick2(void)
|
|
861
860
|
// Miscellaneous fixed-point constants
|
862
861
|
DEF_CONST(QuantumRange);
|
863
862
|
DEF_CONST(MAGICKCORE_QUANTUM_DEPTH);
|
863
|
+
DEF_CONSTV(OpaqueAlpha, QuantumRange);
|
864
864
|
DEF_CONST(OpaqueOpacity);
|
865
|
+
DEF_CONSTV(TransparentAlpha, 0);
|
865
866
|
DEF_CONST(TransparentOpacity);
|
866
867
|
|
867
868
|
version_constants();
|
@@ -892,8 +893,8 @@ Init_RMagick2(void)
|
|
892
893
|
ENUMERATOR(RightAlign)
|
893
894
|
END_ENUM
|
894
895
|
|
895
|
-
//
|
896
|
-
DEF_ENUM(
|
896
|
+
// AlphaChannelOption constants
|
897
|
+
DEF_ENUM(AlphaChannelOption)
|
897
898
|
ENUMERATOR(UndefinedAlphaChannel)
|
898
899
|
ENUMERATOR(ActivateAlphaChannel)
|
899
900
|
ENUMERATOR(DeactivateAlphaChannel)
|
@@ -1003,7 +1004,6 @@ Init_RMagick2(void)
|
|
1003
1004
|
|
1004
1005
|
// CompositeOperator constants
|
1005
1006
|
DEF_ENUM(CompositeOperator)
|
1006
|
-
ENUMERATOR(AddCompositeOp)
|
1007
1007
|
ENUMERATOR(AtopCompositeOp)
|
1008
1008
|
ENUMERATOR(BlendCompositeOp)
|
1009
1009
|
ENUMERATOR(BlurCompositeOp)
|
@@ -1019,13 +1019,13 @@ Init_RMagick2(void)
|
|
1019
1019
|
ENUMERATOR(CopyCyanCompositeOp)
|
1020
1020
|
ENUMERATOR(CopyGreenCompositeOp)
|
1021
1021
|
ENUMERATOR(CopyMagentaCompositeOp)
|
1022
|
-
|
1022
|
+
ENUMERATORV(CopyAlphaCompositeOp, CopyOpacityCompositeOp)
|
1023
1023
|
ENUMERATOR(CopyRedCompositeOp)
|
1024
1024
|
ENUMERATOR(CopyYellowCompositeOp)
|
1025
1025
|
ENUMERATOR(DarkenCompositeOp)
|
1026
1026
|
ENUMERATOR(DarkenIntensityCompositeOp)
|
1027
1027
|
ENUMERATOR(DistortCompositeOp)
|
1028
|
-
ENUMERATOR(
|
1028
|
+
ENUMERATOR(DivideDstCompositeOp)
|
1029
1029
|
ENUMERATOR(DivideSrcCompositeOp)
|
1030
1030
|
ENUMERATOR(DstAtopCompositeOp)
|
1031
1031
|
ENUMERATOR(DstCompositeOp)
|
@@ -1049,9 +1049,11 @@ Init_RMagick2(void)
|
|
1049
1049
|
ENUMERATOR(LinearLightCompositeOp)
|
1050
1050
|
ENUMERATOR(LuminizeCompositeOp)
|
1051
1051
|
ENUMERATOR(MathematicsCompositeOp)
|
1052
|
-
ENUMERATOR(
|
1052
|
+
ENUMERATOR(MinusDstCompositeOp)
|
1053
1053
|
ENUMERATOR(MinusSrcCompositeOp)
|
1054
1054
|
ENUMERATOR(ModulateCompositeOp)
|
1055
|
+
ENUMERATOR(ModulusAddCompositeOp)
|
1056
|
+
ENUMERATOR(ModulusSubtractCompositeOp)
|
1055
1057
|
ENUMERATOR(MultiplyCompositeOp)
|
1056
1058
|
ENUMERATOR(NoCompositeOp)
|
1057
1059
|
ENUMERATOR(OutCompositeOp)
|
@@ -1069,7 +1071,6 @@ Init_RMagick2(void)
|
|
1069
1071
|
ENUMERATOR(SrcInCompositeOp)
|
1070
1072
|
ENUMERATOR(SrcOutCompositeOp)
|
1071
1073
|
ENUMERATOR(SrcOverCompositeOp)
|
1072
|
-
ENUMERATOR(SubtractCompositeOp)
|
1073
1074
|
ENUMERATOR(ThresholdCompositeOp)
|
1074
1075
|
ENUMERATOR(UndefinedCompositeOp)
|
1075
1076
|
ENUMERATOR(VividLightCompositeOp)
|
@@ -1118,8 +1119,8 @@ Init_RMagick2(void)
|
|
1118
1119
|
ENUMERATOR(PreviousDispose)
|
1119
1120
|
END_ENUM
|
1120
1121
|
|
1121
|
-
//
|
1122
|
-
DEF_ENUM(
|
1122
|
+
// DistortMethod constants
|
1123
|
+
DEF_ENUM(DistortMethod)
|
1123
1124
|
ENUMERATOR(UndefinedDistortion)
|
1124
1125
|
ENUMERATOR(AffineDistortion)
|
1125
1126
|
ENUMERATOR(AffineProjectionDistortion)
|
@@ -1155,8 +1156,8 @@ Init_RMagick2(void)
|
|
1155
1156
|
ENUMERATOR(MSBEndian)
|
1156
1157
|
END_ENUM
|
1157
1158
|
|
1158
|
-
//
|
1159
|
-
DEF_ENUM(
|
1159
|
+
// FilterType constants
|
1160
|
+
DEF_ENUM(FilterType)
|
1160
1161
|
ENUMERATOR(UndefinedFilter)
|
1161
1162
|
ENUMERATOR(PointFilter)
|
1162
1163
|
ENUMERATOR(BoxFilter)
|
@@ -1214,15 +1215,15 @@ Init_RMagick2(void)
|
|
1214
1215
|
ENUMERATOR(UndefinedType)
|
1215
1216
|
ENUMERATOR(BilevelType)
|
1216
1217
|
ENUMERATOR(GrayscaleType)
|
1217
|
-
|
1218
|
+
ENUMERATORV(GrayscaleAlphaType, GrayscaleMatteType)
|
1218
1219
|
ENUMERATOR(PaletteType)
|
1219
|
-
|
1220
|
+
ENUMERATORV(PaletteAlphaType, PaletteMatteType)
|
1220
1221
|
ENUMERATOR(TrueColorType)
|
1221
|
-
|
1222
|
+
ENUMERATORV(TrueColorAlphaType, TrueColorMatteType)
|
1222
1223
|
ENUMERATOR(ColorSeparationType)
|
1223
|
-
|
1224
|
+
ENUMERATORV(ColorSeparationAlphaType, ColorSeparationMatteType)
|
1224
1225
|
ENUMERATOR(OptimizeType)
|
1225
|
-
|
1226
|
+
ENUMERATORV(PaletteBilevelAlphaType, PaletteBilevelMatteType)
|
1226
1227
|
END_ENUM
|
1227
1228
|
|
1228
1229
|
// InterlaceType constants
|
@@ -1237,23 +1238,6 @@ Init_RMagick2(void)
|
|
1237
1238
|
ENUMERATOR(PNGInterlace)
|
1238
1239
|
END_ENUM
|
1239
1240
|
|
1240
|
-
DEF_ENUM(InterpolatePixelMethod)
|
1241
|
-
ENUMERATOR(UndefinedInterpolatePixel)
|
1242
|
-
ENUMERATOR(AverageInterpolatePixel)
|
1243
|
-
ENUMERATOR(BicubicInterpolatePixel)
|
1244
|
-
ENUMERATOR(BilinearInterpolatePixel)
|
1245
|
-
ENUMERATOR(FilterInterpolatePixel)
|
1246
|
-
ENUMERATOR(IntegerInterpolatePixel)
|
1247
|
-
ENUMERATOR(MeshInterpolatePixel)
|
1248
|
-
ENUMERATOR(NearestNeighborInterpolatePixel)
|
1249
|
-
ENUMERATOR(SplineInterpolatePixel)
|
1250
|
-
ENUMERATOR(Average9InterpolatePixel)
|
1251
|
-
ENUMERATOR(Average16InterpolatePixel)
|
1252
|
-
ENUMERATOR(BlendInterpolatePixel)
|
1253
|
-
ENUMERATOR(BackgroundInterpolatePixel)
|
1254
|
-
ENUMERATOR(CatromInterpolatePixel)
|
1255
|
-
END_ENUM
|
1256
|
-
|
1257
1241
|
DEF_ENUM(MagickFunction)
|
1258
1242
|
ENUMERATOR(UndefinedFunction)
|
1259
1243
|
ENUMERATOR(PolynomialFunction)
|
@@ -1262,7 +1246,7 @@ Init_RMagick2(void)
|
|
1262
1246
|
ENUMERATOR(ArctanFunction)
|
1263
1247
|
END_ENUM
|
1264
1248
|
|
1265
|
-
DEF_ENUM(
|
1249
|
+
DEF_ENUM(LayerMethod)
|
1266
1250
|
ENUMERATOR(UndefinedLayer)
|
1267
1251
|
ENUMERATOR(CompareAnyLayer)
|
1268
1252
|
ENUMERATOR(CompareClearLayer)
|
@@ -1283,18 +1267,17 @@ Init_RMagick2(void)
|
|
1283
1267
|
END_ENUM
|
1284
1268
|
|
1285
1269
|
DEF_ENUM(MetricType)
|
1286
|
-
|
1270
|
+
ENUMERATORV(UndefinedErrorMetric, UndefinedMetric)
|
1287
1271
|
ENUMERATOR(AbsoluteErrorMetric)
|
1288
1272
|
ENUMERATOR(MeanAbsoluteErrorMetric)
|
1289
|
-
|
1273
|
+
ENUMERATORV(MeanErrorPerPixelErrorMetric, MeanErrorPerPixelMetric)
|
1290
1274
|
ENUMERATOR(MeanSquaredErrorMetric)
|
1291
1275
|
ENUMERATOR(PeakAbsoluteErrorMetric)
|
1292
|
-
|
1276
|
+
ENUMERATORV(PeakSignalToNoiseRatioErrorMetric, PeakSignalToNoiseRatioMetric)
|
1293
1277
|
ENUMERATOR(RootMeanSquaredErrorMetric)
|
1294
1278
|
ENUMERATOR(NormalizedCrossCorrelationErrorMetric)
|
1295
1279
|
ENUMERATOR(FuzzErrorMetric)
|
1296
1280
|
#if defined(IMAGEMAGICK_GREATER_THAN_EQUAL_6_8_9)
|
1297
|
-
ENUMERATOR(UndefinedErrorMetric)
|
1298
1281
|
ENUMERATOR(PerceptualHashErrorMetric)
|
1299
1282
|
#endif
|
1300
1283
|
END_ENUM
|
@@ -1332,6 +1315,24 @@ Init_RMagick2(void)
|
|
1332
1315
|
ENUMERATOR(ResetMethod)
|
1333
1316
|
END_ENUM
|
1334
1317
|
|
1318
|
+
// PixelInterpolateMethod constants
|
1319
|
+
DEF_ENUM(PixelInterpolateMethod)
|
1320
|
+
ENUMERATOR(UndefinedInterpolatePixel)
|
1321
|
+
ENUMERATOR(AverageInterpolatePixel)
|
1322
|
+
ENUMERATOR(BicubicInterpolatePixel)
|
1323
|
+
ENUMERATOR(BilinearInterpolatePixel)
|
1324
|
+
ENUMERATOR(FilterInterpolatePixel)
|
1325
|
+
ENUMERATOR(IntegerInterpolatePixel)
|
1326
|
+
ENUMERATOR(MeshInterpolatePixel)
|
1327
|
+
ENUMERATOR(NearestNeighborInterpolatePixel)
|
1328
|
+
ENUMERATOR(SplineInterpolatePixel)
|
1329
|
+
ENUMERATOR(Average9InterpolatePixel)
|
1330
|
+
ENUMERATOR(Average16InterpolatePixel)
|
1331
|
+
ENUMERATOR(BlendInterpolatePixel)
|
1332
|
+
ENUMERATOR(BackgroundInterpolatePixel)
|
1333
|
+
ENUMERATOR(CatromInterpolatePixel)
|
1334
|
+
END_ENUM
|
1335
|
+
|
1335
1336
|
// PreviewType
|
1336
1337
|
DEF_ENUM(PreviewType)
|
1337
1338
|
ENUMERATOR(UndefinedPreview)
|
@@ -1690,7 +1691,7 @@ Init_RMagick2(void)
|
|
1690
1691
|
static void
|
1691
1692
|
test_Magick_version(void)
|
1692
1693
|
{
|
1693
|
-
|
1694
|
+
size_t version_number;
|
1694
1695
|
const char *version_str;
|
1695
1696
|
int x, n;
|
1696
1697
|
ID bypass = rb_intern("RMAGICK_BYPASS_VERSION_TEST");
|
data/ext/RMagick/rmmontage.c
CHANGED
@@ -99,7 +99,7 @@ Montage_alloc(VALUE class)
|
|
99
99
|
*
|
100
100
|
* @param self this object
|
101
101
|
* @param color the color name
|
102
|
-
* @return
|
102
|
+
* @return color
|
103
103
|
*/
|
104
104
|
VALUE
|
105
105
|
Montage_background_color_eq(VALUE self, VALUE color)
|
@@ -108,7 +108,7 @@ Montage_background_color_eq(VALUE self, VALUE color)
|
|
108
108
|
|
109
109
|
Data_Get_Struct(self, Montage, montage);
|
110
110
|
Color_to_PixelColor(&montage->info->background_color, color);
|
111
|
-
return
|
111
|
+
return color;
|
112
112
|
}
|
113
113
|
|
114
114
|
|
@@ -120,7 +120,7 @@ Montage_background_color_eq(VALUE self, VALUE color)
|
|
120
120
|
*
|
121
121
|
* @param self this object
|
122
122
|
* @param color the color name
|
123
|
-
* @return
|
123
|
+
* @return color
|
124
124
|
*/
|
125
125
|
VALUE
|
126
126
|
Montage_border_color_eq(VALUE self, VALUE color)
|
@@ -129,7 +129,7 @@ Montage_border_color_eq(VALUE self, VALUE color)
|
|
129
129
|
|
130
130
|
Data_Get_Struct(self, Montage, montage);
|
131
131
|
Color_to_PixelColor(&montage->info->border_color, color);
|
132
|
-
return
|
132
|
+
return color;
|
133
133
|
}
|
134
134
|
|
135
135
|
|
@@ -141,7 +141,7 @@ Montage_border_color_eq(VALUE self, VALUE color)
|
|
141
141
|
*
|
142
142
|
* @param self this object
|
143
143
|
* @param width the width
|
144
|
-
* @return
|
144
|
+
* @return width
|
145
145
|
*/
|
146
146
|
VALUE
|
147
147
|
Montage_border_width_eq(VALUE self, VALUE width)
|
@@ -150,7 +150,7 @@ Montage_border_width_eq(VALUE self, VALUE width)
|
|
150
150
|
|
151
151
|
Data_Get_Struct(self, Montage, montage);
|
152
152
|
montage->info->border_width = NUM2ULONG(width);
|
153
|
-
return
|
153
|
+
return width;
|
154
154
|
}
|
155
155
|
|
156
156
|
|
@@ -162,7 +162,7 @@ Montage_border_width_eq(VALUE self, VALUE width)
|
|
162
162
|
*
|
163
163
|
* @param self this object
|
164
164
|
* @param compose the composition operator
|
165
|
-
* @return
|
165
|
+
* @return compose
|
166
166
|
*/
|
167
167
|
VALUE
|
168
168
|
Montage_compose_eq(VALUE self, VALUE compose)
|
@@ -171,7 +171,7 @@ Montage_compose_eq(VALUE self, VALUE compose)
|
|
171
171
|
|
172
172
|
Data_Get_Struct(self, Montage, montage);
|
173
173
|
VALUE_TO_ENUM(compose, montage->compose, CompositeOperator);
|
174
|
-
return
|
174
|
+
return compose;
|
175
175
|
}
|
176
176
|
|
177
177
|
|
@@ -183,7 +183,7 @@ Montage_compose_eq(VALUE self, VALUE compose)
|
|
183
183
|
*
|
184
184
|
* @param self this object
|
185
185
|
* @param filename the filename
|
186
|
-
* @return
|
186
|
+
* @return filename
|
187
187
|
*/
|
188
188
|
VALUE
|
189
189
|
Montage_filename_eq(VALUE self, VALUE filename)
|
@@ -192,7 +192,7 @@ Montage_filename_eq(VALUE self, VALUE filename)
|
|
192
192
|
|
193
193
|
Data_Get_Struct(self, Montage, montage);
|
194
194
|
strncpy(montage->info->filename, StringValuePtr(filename), MaxTextExtent-1);
|
195
|
-
return
|
195
|
+
return filename;
|
196
196
|
}
|
197
197
|
|
198
198
|
|
@@ -204,7 +204,7 @@ Montage_filename_eq(VALUE self, VALUE filename)
|
|
204
204
|
*
|
205
205
|
* @param self this object
|
206
206
|
* @param color the color name
|
207
|
-
* @return
|
207
|
+
* @return color
|
208
208
|
*/
|
209
209
|
VALUE
|
210
210
|
Montage_fill_eq(VALUE self, VALUE color)
|
@@ -213,7 +213,7 @@ Montage_fill_eq(VALUE self, VALUE color)
|
|
213
213
|
|
214
214
|
Data_Get_Struct(self, Montage, montage);
|
215
215
|
Color_to_PixelColor(&montage->info->fill, color);
|
216
|
-
return
|
216
|
+
return color;
|
217
217
|
}
|
218
218
|
|
219
219
|
|
@@ -225,7 +225,7 @@ Montage_fill_eq(VALUE self, VALUE color)
|
|
225
225
|
*
|
226
226
|
* @param self this object
|
227
227
|
* @param font the font name
|
228
|
-
* @return
|
228
|
+
* @return font
|
229
229
|
*/
|
230
230
|
VALUE
|
231
231
|
Montage_font_eq(VALUE self, VALUE font)
|
@@ -235,7 +235,7 @@ Montage_font_eq(VALUE self, VALUE font)
|
|
235
235
|
Data_Get_Struct(self, Montage, montage);
|
236
236
|
magick_clone_string(&montage->info->font, StringValuePtr(font));
|
237
237
|
|
238
|
-
return
|
238
|
+
return font;
|
239
239
|
}
|
240
240
|
|
241
241
|
|
@@ -252,7 +252,7 @@ Montage_font_eq(VALUE self, VALUE font)
|
|
252
252
|
*
|
253
253
|
* @param self this object
|
254
254
|
* @param frame_arg the frame geometry
|
255
|
-
* @return
|
255
|
+
* @return frame_arg
|
256
256
|
*/
|
257
257
|
VALUE
|
258
258
|
Montage_frame_eq(VALUE self, VALUE frame_arg)
|
@@ -266,7 +266,7 @@ Montage_frame_eq(VALUE self, VALUE frame_arg)
|
|
266
266
|
|
267
267
|
RB_GC_GUARD(frame);
|
268
268
|
|
269
|
-
return
|
269
|
+
return frame_arg;
|
270
270
|
}
|
271
271
|
|
272
272
|
|
@@ -278,7 +278,7 @@ Montage_frame_eq(VALUE self, VALUE frame_arg)
|
|
278
278
|
*
|
279
279
|
* @param self this object
|
280
280
|
* @param geometry_arg the geometry
|
281
|
-
* @return
|
281
|
+
* @return geometry_arg
|
282
282
|
*/
|
283
283
|
VALUE
|
284
284
|
Montage_geometry_eq(VALUE self, VALUE geometry_arg)
|
@@ -292,7 +292,7 @@ Montage_geometry_eq(VALUE self, VALUE geometry_arg)
|
|
292
292
|
|
293
293
|
RB_GC_GUARD(geometry);
|
294
294
|
|
295
|
-
return
|
295
|
+
return geometry_arg;
|
296
296
|
}
|
297
297
|
|
298
298
|
|
@@ -304,7 +304,7 @@ Montage_geometry_eq(VALUE self, VALUE geometry_arg)
|
|
304
304
|
*
|
305
305
|
* @param self this object
|
306
306
|
* @param gravity the gravity type
|
307
|
-
* @return
|
307
|
+
* @return gravity
|
308
308
|
*/
|
309
309
|
VALUE
|
310
310
|
Montage_gravity_eq(VALUE self, VALUE gravity)
|
@@ -313,7 +313,7 @@ Montage_gravity_eq(VALUE self, VALUE gravity)
|
|
313
313
|
|
314
314
|
Data_Get_Struct(self, Montage, montage);
|
315
315
|
VALUE_TO_ENUM(gravity, montage->info->gravity, GravityType);
|
316
|
-
return
|
316
|
+
return gravity;
|
317
317
|
}
|
318
318
|
|
319
319
|
|
@@ -342,7 +342,7 @@ Montage_initialize(VALUE self)
|
|
342
342
|
*
|
343
343
|
* @param self this object
|
344
344
|
* @param color the color name
|
345
|
-
* @return
|
345
|
+
* @return color
|
346
346
|
*/
|
347
347
|
VALUE
|
348
348
|
Montage_matte_color_eq(VALUE self, VALUE color)
|
@@ -351,7 +351,7 @@ Montage_matte_color_eq(VALUE self, VALUE color)
|
|
351
351
|
|
352
352
|
Data_Get_Struct(self, Montage, montage);
|
353
353
|
Color_to_PixelColor(&montage->info->matte_color, color);
|
354
|
-
return
|
354
|
+
return color;
|
355
355
|
}
|
356
356
|
|
357
357
|
|
@@ -363,7 +363,7 @@ Montage_matte_color_eq(VALUE self, VALUE color)
|
|
363
363
|
*
|
364
364
|
* @param self this object
|
365
365
|
* @param size the point size
|
366
|
-
* @return
|
366
|
+
* @return size
|
367
367
|
*/
|
368
368
|
VALUE
|
369
369
|
Montage_pointsize_eq(VALUE self, VALUE size)
|
@@ -372,7 +372,7 @@ Montage_pointsize_eq(VALUE self, VALUE size)
|
|
372
372
|
|
373
373
|
Data_Get_Struct(self, Montage, montage);
|
374
374
|
montage->info->pointsize = NUM2DBL(size);
|
375
|
-
return
|
375
|
+
return size;
|
376
376
|
}
|
377
377
|
|
378
378
|
|
@@ -384,7 +384,7 @@ Montage_pointsize_eq(VALUE self, VALUE size)
|
|
384
384
|
*
|
385
385
|
* @param self this object
|
386
386
|
* @param shadow the shadow
|
387
|
-
* @return
|
387
|
+
* @return shadow
|
388
388
|
*/
|
389
389
|
VALUE
|
390
390
|
Montage_shadow_eq(VALUE self, VALUE shadow)
|
@@ -393,7 +393,7 @@ Montage_shadow_eq(VALUE self, VALUE shadow)
|
|
393
393
|
|
394
394
|
Data_Get_Struct(self, Montage, montage);
|
395
395
|
montage->info->shadow = (MagickBooleanType) RTEST(shadow);
|
396
|
-
return
|
396
|
+
return shadow;
|
397
397
|
}
|
398
398
|
|
399
399
|
|
@@ -414,7 +414,7 @@ Montage_stroke_eq(VALUE self, VALUE color)
|
|
414
414
|
|
415
415
|
Data_Get_Struct(self, Montage, montage);
|
416
416
|
Color_to_PixelColor(&montage->info->stroke, color);
|
417
|
-
return
|
417
|
+
return color;
|
418
418
|
}
|
419
419
|
|
420
420
|
|
@@ -426,7 +426,7 @@ Montage_stroke_eq(VALUE self, VALUE color)
|
|
426
426
|
*
|
427
427
|
* @param self this object
|
428
428
|
* @param texture the texture image
|
429
|
-
* @return
|
429
|
+
* @return texture
|
430
430
|
*/
|
431
431
|
VALUE
|
432
432
|
Montage_texture_eq(VALUE self, VALUE texture)
|
@@ -453,7 +453,7 @@ Montage_texture_eq(VALUE self, VALUE texture)
|
|
453
453
|
rm_write_temp_image(texture_image, temp_name);
|
454
454
|
magick_clone_string(&montage->info->texture, temp_name);
|
455
455
|
|
456
|
-
return
|
456
|
+
return texture;
|
457
457
|
}
|
458
458
|
|
459
459
|
|
@@ -465,7 +465,7 @@ Montage_texture_eq(VALUE self, VALUE texture)
|
|
465
465
|
*
|
466
466
|
* @param self this object
|
467
467
|
* @param tile_arg the tile
|
468
|
-
* @return
|
468
|
+
* @return tile_arg
|
469
469
|
*/
|
470
470
|
VALUE
|
471
471
|
Montage_tile_eq(VALUE self, VALUE tile_arg)
|
@@ -479,7 +479,7 @@ Montage_tile_eq(VALUE self, VALUE tile_arg)
|
|
479
479
|
|
480
480
|
RB_GC_GUARD(tile);
|
481
481
|
|
482
|
-
return
|
482
|
+
return tile_arg;
|
483
483
|
}
|
484
484
|
|
485
485
|
|
@@ -491,7 +491,7 @@ Montage_tile_eq(VALUE self, VALUE tile_arg)
|
|
491
491
|
*
|
492
492
|
* @param self this object
|
493
493
|
* @param title the title
|
494
|
-
* @return
|
494
|
+
* @return title
|
495
495
|
*/
|
496
496
|
VALUE
|
497
497
|
Montage_title_eq(VALUE self, VALUE title)
|
@@ -500,7 +500,7 @@ Montage_title_eq(VALUE self, VALUE title)
|
|
500
500
|
|
501
501
|
Data_Get_Struct(self, Montage, montage);
|
502
502
|
magick_clone_string(&montage->info->title, StringValuePtr(title));
|
503
|
-
return
|
503
|
+
return title;
|
504
504
|
}
|
505
505
|
|
506
506
|
|