rmagick 3.2.0 → 4.3.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/.codeclimate.yml +63 -0
- data/.devcontainer/Dockerfile +14 -0
- data/.devcontainer/ImageMagick6/devcontainer.json +11 -0
- data/.devcontainer/devcontainer.json +11 -0
- data/.devcontainer/setup-repo.sh +10 -0
- data/.devcontainer/setup-user.sh +45 -0
- data/.editorconfig +3 -0
- data/.github/ISSUE_TEMPLATE.md +17 -0
- data/.github/workflows/ci.yml +79 -0
- data/.gitignore +3 -1
- data/.rspec +1 -0
- data/.rubocop.yml +24 -0
- data/.rubocop_todo.yml +151 -297
- data/.yardopts +5 -0
- data/CHANGELOG.md +233 -0
- data/CODE_OF_CONDUCT.md +122 -7
- data/CONTRIBUTING.md +14 -10
- data/README.md +326 -0
- data/Rakefile +16 -22
- data/before_install_linux.sh +22 -28
- data/before_install_osx.sh +57 -2
- data/ext/RMagick/extconf.rb +149 -105
- data/ext/RMagick/rmagick.c +77 -104
- data/ext/RMagick/rmagick.h +121 -103
- data/ext/RMagick/rmdraw.c +364 -436
- data/ext/RMagick/rmenum.c +106 -114
- data/ext/RMagick/rmfill.c +149 -70
- data/ext/RMagick/rmilist.c +225 -367
- data/ext/RMagick/rmimage.c +4751 -4405
- data/ext/RMagick/rminfo.c +574 -787
- data/ext/RMagick/rmkinfo.c +51 -121
- data/ext/RMagick/rmmain.c +454 -286
- data/ext/RMagick/rmmontage.c +64 -130
- data/ext/RMagick/rmpixel.c +488 -437
- data/ext/RMagick/rmstruct.c +83 -96
- data/ext/RMagick/rmutil.c +302 -214
- data/lib/rmagick/version.rb +1 -1
- data/lib/rmagick_internal.rb +138 -93
- data/lib/rvg/clippath.rb +2 -1
- data/lib/rvg/container.rb +10 -5
- data/lib/rvg/describable.rb +1 -1
- data/lib/rvg/embellishable.rb +5 -4
- data/lib/rvg/misc.rb +15 -12
- data/lib/rvg/paint.rb +2 -1
- data/lib/rvg/pathdata.rb +12 -11
- data/lib/rvg/rvg.rb +12 -8
- data/lib/rvg/stylable.rb +9 -7
- data/lib/rvg/text.rb +11 -6
- data/lib/rvg/transformable.rb +3 -2
- data/lib/rvg/units.rb +1 -1
- data/rmagick.gemspec +10 -11
- metadata +52 -423
- data/.appveyor.yml +0 -45
- data/.circleci/config.yml +0 -56
- data/.ruby-version +0 -1
- data/.simplecov +0 -27
- data/.travis.yml +0 -62
- data/Doxyfile +0 -1514
- data/README.textile +0 -259
- data/benchmarks/memory/README.md +0 -50
- data/benchmarks/memory/image_new.rb +0 -8
- data/benchmarks/memory/rmagick.gnuplot +0 -16
- data/doc/.cvsignore +0 -1
- data/doc/comtasks.html +0 -287
- data/doc/constants.html +0 -1581
- data/doc/css/doc.css +0 -299
- data/doc/css/popup.css +0 -34
- data/doc/css/ref.css +0 -67
- data/doc/draw.html +0 -3272
- data/doc/ex/InitialCoords.rb +0 -22
- data/doc/ex/NewCoordSys.rb +0 -30
- data/doc/ex/OrigCoordSys.rb +0 -16
- data/doc/ex/PreserveAspectRatio.rb +0 -204
- data/doc/ex/RotateScale.rb +0 -36
- data/doc/ex/Skew.rb +0 -38
- data/doc/ex/Use01.rb +0 -15
- data/doc/ex/Use02.rb +0 -20
- data/doc/ex/Use03.rb +0 -16
- data/doc/ex/ViewBox.rb +0 -31
- data/doc/ex/adaptive_threshold.rb +0 -9
- data/doc/ex/add_noise.rb +0 -16
- data/doc/ex/affine.rb +0 -48
- data/doc/ex/affine_transform.rb +0 -20
- data/doc/ex/arc.rb +0 -49
- data/doc/ex/arcpath.rb +0 -32
- data/doc/ex/arcs01.rb +0 -28
- data/doc/ex/arcs02.rb +0 -59
- data/doc/ex/average.rb +0 -15
- data/doc/ex/axes.rb +0 -64
- data/doc/ex/baseline_shift01.rb +0 -17
- data/doc/ex/bilevel_channel.rb +0 -8
- data/doc/ex/blur_image.rb +0 -12
- data/doc/ex/border.rb +0 -10
- data/doc/ex/bounding_box.rb +0 -42
- data/doc/ex/cbezier1.rb +0 -41
- data/doc/ex/cbezier2.rb +0 -41
- data/doc/ex/cbezier3.rb +0 -41
- data/doc/ex/cbezier4.rb +0 -42
- data/doc/ex/cbezier5.rb +0 -42
- data/doc/ex/cbezier6.rb +0 -53
- data/doc/ex/channel.rb +0 -25
- data/doc/ex/charcoal.rb +0 -12
- data/doc/ex/chop.rb +0 -29
- data/doc/ex/circle.rb +0 -33
- data/doc/ex/circle01.rb +0 -16
- data/doc/ex/clip_path.rb +0 -60
- data/doc/ex/coalesce.rb +0 -57
- data/doc/ex/color_fill_to_border.rb +0 -29
- data/doc/ex/color_floodfill.rb +0 -28
- data/doc/ex/color_histogram.rb +0 -47
- data/doc/ex/color_reset.rb +0 -11
- data/doc/ex/colorize.rb +0 -16
- data/doc/ex/colors.rb +0 -64
- data/doc/ex/compose_mask.rb +0 -22
- data/doc/ex/composite.rb +0 -133
- data/doc/ex/composite_layers.rb +0 -52
- data/doc/ex/composite_tiled.rb +0 -21
- data/doc/ex/contrast.rb +0 -36
- data/doc/ex/crop.rb +0 -31
- data/doc/ex/crop_with_gravity.rb +0 -42
- data/doc/ex/cubic01.rb +0 -43
- data/doc/ex/cubic02.rb +0 -91
- data/doc/ex/cycle_colormap.rb +0 -21
- data/doc/ex/dissolve.rb +0 -12
- data/doc/ex/drawcomp.rb +0 -41
- data/doc/ex/drop_shadow.rb +0 -60
- data/doc/ex/edge.rb +0 -11
- data/doc/ex/ellipse.rb +0 -45
- data/doc/ex/ellipse01.rb +0 -21
- data/doc/ex/emboss.rb +0 -11
- data/doc/ex/enhance.rb +0 -28
- data/doc/ex/equalize.rb +0 -11
- data/doc/ex/evenodd.rb +0 -42
- data/doc/ex/fill_pattern.rb +0 -23
- data/doc/ex/flatten_images.rb +0 -36
- data/doc/ex/flip.rb +0 -11
- data/doc/ex/flop.rb +0 -11
- data/doc/ex/font_styles.rb +0 -32
- data/doc/ex/fonts.rb +0 -16
- data/doc/ex/frame.rb +0 -12
- data/doc/ex/gaussian_blur.rb +0 -11
- data/doc/ex/get_multiline_type_metrics.rb +0 -41
- data/doc/ex/get_pixels.rb +0 -45
- data/doc/ex/get_type_metrics.rb +0 -142
- data/doc/ex/gradientfill.rb +0 -27
- data/doc/ex/grav.rb +0 -45
- data/doc/ex/gravity.rb +0 -78
- data/doc/ex/group.rb +0 -26
- data/doc/ex/hatchfill.rb +0 -27
- data/doc/ex/image.rb +0 -44
- data/doc/ex/images/Apple.miff +0 -0
- data/doc/ex/images/Ballerina.jpg +0 -0
- data/doc/ex/images/Ballerina3.jpg +0 -0
- data/doc/ex/images/Button_0.gif +0 -0
- data/doc/ex/images/Button_1.gif +0 -0
- data/doc/ex/images/Button_2.gif +0 -0
- data/doc/ex/images/Button_3.gif +0 -0
- data/doc/ex/images/Button_4.gif +0 -0
- data/doc/ex/images/Button_5.gif +0 -0
- data/doc/ex/images/Button_6.gif +0 -0
- data/doc/ex/images/Button_7.gif +0 -0
- data/doc/ex/images/Button_8.gif +0 -0
- data/doc/ex/images/Button_9.gif +0 -0
- data/doc/ex/images/Button_A.gif +0 -0
- data/doc/ex/images/Button_B.gif +0 -0
- data/doc/ex/images/Button_C.gif +0 -0
- data/doc/ex/images/Button_D.gif +0 -0
- data/doc/ex/images/Button_E.gif +0 -0
- data/doc/ex/images/Button_F.gif +0 -0
- data/doc/ex/images/Button_G.gif +0 -0
- data/doc/ex/images/Button_H.gif +0 -0
- data/doc/ex/images/Button_I.gif +0 -0
- data/doc/ex/images/Button_J.gif +0 -0
- data/doc/ex/images/Button_K.gif +0 -0
- data/doc/ex/images/Button_L.gif +0 -0
- data/doc/ex/images/Button_M.gif +0 -0
- data/doc/ex/images/Button_N.gif +0 -0
- data/doc/ex/images/Button_O.gif +0 -0
- data/doc/ex/images/Button_P.gif +0 -0
- data/doc/ex/images/Button_Q.gif +0 -0
- data/doc/ex/images/Button_R.gif +0 -0
- data/doc/ex/images/Button_S.gif +0 -0
- data/doc/ex/images/Button_T.gif +0 -0
- data/doc/ex/images/Button_U.gif +0 -0
- data/doc/ex/images/Button_V.gif +0 -0
- data/doc/ex/images/Button_W.gif +0 -0
- data/doc/ex/images/Button_X.gif +0 -0
- data/doc/ex/images/Button_Y.gif +0 -0
- data/doc/ex/images/Button_Z.gif +0 -0
- data/doc/ex/images/Cheetah.jpg +0 -0
- data/doc/ex/images/Coffee.png +0 -0
- data/doc/ex/images/Flower_Hat.jpg +0 -0
- data/doc/ex/images/Gold_Statue.jpg +0 -0
- data/doc/ex/images/Hot_Air_Balloons.jpg +0 -0
- data/doc/ex/images/Hot_Air_Balloons_H.jpg +0 -0
- data/doc/ex/images/Leaf.miff +0 -0
- data/doc/ex/images/No.png +0 -0
- data/doc/ex/images/Polynesia.jpg +0 -0
- data/doc/ex/images/Red_Rocks.jpg +0 -0
- data/doc/ex/images/Rocks_On_Beach.miff +0 -0
- data/doc/ex/images/Shorts.jpg +0 -0
- data/doc/ex/images/Snake.png +0 -0
- data/doc/ex/images/Violin.jpg +0 -0
- data/doc/ex/images/Yellow_Rose.miff +0 -0
- data/doc/ex/images/big-duck.gif +0 -0
- data/doc/ex/images/duck.gif +0 -0
- data/doc/ex/images/duck0.gif +0 -0
- data/doc/ex/images/duck1.gif +0 -0
- data/doc/ex/images/duck10.gif +0 -0
- data/doc/ex/images/duck11.gif +0 -0
- data/doc/ex/images/duck12.gif +0 -0
- data/doc/ex/images/duck13.gif +0 -0
- data/doc/ex/images/duck14.gif +0 -0
- data/doc/ex/images/duck15.gif +0 -0
- data/doc/ex/images/duck2.gif +0 -0
- data/doc/ex/images/duck3.gif +0 -0
- data/doc/ex/images/duck4.gif +0 -0
- data/doc/ex/images/duck5.gif +0 -0
- data/doc/ex/images/duck6.gif +0 -0
- data/doc/ex/images/duck7.gif +0 -0
- data/doc/ex/images/duck8.gif +0 -0
- data/doc/ex/images/duck9.gif +0 -0
- data/doc/ex/images/graydient230x6.gif +0 -0
- data/doc/ex/images/image_with_profile.jpg +0 -0
- data/doc/ex/images/logo400x83.gif +0 -0
- data/doc/ex/images/model.miff +0 -0
- data/doc/ex/images/notimplemented.gif +0 -0
- data/doc/ex/images/smile.miff +0 -0
- data/doc/ex/images/spin.gif +0 -0
- data/doc/ex/implode.rb +0 -34
- data/doc/ex/level.rb +0 -11
- data/doc/ex/level_colors.rb +0 -11
- data/doc/ex/line.rb +0 -41
- data/doc/ex/line01.rb +0 -21
- data/doc/ex/mask.rb +0 -35
- data/doc/ex/matte_fill_to_border.rb +0 -39
- data/doc/ex/matte_floodfill.rb +0 -32
- data/doc/ex/matte_replace.rb +0 -39
- data/doc/ex/median_filter.rb +0 -28
- data/doc/ex/modulate.rb +0 -11
- data/doc/ex/mono.rb +0 -23
- data/doc/ex/morph.rb +0 -25
- data/doc/ex/mosaic.rb +0 -37
- data/doc/ex/motion_blur.rb +0 -11
- data/doc/ex/negate.rb +0 -11
- data/doc/ex/negate_channel.rb +0 -9
- data/doc/ex/nested_rvg.rb +0 -21
- data/doc/ex/nonzero.rb +0 -42
- data/doc/ex/normalize.rb +0 -11
- data/doc/ex/oil_paint.rb +0 -11
- data/doc/ex/opacity.rb +0 -37
- data/doc/ex/ordered_dither.rb +0 -11
- data/doc/ex/path.rb +0 -63
- data/doc/ex/pattern1.rb +0 -25
- data/doc/ex/pattern2.rb +0 -26
- data/doc/ex/polaroid.rb +0 -26
- data/doc/ex/polygon.rb +0 -23
- data/doc/ex/polygon01.rb +0 -21
- data/doc/ex/polyline.rb +0 -22
- data/doc/ex/polyline01.rb +0 -21
- data/doc/ex/posterize.rb +0 -8
- data/doc/ex/preview.rb +0 -8
- data/doc/ex/qbezierpath.rb +0 -52
- data/doc/ex/quad01.rb +0 -34
- data/doc/ex/quantize-m.rb +0 -25
- data/doc/ex/radial_blur.rb +0 -9
- data/doc/ex/raise.rb +0 -8
- data/doc/ex/random_threshold_channel.rb +0 -13
- data/doc/ex/rect01.rb +0 -14
- data/doc/ex/rect02.rb +0 -20
- data/doc/ex/rectangle.rb +0 -34
- data/doc/ex/reduce_noise.rb +0 -28
- data/doc/ex/remap.rb +0 -11
- data/doc/ex/remap_images.rb +0 -19
- data/doc/ex/resize_to_fill.rb +0 -8
- data/doc/ex/resize_to_fit.rb +0 -8
- data/doc/ex/roll.rb +0 -9
- data/doc/ex/rotate.rb +0 -44
- data/doc/ex/rotate_f.rb +0 -14
- data/doc/ex/roundrect.rb +0 -33
- data/doc/ex/rubyname.rb +0 -30
- data/doc/ex/rvg_clippath.rb +0 -12
- data/doc/ex/rvg_linecap.rb +0 -42
- data/doc/ex/rvg_linejoin.rb +0 -40
- data/doc/ex/rvg_opacity.rb +0 -18
- data/doc/ex/rvg_pattern.rb +0 -26
- data/doc/ex/rvg_stroke_dasharray.rb +0 -11
- data/doc/ex/segment.rb +0 -11
- data/doc/ex/sepiatone.rb +0 -7
- data/doc/ex/shade.rb +0 -11
- data/doc/ex/shadow.rb +0 -30
- data/doc/ex/shave.rb +0 -15
- data/doc/ex/shear.rb +0 -10
- data/doc/ex/sketch.rb +0 -17
- data/doc/ex/skewx.rb +0 -51
- data/doc/ex/skewy.rb +0 -47
- data/doc/ex/smile.rb +0 -126
- data/doc/ex/solarize.rb +0 -11
- data/doc/ex/sparse_color.rb +0 -55
- data/doc/ex/splice.rb +0 -8
- data/doc/ex/spread.rb +0 -11
- data/doc/ex/stegano.rb +0 -54
- data/doc/ex/stroke_dasharray.rb +0 -42
- data/doc/ex/stroke_fill.rb +0 -10
- data/doc/ex/stroke_linecap.rb +0 -44
- data/doc/ex/stroke_linejoin.rb +0 -48
- data/doc/ex/stroke_width.rb +0 -49
- data/doc/ex/swirl.rb +0 -17
- data/doc/ex/text.rb +0 -37
- data/doc/ex/text01.rb +0 -16
- data/doc/ex/text_align.rb +0 -36
- data/doc/ex/text_antialias.rb +0 -37
- data/doc/ex/text_styles.rb +0 -19
- data/doc/ex/text_undercolor.rb +0 -28
- data/doc/ex/texture_fill_to_border.rb +0 -34
- data/doc/ex/texture_floodfill.rb +0 -32
- data/doc/ex/texturefill.rb +0 -24
- data/doc/ex/threshold.rb +0 -13
- data/doc/ex/to_blob.rb +0 -13
- data/doc/ex/translate.rb +0 -39
- data/doc/ex/transparent.rb +0 -38
- data/doc/ex/transpose.rb +0 -9
- data/doc/ex/transverse.rb +0 -9
- data/doc/ex/tref01.rb +0 -24
- data/doc/ex/triangle01.rb +0 -15
- data/doc/ex/trim.rb +0 -23
- data/doc/ex/tspan01.rb +0 -17
- data/doc/ex/tspan02.rb +0 -17
- data/doc/ex/tspan03.rb +0 -19
- data/doc/ex/unsharp_mask.rb +0 -28
- data/doc/ex/viewex.rb +0 -33
- data/doc/ex/vignette.rb +0 -12
- data/doc/ex/watermark.rb +0 -27
- data/doc/ex/wave.rb +0 -9
- data/doc/ex/wet_floor.rb +0 -58
- data/doc/ex/writing_mode01.rb +0 -26
- data/doc/ex/writing_mode02.rb +0 -26
- data/doc/ilist.html +0 -2056
- data/doc/image1.html +0 -4680
- data/doc/image2.html +0 -3665
- data/doc/image3.html +0 -4522
- data/doc/imageattrs.html +0 -1638
- data/doc/imusage.html +0 -514
- data/doc/index.html +0 -416
- data/doc/info.html +0 -1499
- data/doc/magick.html +0 -570
- data/doc/optequiv.html +0 -2435
- data/doc/rvg.html +0 -975
- data/doc/rvgclip.html +0 -248
- data/doc/rvggroup.html +0 -305
- data/doc/rvgimage.html +0 -289
- data/doc/rvgpattern.html +0 -475
- data/doc/rvgshape.html +0 -406
- data/doc/rvgstyle.html +0 -270
- data/doc/rvgtext.html +0 -465
- data/doc/rvgtspan.html +0 -238
- data/doc/rvgtut.html +0 -530
- data/doc/rvguse.html +0 -145
- data/doc/rvgxform.html +0 -294
- data/doc/scripts/doc.js +0 -22
- data/doc/scripts/stripeTables.js +0 -23
- data/doc/struct.html +0 -1339
- data/doc/usage.html +0 -1621
- data/examples/constitute.rb +0 -7
- data/examples/crop_with_gravity.rb +0 -42
- data/examples/demo.rb +0 -323
- data/examples/describe.rb +0 -41
- data/examples/find_similar_region.rb +0 -34
- data/examples/histogram.rb +0 -312
- data/examples/identify.rb +0 -174
- data/examples/image_opacity.rb +0 -28
- data/examples/import_export.rb +0 -31
- data/examples/pattern_fill.rb +0 -37
- data/examples/rotating_text.rb +0 -45
- data/examples/spinner.rb +0 -49
- data/examples/thumbnail.rb +0 -64
- data/examples/vignette.rb +0 -78
- data/lib/obsolete.rb +0 -66
- data/spec/rmagick/ImageList1_spec.rb +0 -24
- data/spec/rmagick/draw_spec.rb +0 -155
- data/spec/rmagick/image/blue_shift_spec.rb +0 -14
- data/spec/rmagick/image/channel_entropy_spec.rb +0 -9
- data/spec/rmagick/image/composite_spec.rb +0 -72
- data/spec/rmagick/image/constitute_spec.rb +0 -13
- data/spec/rmagick/image/dispatch_spec.rb +0 -16
- data/spec/rmagick/image/from_blob_spec.rb +0 -12
- data/spec/rmagick/image/ping_spec.rb +0 -12
- data/spec/rmagick/image/properties_spec.rb +0 -27
- data/spec/rmagick/image/read_spec.rb +0 -28
- data/spec/spec_helper.rb +0 -10
- data/spec/support/issue_200/app.rb +0 -8
- data/test/Draw.rb +0 -351
- data/test/Enum.rb +0 -228
- data/test/Fill.rb +0 -93
- data/test/Image1.rb +0 -627
- data/test/Image2.rb +0 -1426
- data/test/Image3.rb +0 -1091
- data/test/ImageList1.rb +0 -858
- data/test/ImageList2.rb +0 -406
- data/test/Image_attributes.rb +0 -666
- data/test/Import_Export.rb +0 -115
- data/test/Info.rb +0 -444
- data/test/KernelInfo.rb +0 -67
- data/test/Magick.rb +0 -311
- data/test/Pixel.rb +0 -285
- data/test/PolaroidOptions.rb +0 -23
- data/test/Preview.rb +0 -26
- data/test/Struct.rb +0 -45
- data/test/appearance/Montage.rb +0 -26
- data/test/appearance/appearance_assertion.rb +0 -13
- data/test/appearance/expected/montage_border_color.jpg +0 -0
- data/test/cmyk.icm +0 -0
- data/test/lib/Obsolete.rb +0 -30
- data/test/lib/internal/Draw.rb +0 -823
- data/test/lib/internal/Geometry.rb +0 -98
- data/test/lib/internal/Magick.rb +0 -40
- data/test/srgb.icm +0 -0
- data/test/test_all_basic.rb +0 -49
- data/test/tmpnam_test.rb +0 -50
data/ext/RMagick/rmkinfo.c
CHANGED
@@ -28,10 +28,7 @@ rm_kernel_info_destroy(void *kernel)
|
|
28
28
|
/**
|
29
29
|
* Create a KernelInfo object.
|
30
30
|
*
|
31
|
-
*
|
32
|
-
*
|
33
|
-
* @param class the Ruby class to use
|
34
|
-
* @return a new KernelInfo object
|
31
|
+
* @return [Magick::KernelInfo] a new KernelInfo object
|
35
32
|
*/
|
36
33
|
VALUE
|
37
34
|
KernelInfo_alloc(VALUE class)
|
@@ -42,21 +39,33 @@ KernelInfo_alloc(VALUE class)
|
|
42
39
|
/**
|
43
40
|
* KernelInfo object constructor
|
44
41
|
*
|
45
|
-
*
|
46
|
-
*
|
47
|
-
*
|
48
|
-
* @param self this object
|
49
|
-
* @param kernel_string kernel info string representation to be parsed
|
50
|
-
* @return self
|
42
|
+
* @param kernel_string [String] kernel info string representation to be parsed
|
43
|
+
* @return [Magick::KernelInfo] self
|
51
44
|
*/
|
52
45
|
VALUE
|
53
46
|
KernelInfo_initialize(VALUE self, VALUE kernel_string)
|
54
47
|
{
|
55
48
|
KernelInfo *kernel;
|
49
|
+
#if defined(IMAGEMAGICK_7)
|
50
|
+
ExceptionInfo *exception;
|
51
|
+
#endif
|
56
52
|
|
57
53
|
Check_Type(kernel_string, T_STRING);
|
58
54
|
|
55
|
+
#if defined(IMAGEMAGICK_7)
|
56
|
+
exception = AcquireExceptionInfo();
|
57
|
+
kernel = AcquireKernelInfo(StringValueCStr(kernel_string), exception);
|
58
|
+
if (rm_should_raise_exception(exception, DestroyExceptionRetention))
|
59
|
+
{
|
60
|
+
if (kernel != (KernelInfo *) NULL)
|
61
|
+
{
|
62
|
+
DestroyKernelInfo(kernel);
|
63
|
+
}
|
64
|
+
rm_raise_exception(exception);
|
65
|
+
}
|
66
|
+
#else
|
59
67
|
kernel = AcquireKernelInfo(StringValueCStr(kernel_string));
|
68
|
+
#endif
|
60
69
|
|
61
70
|
if (!kernel)
|
62
71
|
{
|
@@ -68,83 +77,34 @@ KernelInfo_initialize(VALUE self, VALUE kernel_string)
|
|
68
77
|
return self;
|
69
78
|
}
|
70
79
|
|
71
|
-
/**
|
72
|
-
* Zero kerne NaNs.
|
73
|
-
*
|
74
|
-
* Ruby usage:
|
75
|
-
* - @verbatim KernelInfo#zero_nans @endverbatim
|
76
|
-
*
|
77
|
-
* @param self this object
|
78
|
-
* @deprecated This method has been deprecated.
|
79
|
-
*/
|
80
|
-
|
81
|
-
/* ZeroKernelNans() is private function in ImageMagick. */
|
82
|
-
MagickExport void ZeroKernelNans(KernelInfo *kernel);
|
83
|
-
|
84
|
-
VALUE
|
85
|
-
KernelInfo_zero_nans(VALUE self)
|
86
|
-
{
|
87
|
-
rb_warning("KernelInfo#zero_nans is deprecated");
|
88
|
-
ZeroKernelNans((KernelInfo*)DATA_PTR(self));
|
89
|
-
return Qnil;
|
90
|
-
}
|
91
80
|
|
92
81
|
/**
|
93
82
|
* Adds a given amount of the 'Unity' Convolution Kernel to the given pre-scaled and normalized Kernel.
|
94
83
|
*
|
95
|
-
*
|
96
|
-
* - @verbatim KernelInfo#unity_add(scale) @endverbatim
|
97
|
-
*
|
98
|
-
* @param self this object
|
99
|
-
* @param scale scale to add
|
84
|
+
* @param scale [Numeric] scale to add
|
100
85
|
*/
|
101
|
-
|
102
|
-
/* UnityAddKernelInfo() was private function until IM 6.9 */
|
103
|
-
MagickExport void UnityAddKernelInfo(KernelInfo *kernel, const double scale);
|
104
|
-
|
105
86
|
VALUE
|
106
87
|
KernelInfo_unity_add(VALUE self, VALUE scale)
|
107
88
|
{
|
108
89
|
if (!FIXNUM_P(scale))
|
109
90
|
Check_Type(scale, T_FLOAT);
|
110
91
|
|
92
|
+
/* UnityAddKernelInfo() was private function until IM 6.9 */
|
93
|
+
MagickExport void UnityAddKernelInfo(KernelInfo *kernel, const double scale);
|
94
|
+
|
111
95
|
UnityAddKernelInfo((KernelInfo*)DATA_PTR(self), NUM2DBL(scale));
|
112
96
|
return Qnil;
|
113
97
|
}
|
114
98
|
|
115
|
-
/**
|
116
|
-
* Dumps KernelInfo object to stderr
|
117
|
-
*
|
118
|
-
* Ruby usage:
|
119
|
-
* - @verbatim KernelInfo#show @endverbatim
|
120
|
-
*
|
121
|
-
* @param self this object
|
122
|
-
* @deprecated This method has been deprecated.
|
123
|
-
*/
|
124
|
-
VALUE
|
125
|
-
KernelInfo_show(VALUE self)
|
126
|
-
{
|
127
|
-
rb_warning("KernelInfo#show is deprecated");
|
128
|
-
ShowKernelInfo((KernelInfo*)DATA_PTR(self));
|
129
|
-
return Qnil;
|
130
|
-
}
|
131
99
|
|
132
100
|
/**
|
133
101
|
* Scales the given kernel list by the given amount, with or without normalization
|
134
102
|
* of the sum of the kernel values (as per given flags).
|
135
103
|
*
|
136
|
-
*
|
137
|
-
*
|
138
|
-
*
|
139
|
-
* @param scale scale to use
|
140
|
-
* @param flags one of Magick::NormalizeValue, Magick::CorrelateNormalizeValue,
|
141
|
-
* and/or Magick::PercentValue
|
142
|
-
* @param self this object
|
104
|
+
* @param scale [Numeric] scale to use
|
105
|
+
* @param flags [Magick::GeometryFlags] one of Magick::NormalizeValue, Magick::CorrelateNormalizeValue,
|
106
|
+
* and/or Magick::PercentValue
|
143
107
|
*/
|
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
|
-
|
148
108
|
VALUE
|
149
109
|
KernelInfo_scale(VALUE self, VALUE scale, VALUE flags)
|
150
110
|
{
|
@@ -158,19 +118,18 @@ KernelInfo_scale(VALUE self, VALUE scale, VALUE flags)
|
|
158
118
|
else
|
159
119
|
rb_raise(rb_eArgError, "expected Integer or Magick::GeometryFlags to specify flags");
|
160
120
|
|
121
|
+
/* ScaleKernelInfo() was private function until IM 6.9 */
|
122
|
+
MagickExport void ScaleKernelInfo(KernelInfo *kernel, const double scaling_factor, const GeometryFlags normalize_flags);
|
123
|
+
|
161
124
|
ScaleKernelInfo((KernelInfo*)DATA_PTR(self), NUM2DBL(scale), geoflags);
|
162
125
|
return Qnil;
|
163
126
|
}
|
164
127
|
|
165
128
|
/**
|
166
|
-
* Takes a geometry argument string, typically provided as a
|
129
|
+
* Takes a geometry argument string, typically provided as a +-set option:convolve:scale {geometry}+ user setting,
|
167
130
|
* and modifies the kernel according to the parsed arguments of that setting.
|
168
131
|
*
|
169
|
-
*
|
170
|
-
* - @verbatim KernelInfo#scale_geometry(geometry) @endverbatim
|
171
|
-
*
|
172
|
-
* @param geometry geometry string to parse and apply
|
173
|
-
* @param self this object
|
132
|
+
* @param geometry [String] geometry string to parse and apply
|
174
133
|
*/
|
175
134
|
VALUE
|
176
135
|
KernelInfo_scale_geometry(VALUE self, VALUE geometry)
|
@@ -183,11 +142,7 @@ KernelInfo_scale_geometry(VALUE self, VALUE geometry)
|
|
183
142
|
/**
|
184
143
|
* Creates a new clone of the object so that its can be modified without effecting the original.
|
185
144
|
*
|
186
|
-
*
|
187
|
-
* - @verbatim KernelInfo#clone @endverbatim
|
188
|
-
*
|
189
|
-
* @param self this object
|
190
|
-
* @return new KernelInfo instance
|
145
|
+
* @return [Magick::KernelInfo] new KernelInfo object
|
191
146
|
*/
|
192
147
|
VALUE
|
193
148
|
KernelInfo_clone(VALUE self)
|
@@ -201,50 +156,9 @@ KernelInfo_clone(VALUE self)
|
|
201
156
|
* kernels used for special purposes such as gaussian blurring, skeleton
|
202
157
|
* pruning, and edge distance determination.
|
203
158
|
*
|
204
|
-
*
|
205
|
-
*
|
206
|
-
*
|
207
|
-
* @parms kernel one of Magick::KernelInfoType enums:
|
208
|
-
* Magick::UndefinedKernel
|
209
|
-
* Magick::UnityKernel
|
210
|
-
* Magick::GaussianKernel
|
211
|
-
* Magick::DoGKernel
|
212
|
-
* Magick::LoGKernel
|
213
|
-
* Magick::BlurKernel
|
214
|
-
* Magick::CometKernel
|
215
|
-
* Magick::LaplacianKernel
|
216
|
-
* Magick::SobelKernel
|
217
|
-
* Magick::FreiChenKernel
|
218
|
-
* Magick::RobertsKernel
|
219
|
-
* Magick::PrewittKernel
|
220
|
-
* Magick::CompassKernel
|
221
|
-
* Magick::KirschKernel
|
222
|
-
* Magick::DiamondKernel
|
223
|
-
* Magick::SquareKernel
|
224
|
-
* Magick::RectangleKernel
|
225
|
-
* Magick::OctagonKernel
|
226
|
-
* Magick::DiskKernel
|
227
|
-
* Magick::PlusKernel
|
228
|
-
* Magick::CrossKernel
|
229
|
-
* Magick::RingKernel
|
230
|
-
* Magick::PeaksKernel
|
231
|
-
* Magick::EdgesKernel
|
232
|
-
* Magick::CornersKernel
|
233
|
-
* Magick::DiagonalsKernel
|
234
|
-
* Magick::LineEndsKernel
|
235
|
-
* Magick::LineJunctionsKernel
|
236
|
-
* Magick::RidgesKernel
|
237
|
-
* Magick::ConvexHullKernel
|
238
|
-
* Magick::ThinSEKernel
|
239
|
-
* Magick::SkeletonKernel
|
240
|
-
* Magick::ChebyshevKernel
|
241
|
-
* Magick::ManhattanKernel
|
242
|
-
* Magick::OctagonalKernel
|
243
|
-
* Magick::EuclideanKernel
|
244
|
-
* Magick::UserDefinedKernel
|
245
|
-
* Magick::BinomialKernel
|
246
|
-
* @param geometry geometry to pass to default kernel
|
247
|
-
* @return KernelInfo instance
|
159
|
+
* @param what [Magick::KernelInfoType] kernel one of Magick::KernelInfoType enums
|
160
|
+
* @param geometry [String] geometry to pass to default kernel
|
161
|
+
* @return [Magick::KernelInfo] a new KernelInfo object
|
248
162
|
*/
|
249
163
|
VALUE
|
250
164
|
KernelInfo_builtin(VALUE self, VALUE what, VALUE geometry)
|
@@ -252,12 +166,28 @@ KernelInfo_builtin(VALUE self, VALUE what, VALUE geometry)
|
|
252
166
|
KernelInfo *kernel;
|
253
167
|
KernelInfoType kernel_type;
|
254
168
|
GeometryInfo info;
|
169
|
+
#if defined(IMAGEMAGICK_7)
|
170
|
+
ExceptionInfo *exception;
|
171
|
+
#endif
|
255
172
|
|
256
173
|
Check_Type(geometry, T_STRING);
|
257
174
|
VALUE_TO_ENUM(what, kernel_type, KernelInfoType);
|
258
175
|
ParseGeometry(StringValueCStr(geometry), &info);
|
259
176
|
|
177
|
+
#if defined(IMAGEMAGICK_7)
|
178
|
+
exception = AcquireExceptionInfo();
|
179
|
+
kernel = AcquireKernelBuiltIn(kernel_type, &info, exception);
|
180
|
+
if (rm_should_raise_exception(exception, DestroyExceptionRetention))
|
181
|
+
{
|
182
|
+
if (kernel != (KernelInfo *) NULL)
|
183
|
+
{
|
184
|
+
DestroyKernelInfo(kernel);
|
185
|
+
}
|
186
|
+
rm_raise_exception(exception);
|
187
|
+
}
|
188
|
+
#else
|
260
189
|
kernel = AcquireKernelBuiltIn(kernel_type, &info);
|
190
|
+
#endif
|
261
191
|
|
262
192
|
if (!kernel)
|
263
193
|
{
|