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/rmagick.h
CHANGED
@@ -25,6 +25,33 @@
|
|
25
25
|
#include "ruby.h"
|
26
26
|
#include "ruby/io.h"
|
27
27
|
|
28
|
+
#if defined(__MINGW32__)
|
29
|
+
// Ruby defines wrong format specifiers for MinGW. So this defines original macro in here.
|
30
|
+
#if SIZEOF_SIZE_T == SIZEOF_LONG
|
31
|
+
#define RMIuSIZE "lu"
|
32
|
+
#define RMIdSIZE "ld"
|
33
|
+
#define RMIsVALUE "li\v"
|
34
|
+
#elif SIZEOF_SIZE_T == SIZEOF_LONG_LONG
|
35
|
+
#define RMIuSIZE "I64u"
|
36
|
+
#define RMIdSIZE "I64d"
|
37
|
+
#define RMIsVALUE "I64i\v"
|
38
|
+
#endif
|
39
|
+
#else
|
40
|
+
// Use constants defined in Ruby
|
41
|
+
#define RMIuSIZE PRIuSIZE
|
42
|
+
#define RMIdSIZE PRIdSIZE
|
43
|
+
#define RMIsVALUE PRIsVALUE
|
44
|
+
#endif
|
45
|
+
|
46
|
+
#if defined(__GNUC__)
|
47
|
+
#pragma GCC diagnostic push
|
48
|
+
#pragma GCC diagnostic ignored "-Wdeclaration-after-statement"
|
49
|
+
#pragma GCC diagnostic ignored "-Wunknown-pragmas"
|
50
|
+
|
51
|
+
#if __GNUC__ > 6
|
52
|
+
#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
|
53
|
+
#endif
|
54
|
+
#endif
|
28
55
|
|
29
56
|
// Undef Ruby's versions of these symbols
|
30
57
|
#undef PACKAGE_VERSION
|
@@ -34,25 +61,31 @@
|
|
34
61
|
#undef PACKAGE_TARNAME
|
35
62
|
#undef WORDS_BIGENDIAN
|
36
63
|
|
37
|
-
#include "
|
38
|
-
|
64
|
+
#include "extconf.h"
|
65
|
+
|
66
|
+
#if defined(IMAGEMAGICK_7)
|
67
|
+
#include "MagickCore/MagickCore.h"
|
68
|
+
#include "MagickCore/magick-config.h"
|
69
|
+
#else
|
70
|
+
#include "magick/MagickCore.h"
|
71
|
+
#include "magick/magick-config.h"
|
72
|
+
#endif
|
39
73
|
|
40
74
|
// Undef ImageMagick's versions of these symbols
|
41
75
|
#undef PACKAGE_STRING
|
42
76
|
|
43
77
|
|
44
|
-
#include "extconf.h"
|
45
|
-
|
46
|
-
|
47
78
|
//! For quoting preprocessor symbols
|
48
79
|
#define Q2(q) #q
|
49
80
|
//! For quoting preprocessor symbols
|
50
81
|
#define Q(q) Q2(q)
|
51
82
|
|
52
83
|
#ifdef __GNUC__
|
53
|
-
#define ATTRIBUTE_UNUSED
|
84
|
+
#define ATTRIBUTE_UNUSED __attribute__((unused))
|
85
|
+
#define ATTRIBUTE_NORETURN __attribute__((__noreturn__))
|
54
86
|
#else
|
55
87
|
#define ATTRIBUTE_UNUSED
|
88
|
+
#define ATTRIBUTE_NORETURN
|
56
89
|
#endif
|
57
90
|
|
58
91
|
//! Trace new image creation in bang methods
|
@@ -86,11 +119,11 @@
|
|
86
119
|
#define PIXEL_INTENSITY(q) ((Quantum)(0.299*(q)->red + 0.587*(q)->green + 0.114*(q)->blue + 0.5))
|
87
120
|
|
88
121
|
//! find maximum of longs
|
89
|
-
#define LMAX(a,b) ((((long)(a))>((long)(b)))?((long)(a)):((long)(b)))
|
122
|
+
#define LMAX(a, b) ((((long)(a))>((long)(b)))?((long)(a)):((long)(b)))
|
90
123
|
//! find maximum of floats
|
91
|
-
#define FMAX(a,b) ((((double)(a))>((double)(b)))?((double)(a)):((double)(b)))
|
124
|
+
#define FMAX(a, b) ((((double)(a))>((double)(b)))?((double)(a)):((double)(b)))
|
92
125
|
//! find minimum of floats
|
93
|
-
#define FMIN(a,b) ((((double)(a))<=((double)(b)))?((double)(a)):((double)(b)))
|
126
|
+
#define FMIN(a, b) ((((double)(a))<=((double)(b)))?((double)(a)):((double)(b)))
|
94
127
|
|
95
128
|
#define RMAGICK_PI 3.14159265358979 /**< pi */
|
96
129
|
|
@@ -107,24 +140,52 @@
|
|
107
140
|
*/
|
108
141
|
#define OBJ_TO_MAGICK_STRING(f, obj) \
|
109
142
|
if ((obj) != Qnil)\
|
110
|
-
|
143
|
+
{\
|
144
|
+
VALUE str = rb_String(obj);\
|
145
|
+
magick_clone_string(&f, StringValueCStr(str));\
|
146
|
+
}\
|
111
147
|
else\
|
112
148
|
f = NULL;
|
113
149
|
|
114
150
|
|
115
151
|
#define MagickLibSubversion MagickLibAddendum
|
116
152
|
|
117
|
-
|
118
153
|
typedef ImageInfo Info; /**< Make type name match class name */
|
119
|
-
|
120
|
-
typedef
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
154
|
+
#if defined(IMAGEMAGICK_7)
|
155
|
+
typedef struct _QuantumPixelPacket
|
156
|
+
{
|
157
|
+
Quantum
|
158
|
+
red,
|
159
|
+
green,
|
160
|
+
blue,
|
161
|
+
alpha,
|
162
|
+
black;
|
163
|
+
} QuantumPixelPacket;
|
164
|
+
|
165
|
+
typedef QuantumPixelPacket Pixel;
|
166
|
+
typedef PixelInfo MagickPixel;
|
167
|
+
typedef PixelInfo PixelColor;
|
168
|
+
#else
|
169
|
+
typedef struct _RMagickPixelPacket
|
170
|
+
{
|
171
|
+
Quantum
|
172
|
+
red,
|
173
|
+
green,
|
174
|
+
blue,
|
175
|
+
opacity,
|
176
|
+
black;
|
177
|
+
} RMagickPixelPacket;
|
178
|
+
typedef RMagickPixelPacket Pixel;
|
179
|
+
typedef MagickPixelPacket MagickPixel;
|
180
|
+
typedef PixelPacket PixelColor;
|
181
|
+
typedef AlphaChannelType AlphaChannelOption;
|
182
|
+
typedef DistortImageMethod DistortMethod;
|
183
|
+
typedef FilterTypes FilterType;
|
184
|
+
typedef InterpolatePixelMethod PixelInterpolateMethod;
|
185
|
+
typedef ImageLayerMethod LayerMethod;
|
186
|
+
#define TransparentAlpha 0
|
187
|
+
#define IMAGEMAGICK_6 1
|
188
|
+
#endif
|
128
189
|
|
129
190
|
//! Montage
|
130
191
|
typedef struct
|
@@ -234,6 +295,7 @@ typedef enum _QuantumExpressionOperator
|
|
234
295
|
PoissonNoiseQuantumOperator, /**< poisson noise */
|
235
296
|
UniformNoiseQuantumOperator, /**< uniform noise */
|
236
297
|
CosineQuantumOperator, /**< cosine */
|
298
|
+
SetQuantumOperator, /**< set */
|
237
299
|
SineQuantumOperator, /**< sine */
|
238
300
|
AddModulusQuantumOperator, /**< add modulus */
|
239
301
|
MeanQuantumOperator, /**< mean */
|
@@ -340,100 +402,72 @@ EXTERN ID rm_ID_changed; /**< "changed" */
|
|
340
402
|
EXTERN ID rm_ID_cur_image; /**< "cur_image" */
|
341
403
|
EXTERN ID rm_ID_dup; /**< "dup" */
|
342
404
|
EXTERN ID rm_ID_fill; /**< "fill" */
|
343
|
-
EXTERN ID rm_ID_flag; /**< "flag" */
|
344
|
-
EXTERN ID rm_ID_from_s; /**< "from_s" */
|
345
405
|
EXTERN ID rm_ID_Geometry; /**< "Geometry" */
|
346
|
-
EXTERN ID rm_ID_GeometryValue; /**< "GeometryValue" */
|
347
|
-
EXTERN ID rm_ID_has_key_q; /**< "has_key?" */
|
348
406
|
EXTERN ID rm_ID_height; /**< "height" */
|
349
407
|
EXTERN ID rm_ID_initialize_copy; /**< "initialize_copy" */
|
350
|
-
EXTERN ID rm_ID_length; /**< "length" */
|
351
408
|
EXTERN ID rm_ID_notify_observers; /**< "notify_observers" */
|
352
409
|
EXTERN ID rm_ID_new; /**< "new" */
|
353
410
|
EXTERN ID rm_ID_push; /**< "push" */
|
354
|
-
EXTERN ID rm_ID_spaceship; /**< "<=>" */
|
355
|
-
EXTERN ID rm_ID_to_i; /**< "to_i" */
|
356
|
-
EXTERN ID rm_ID_to_s; /**< "to_s" */
|
357
411
|
EXTERN ID rm_ID_values; /**< "values" */
|
358
412
|
EXTERN ID rm_ID_width; /**< "width" */
|
359
|
-
|
360
|
-
EXTERN
|
413
|
+
|
414
|
+
EXTERN unsigned long long rm_main_thread_id;
|
361
415
|
|
362
416
|
#if !defined(min)
|
363
|
-
#define min(a,b) ((a)<(b)?(a):(b)) /**< min of two values */
|
417
|
+
#define min(a, b) ((a)<(b)?(a):(b)) /**< min of two values */
|
364
418
|
#endif
|
365
419
|
#if !defined(max)
|
366
|
-
#define max(a,b) ((a)>(b)?(a):(b)) /**< max of two values */
|
420
|
+
#define max(a, b) ((a)>(b)?(a):(b)) /**< max of two values */
|
367
421
|
#endif
|
368
422
|
|
369
423
|
/**
|
370
424
|
Handle warnings & errors
|
371
425
|
*/
|
372
426
|
//! Handle warnings & errors
|
373
|
-
#define CHECK_EXCEPTION() rm_check_exception(exception, NULL, RetainOnError)
|
427
|
+
#define CHECK_EXCEPTION() rm_check_exception(exception, NULL, RetainOnError)
|
374
428
|
|
375
429
|
|
376
|
-
/*
|
377
|
-
Call rb_define_method for an attribute accessor method
|
378
|
-
*/
|
379
|
-
//! attribute reader
|
380
|
-
#define DCL_ATTR_READER(class, attr) \
|
381
|
-
rb_define_method(Class_##class, #attr, class##_##attr, 0);
|
382
|
-
//! attribute writer
|
383
|
-
#define DCL_ATTR_WRITER(class, attr) \
|
384
|
-
rb_define_method(Class_##class, #attr "=", class##_##attr##_eq, 1);
|
385
|
-
//! attribute accessor
|
386
|
-
#define DCL_ATTR_ACCESSOR(class, attr) \
|
387
|
-
DCL_ATTR_READER(class, attr) \
|
388
|
-
DCL_ATTR_WRITER(class, attr)
|
389
|
-
//! Borrow another class' attribute writer definition
|
390
|
-
#define SHARE_ATTR_WRITER(to, from, attr) \
|
391
|
-
rb_define_method(Class_##to, #attr "=", from##_##attr##_eq, 1);
|
392
|
-
|
393
430
|
/*
|
394
431
|
Define simple attribute accessor methods (boolean, int, string, and double types)
|
395
432
|
*/
|
396
|
-
#define
|
397
|
-
#define
|
433
|
+
#define C_boolean_to_R_boolean(attr) (attr) ? Qtrue : Qfalse /**< C boolean -> Ruby boolean */
|
434
|
+
#define R_boolean_to_C_boolean(attr) RTEST(attr) /**< C boolean <- Ruby boolean */
|
398
435
|
#define C_int_to_R_int(attr) INT2FIX(attr) /**< C int -> Ruby int */
|
399
436
|
#define R_int_to_C_int(attr) NUM2INT(attr) /**< C int <- Ruby int */
|
400
|
-
#define C_long_to_R_long(attr)
|
437
|
+
#define C_long_to_R_long(attr) LONG2NUM(attr) /**< C long -> Ruby long */
|
401
438
|
#define R_long_to_C_long(attr) NUM2LONG(attr) /**< C long <- Ruby long */
|
402
|
-
#define C_ulong_to_R_ulong(attr)
|
439
|
+
#define C_ulong_to_R_ulong(attr) ULONG2NUM(attr) /**< C unsigned long -> Ruby unsigned long */
|
403
440
|
#define R_ulong_to_C_ulong(attr) NUM2ULONG(attr) /**< C unsigned long <- Ruby unsigned long */
|
404
441
|
#define C_str_to_R_str(attr) attr ? rb_str_new2(attr) : Qnil /**< C string -> Ruby string */
|
405
442
|
#define C_dbl_to_R_dbl(attr) rb_float_new(attr) /**< C double -> Ruby double */
|
406
443
|
#define R_dbl_to_C_dbl(attr) NUM2DBL(attr) /**< C double <- Ruby double */
|
407
444
|
|
408
445
|
//! define attribute reader
|
409
|
-
#define
|
410
|
-
VALUE class##_##attr(VALUE self)\
|
446
|
+
#define IMPLEMENT_ATTR_READER(class, attr, type) \
|
411
447
|
{\
|
412
448
|
class *ptr;\
|
413
449
|
if (rb_obj_is_kind_of(self, Class_Image) == Qtrue) {\
|
414
|
-
|
450
|
+
rm_check_destroyed(self); \
|
415
451
|
}\
|
416
452
|
Data_Get_Struct(self, class, ptr);\
|
417
453
|
return C_##type##_to_R_##type(ptr->attr);\
|
418
454
|
}
|
419
455
|
|
420
456
|
//! define attribute reader when attribute name is different from the field name
|
421
|
-
#define
|
422
|
-
VALUE class##_##attr(VALUE self)\
|
457
|
+
#define IMPLEMENT_ATTR_READERF(class, attr, field, type) \
|
423
458
|
{\
|
424
459
|
class *ptr;\
|
425
|
-
|
460
|
+
rm_check_destroyed(self); \
|
426
461
|
Data_Get_Struct(self, class, ptr);\
|
427
462
|
return C_##type##_to_R_##type(ptr->field);\
|
428
463
|
}
|
429
464
|
|
430
465
|
//! define attribute writer
|
431
|
-
#define
|
432
|
-
VALUE class##_##attr##_eq(VALUE self, VALUE val)\
|
466
|
+
#define IMPLEMENT_ATTR_WRITER(class, attr, type) \
|
433
467
|
{\
|
434
468
|
class *ptr;\
|
435
469
|
if (rb_obj_is_kind_of(self, Class_Image) == Qtrue) {\
|
436
|
-
|
470
|
+
rm_check_destroyed(self); \
|
437
471
|
}\
|
438
472
|
rb_check_frozen(self);\
|
439
473
|
Data_Get_Struct(self, class, ptr);\
|
@@ -442,12 +476,11 @@ EXTERN ID rm_ID_y; /**< "y" */
|
|
442
476
|
}
|
443
477
|
|
444
478
|
//! define attribute writer when attribute name is different from the field name
|
445
|
-
#define
|
446
|
-
VALUE class##_##attr##_eq(VALUE self, VALUE val)\
|
479
|
+
#define IMPLEMENT_ATTR_WRITERF(class, attr, field, type) \
|
447
480
|
{\
|
448
481
|
class *ptr;\
|
449
482
|
if (rb_obj_is_kind_of(self, Class_Image) == Qtrue) {\
|
450
|
-
|
483
|
+
rm_check_destroyed(self); \
|
451
484
|
}\
|
452
485
|
rb_check_frozen(self);\
|
453
486
|
Data_Get_Struct(self, class, ptr);\
|
@@ -455,15 +488,6 @@ EXTERN ID rm_ID_y; /**< "y" */
|
|
455
488
|
return self;\
|
456
489
|
}
|
457
490
|
|
458
|
-
//! define attribute accessor
|
459
|
-
#define DEF_ATTR_ACCESSOR(class, attr, type)\
|
460
|
-
DEF_ATTR_READER(class, attr, type)\
|
461
|
-
DEF_ATTR_WRITER(class, attr, type)
|
462
|
-
|
463
|
-
//! define attribute accessor when attribute name is different from the field name
|
464
|
-
#define DEF_ATTR_ACCESSORF(class, attr, field, type)\
|
465
|
-
DEF_ATTR_READERF(class, attr, field, type)\
|
466
|
-
DEF_ATTR_WRITERF(class, attr, field, type)
|
467
491
|
|
468
492
|
/*
|
469
493
|
* Declare attribute accessors
|
@@ -495,8 +519,8 @@ EXTERN ID rm_ID_y; /**< "y" */
|
|
495
519
|
do {\
|
496
520
|
MagickEnum *magick_enum;\
|
497
521
|
if (CLASS_OF(value) != Class_##type)\
|
498
|
-
rb_raise(rb_eTypeError, "wrong enumeration type - expected %s, got %s"\
|
499
|
-
|
522
|
+
rb_raise(rb_eTypeError, "wrong enumeration type - expected %s, got %s", \
|
523
|
+
rb_class2name(Class_##type), rb_class2name(CLASS_OF(value)));\
|
500
524
|
Data_Get_Struct(value, MagickEnum, magick_enum);\
|
501
525
|
e = (type)(magick_enum->val);\
|
502
526
|
} while(0)
|
@@ -607,8 +631,6 @@ extern VALUE ImageList_composite_layers(int, VALUE *, VALUE);
|
|
607
631
|
extern VALUE ImageList_deconstruct(VALUE);
|
608
632
|
extern VALUE ImageList_display(VALUE);
|
609
633
|
extern VALUE ImageList_flatten_images(VALUE);
|
610
|
-
extern VALUE ImageList_fx(int, VALUE *, VALUE);
|
611
|
-
extern VALUE ImageList_map(int, VALUE *, VALUE);
|
612
634
|
extern VALUE ImageList_montage(VALUE);
|
613
635
|
extern VALUE ImageList_morph(VALUE, VALUE);
|
614
636
|
extern VALUE ImageList_mosaic(VALUE);
|
@@ -645,7 +667,6 @@ ATTR_ACCESSOR(Info, font)
|
|
645
667
|
ATTR_ACCESSOR(Info, format)
|
646
668
|
ATTR_ACCESSOR(Info, fuzz)
|
647
669
|
ATTR_ACCESSOR(Info, gravity)
|
648
|
-
ATTR_ACCESSOR(Info, group)
|
649
670
|
ATTR_ACCESSOR(Info, image_type)
|
650
671
|
ATTR_ACCESSOR(Info, interlace)
|
651
672
|
ATTR_ACCESSOR(Info, label)
|
@@ -689,9 +710,7 @@ extern GravityType rm_gravity_to_enum(const char *);
|
|
689
710
|
extern VALUE KernelInfo_alloc(VALUE);
|
690
711
|
|
691
712
|
extern VALUE KernelInfo_initialize(VALUE, VALUE);
|
692
|
-
extern VALUE KernelInfo_zero_nans(VALUE);
|
693
713
|
extern VALUE KernelInfo_unity_add(VALUE, VALUE);
|
694
|
-
extern VALUE KernelInfo_show(VALUE);
|
695
714
|
extern VALUE KernelInfo_scale(VALUE, VALUE, VALUE);
|
696
715
|
extern VALUE KernelInfo_scale_geometry(VALUE, VALUE);
|
697
716
|
extern VALUE KernelInfo_clone(VALUE);
|
@@ -700,14 +719,12 @@ extern VALUE KernelInfo_builtin(VALUE, VALUE, VALUE);
|
|
700
719
|
|
701
720
|
|
702
721
|
// rmimage.c
|
703
|
-
ATTR_WRITER(Image, alpha)
|
704
722
|
ATTR_ACCESSOR(Image, background_color)
|
705
723
|
ATTR_READER(Image, base_columns)
|
706
724
|
ATTR_READER(Image, base_filename)
|
707
725
|
ATTR_READER(Image, base_rows)
|
708
726
|
ATTR_ACCESSOR(Image, bias)
|
709
727
|
ATTR_ACCESSOR(Image, black_point_compensation)
|
710
|
-
ATTR_ACCESSOR(Image, blur)
|
711
728
|
ATTR_ACCESSOR(Image, border_color)
|
712
729
|
ATTR_READER(Image, bounding_box)
|
713
730
|
ATTR_ACCESSOR(Image, chromaticity)
|
@@ -737,8 +754,6 @@ ATTR_ACCESSOR(Image, image_type)
|
|
737
754
|
ATTR_ACCESSOR(Image, interlace)
|
738
755
|
ATTR_ACCESSOR(Image, iptc_profile)
|
739
756
|
ATTR_ACCESSOR(Image, iterations)
|
740
|
-
ATTR_WRITER(Image, mask)
|
741
|
-
ATTR_ACCESSOR(Image, matte)
|
742
757
|
ATTR_ACCESSOR(Image, matte_color)
|
743
758
|
ATTR_READER(Image, mean_error_per_pixel)
|
744
759
|
ATTR_READER(Image, mime_type)
|
@@ -748,7 +763,6 @@ ATTR_READER(Image, normalized_mean_error)
|
|
748
763
|
ATTR_READER(Image, normalized_maximum_error)
|
749
764
|
ATTR_READER(Image, number_colors)
|
750
765
|
ATTR_ACCESSOR(Image, offset)
|
751
|
-
ATTR_WRITER(Image, opacity)
|
752
766
|
ATTR_ACCESSOR(Image, orientation)
|
753
767
|
ATTR_ACCESSOR(Image, page)
|
754
768
|
ATTR_ACCESSOR(Image, pixel_interpolation_method)
|
@@ -768,7 +782,7 @@ ATTR_ACCESSOR(Image, x_resolution)
|
|
768
782
|
ATTR_ACCESSOR(Image, y_resolution)
|
769
783
|
|
770
784
|
extern ChannelType extract_channels(int *, VALUE *);
|
771
|
-
extern void raise_ChannelType_error(VALUE);
|
785
|
+
extern void raise_ChannelType_error(VALUE) ATTRIBUTE_NORETURN;
|
772
786
|
extern void add_format_prefix(Info *, VALUE);
|
773
787
|
|
774
788
|
extern VALUE Image_alloc(VALUE);
|
@@ -810,7 +824,11 @@ extern VALUE Image_compare_channel(int, VALUE *, VALUE);
|
|
810
824
|
extern VALUE Image_channel_depth(int, VALUE *, VALUE);
|
811
825
|
extern VALUE Image_channel_extrema(int, VALUE *, VALUE);
|
812
826
|
extern VALUE Image_channel_mean(int, VALUE *, VALUE);
|
827
|
+
#if defined(HAVE_GETIMAGECHANNELENTROPY) || defined(IMAGEMAGICK_7)
|
813
828
|
extern VALUE Image_channel_entropy(int, VALUE *, VALUE);
|
829
|
+
#else
|
830
|
+
extern VALUE Image_channel_entropy(int, VALUE *, VALUE) ATTRIBUTE_NORETURN;
|
831
|
+
#endif
|
814
832
|
extern VALUE Image_charcoal(int, VALUE *, VALUE);
|
815
833
|
extern VALUE Image_chop(VALUE, VALUE, VALUE, VALUE, VALUE);
|
816
834
|
extern VALUE Image_clone(VALUE);
|
@@ -819,7 +837,6 @@ extern VALUE Image_color_flood_fill(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE);
|
|
819
837
|
extern VALUE Image_color_histogram(VALUE);
|
820
838
|
extern VALUE Image_colorize(int, VALUE *, VALUE);
|
821
839
|
extern VALUE Image_colormap(int, VALUE *, VALUE);
|
822
|
-
extern VALUE Image_combine(int, VALUE *, VALUE);
|
823
840
|
extern VALUE Image_composite(int, VALUE *, VALUE);
|
824
841
|
extern VALUE Image_composite_affine(VALUE, VALUE, VALUE);
|
825
842
|
extern VALUE Image_composite_bang(int, VALUE *, VALUE);
|
@@ -899,7 +916,6 @@ extern VALUE Image_liquid_rescale(int, VALUE *, VALUE);
|
|
899
916
|
extern VALUE Image__load(VALUE, VALUE);
|
900
917
|
extern VALUE Image_magnify(VALUE);
|
901
918
|
extern VALUE Image_magnify_bang(VALUE);
|
902
|
-
extern VALUE Image_map(int, VALUE *, VALUE);
|
903
919
|
extern VALUE Image_marshal_dump(VALUE);
|
904
920
|
extern VALUE Image_marshal_load(VALUE, VALUE);
|
905
921
|
extern VALUE Image_mask(int, VALUE *, VALUE);
|
@@ -975,7 +991,6 @@ extern VALUE Image_stereo(VALUE, VALUE);
|
|
975
991
|
extern VALUE Image_store_pixels(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE);
|
976
992
|
extern VALUE Image_strip_bang(VALUE);
|
977
993
|
extern VALUE Image_swirl(VALUE, VALUE);
|
978
|
-
extern VALUE Image_sync_profiles(VALUE);
|
979
994
|
extern VALUE Image_texture_flood_fill(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE);
|
980
995
|
extern VALUE Image_threshold(VALUE, VALUE);
|
981
996
|
extern VALUE Image_thumbnail(int, VALUE *, VALUE);
|
@@ -1024,7 +1039,6 @@ ATTR_ACCESSOR(Pixel, red)
|
|
1024
1039
|
ATTR_ACCESSOR(Pixel, green)
|
1025
1040
|
ATTR_ACCESSOR(Pixel, blue)
|
1026
1041
|
ATTR_ACCESSOR(Pixel, alpha)
|
1027
|
-
ATTR_ACCESSOR(Pixel, opacity)
|
1028
1042
|
ATTR_ACCESSOR(Pixel, cyan)
|
1029
1043
|
ATTR_ACCESSOR(Pixel, magenta)
|
1030
1044
|
ATTR_ACCESSOR(Pixel, yellow)
|
@@ -1037,7 +1051,6 @@ extern VALUE Pixel_dup(VALUE);
|
|
1037
1051
|
extern VALUE Pixel_eql_q(VALUE, VALUE);
|
1038
1052
|
extern VALUE Pixel_fcmp(int, VALUE *, VALUE);
|
1039
1053
|
extern VALUE Pixel_from_color(VALUE, VALUE);
|
1040
|
-
extern VALUE Pixel_from_HSL(VALUE, VALUE);
|
1041
1054
|
extern VALUE Pixel_from_hsla(int, VALUE *, VALUE);
|
1042
1055
|
extern VALUE Pixel_hash(VALUE);
|
1043
1056
|
extern VALUE Pixel_initialize(int, VALUE *, VALUE);
|
@@ -1047,7 +1060,6 @@ extern VALUE Pixel_marshal_dump(VALUE);
|
|
1047
1060
|
extern VALUE Pixel_marshal_load(VALUE, VALUE);
|
1048
1061
|
extern VALUE Pixel_spaceship(VALUE, VALUE);
|
1049
1062
|
extern VALUE Pixel_to_color(int, VALUE *, VALUE);
|
1050
|
-
extern VALUE Pixel_to_HSL(VALUE);
|
1051
1063
|
extern VALUE Pixel_to_hsla(VALUE);
|
1052
1064
|
extern VALUE Pixel_to_s(VALUE);
|
1053
1065
|
|
@@ -1093,6 +1105,7 @@ extern VALUE ChromaticityInfo_to_s(VALUE);
|
|
1093
1105
|
extern VALUE ChromaticityInfo_new(ChromaticityInfo *);
|
1094
1106
|
extern void Color_to_PixelColor(PixelColor *, VALUE);
|
1095
1107
|
extern void Color_to_MagickPixel(Image *, MagickPixel *, VALUE);
|
1108
|
+
extern void Color_to_Pixel(Pixel *, VALUE);
|
1096
1109
|
extern VALUE Color_to_s(VALUE);
|
1097
1110
|
extern VALUE Import_ColorInfo(const ColorInfo *);
|
1098
1111
|
extern VALUE Font_to_s(VALUE);
|
@@ -1127,7 +1140,6 @@ extern VALUE ImageMagickError_initialize(int, VALUE *, VALUE);
|
|
1127
1140
|
extern void *magick_malloc(const size_t);
|
1128
1141
|
extern void *magick_safe_malloc(const size_t, const size_t);
|
1129
1142
|
extern void magick_free(void *);
|
1130
|
-
extern void *magick_realloc(void *, const size_t);
|
1131
1143
|
extern void *magick_safe_realloc(void *, const size_t, const size_t);
|
1132
1144
|
extern void magick_clone_string(char **, const char *);
|
1133
1145
|
extern Image *rm_acquire_image(ImageInfo *);
|
@@ -1136,32 +1148,34 @@ extern VALUE rm_pixelcolor_to_color_name(Image *, PixelColor *);
|
|
1136
1148
|
extern VALUE rm_pixelcolor_to_color_name_info(Info *, PixelColor *);
|
1137
1149
|
extern void rm_init_magickpixel(const Image *, MagickPixel *);
|
1138
1150
|
extern void rm_set_magickpixel(MagickPixel *, const char *);
|
1139
|
-
extern VALUE rm_no_freeze(VALUE);
|
1151
|
+
extern VALUE rm_no_freeze(VALUE) ATTRIBUTE_NORETURN;
|
1140
1152
|
extern int rm_strcasecmp(const char *, const char *);
|
1141
1153
|
extern int rm_strncasecmp(const char *, const char *, size_t);
|
1154
|
+
extern size_t rm_strnlen_s(const char *, size_t);
|
1142
1155
|
extern void rm_check_ary_len(VALUE, long);
|
1143
1156
|
extern VALUE rm_check_ary_type(VALUE ary);
|
1144
1157
|
extern Image *rm_check_destroyed(VALUE);
|
1145
1158
|
extern Image *rm_check_frozen(VALUE);
|
1146
|
-
extern VALUE rm_to_s(VALUE);
|
1147
1159
|
extern char *rm_str2cstr(VALUE, long *);
|
1148
1160
|
extern int rm_check_num2dbl(VALUE);
|
1149
1161
|
extern double rm_fuzz_to_dbl(VALUE);
|
1150
1162
|
extern Quantum rm_app2quantum(VALUE);
|
1151
|
-
extern double rm_percentage(VALUE,double);
|
1163
|
+
extern double rm_percentage(VALUE, double);
|
1152
1164
|
extern double rm_str_to_pct(VALUE);
|
1153
1165
|
extern VALUE rm_define_enum_type(const char *);
|
1154
|
-
extern void rm_write_temp_image(Image *, char
|
1166
|
+
extern void rm_write_temp_image(Image *, char *, size_t);
|
1155
1167
|
extern void rm_delete_temp_image(char *);
|
1156
|
-
extern void rm_not_implemented(void);
|
1168
|
+
extern void rm_not_implemented(void) ATTRIBUTE_NORETURN;
|
1157
1169
|
extern void rm_attr_write(VALUE, VALUE);
|
1158
|
-
extern void rm_get_geometry(VALUE, long *, long *, unsigned long *, unsigned long *, int *);
|
1159
1170
|
extern const char *rm_get_property(const Image *, const char *);
|
1160
1171
|
extern MagickBooleanType rm_set_property(Image *, const char *, const char *);
|
1161
1172
|
extern void rm_set_user_artifact(Image *, Info *);
|
1162
1173
|
extern void rm_sync_image_options(Image *, Info *);
|
1163
1174
|
extern void rm_split(Image *);
|
1164
1175
|
extern void rm_magick_error(const char *);
|
1176
|
+
#if defined(IMAGEMAGICK_7)
|
1177
|
+
extern void rm_set_pixelinfo_alpha(PixelInfo *, const MagickRealType);
|
1178
|
+
#endif
|
1165
1179
|
|
1166
1180
|
//! whether to retain on errors
|
1167
1181
|
typedef enum
|
@@ -1176,7 +1190,6 @@ typedef enum
|
|
1176
1190
|
DestroyExceptionRetention
|
1177
1191
|
} ExceptionRetention;
|
1178
1192
|
|
1179
|
-
extern void rm_check_image_exception(Image *, ErrorRetention);
|
1180
1193
|
extern void rm_check_exception(ExceptionInfo *, Image *, ErrorRetention);
|
1181
1194
|
extern void rm_ensure_result(Image *);
|
1182
1195
|
extern Image *rm_clone_image(Image *);
|
@@ -1184,10 +1197,15 @@ extern MagickBooleanType rm_progress_monitor(const char *, const MagickOffsetTyp
|
|
1184
1197
|
extern VALUE rm_exif_by_entry(Image *);
|
1185
1198
|
extern VALUE rm_exif_by_number(Image *);
|
1186
1199
|
extern void rm_get_optional_arguments(VALUE);
|
1187
|
-
extern void rm_fatal_error_handler(const ExceptionType, const char *, const char *);
|
1200
|
+
extern void rm_fatal_error_handler(const ExceptionType, const char *, const char *) ATTRIBUTE_NORETURN;
|
1188
1201
|
extern void rm_error_handler(const ExceptionType, const char *, const char *);
|
1189
1202
|
extern void rm_warning_handler(const ExceptionType, const char *, const char *);
|
1190
1203
|
extern MagickBooleanType rm_should_raise_exception(ExceptionInfo *, const ExceptionRetention);
|
1191
1204
|
extern void rm_raise_exception(ExceptionInfo *);
|
1205
|
+
extern unsigned long long rm_current_thread_id();
|
1206
|
+
#if defined(IMAGEMAGICK_6)
|
1207
|
+
extern void rm_check_image_exception(Image *, ErrorRetention);
|
1208
|
+
#endif
|
1209
|
+
|
1192
1210
|
#endif
|
1193
1211
|
|