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/doc/ex/line.rb
DELETED
@@ -1,41 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby -w
|
2
|
-
require 'rmagick'
|
3
|
-
|
4
|
-
imgl = Magick::ImageList.new
|
5
|
-
imgl.new_image(250, 250, Magick::HatchFill.new('white', 'LightCyan2'))
|
6
|
-
|
7
|
-
gc = Magick::Draw.new
|
8
|
-
|
9
|
-
gc.stroke_linejoin('round')
|
10
|
-
|
11
|
-
# Draw 3 lines in 3 colors.
|
12
|
-
# Make each line 2 pixels wide.
|
13
|
-
gc.stroke('red')
|
14
|
-
gc.stroke_width(3)
|
15
|
-
gc.line(50, 50, 50, 200)
|
16
|
-
gc.stroke('blue')
|
17
|
-
gc.line(50, 200, 200, 200)
|
18
|
-
gc.stroke('green')
|
19
|
-
gc.line(200, 200, 50, 50)
|
20
|
-
|
21
|
-
# Identify the endpoints with gray circles
|
22
|
-
gc.stroke('gray50')
|
23
|
-
gc.stroke_width(1)
|
24
|
-
gc.fill_opacity(0)
|
25
|
-
gc.circle(50, 50, 53, 53)
|
26
|
-
gc.circle(50, 200, 53, 203)
|
27
|
-
gc.circle(200, 200, 203, 203)
|
28
|
-
|
29
|
-
# Annotate the endpoints
|
30
|
-
gc.font_weight(Magick::NormalWeight)
|
31
|
-
gc.font_style(Magick::NormalStyle)
|
32
|
-
gc.fill('black')
|
33
|
-
gc.stroke('transparent')
|
34
|
-
gc.text(30, 40, "'50,50'")
|
35
|
-
gc.text(30, 220, "'50,200'")
|
36
|
-
gc.text(180, 220, "'200,200'")
|
37
|
-
|
38
|
-
gc.draw(imgl)
|
39
|
-
imgl.border!(1, 1, 'LightCyan2')
|
40
|
-
|
41
|
-
imgl.write('line.gif')
|
data/doc/ex/line01.rb
DELETED
@@ -1,21 +0,0 @@
|
|
1
|
-
require 'rvg/rvg'
|
2
|
-
|
3
|
-
Magick::RVG.dpi = 90
|
4
|
-
|
5
|
-
rvg = Magick::RVG.new(12.cm, 4.cm).viewbox(0, 0, 1200, 400) do |canvas|
|
6
|
-
canvas.background_fill = 'white'
|
7
|
-
canvas.desc = 'Example line01 - lines expressed in user coordinates'
|
8
|
-
|
9
|
-
# Show outline of canvas using the 'rect' method
|
10
|
-
canvas.rect(1195, 395, 1, 1).styles(fill: 'none', stroke: 'blue', stroke_width: 2)
|
11
|
-
|
12
|
-
canvas.g.styles(stroke: 'green') do |grp|
|
13
|
-
grp.line(100, 300, 300, 100).styles(stroke_width: 5)
|
14
|
-
grp.line(300, 300, 500, 100).styles(stroke_width: 10)
|
15
|
-
grp.line(500, 300, 700, 100).styles(stroke_width: 15)
|
16
|
-
grp.line(700, 300, 900, 100).styles(stroke_width: 20)
|
17
|
-
grp.line(900, 300, 1100, 100).styles(stroke_width: 25)
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
rvg.draw.write('line01.gif')
|
data/doc/ex/mask.rb
DELETED
@@ -1,35 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby -w
|
2
|
-
|
3
|
-
require 'rmagick'
|
4
|
-
|
5
|
-
# This example demonstrates the mask attribute. The mask image must
|
6
|
-
# be the same size as the image being masked. Since this mask image does
|
7
|
-
# not have an alpha channel, the intensity of each pixel is used to define the
|
8
|
-
# mask. White pixels are more intense than black pixels, so the area of the
|
9
|
-
# image masked by white pixels will remain unchanged, while the area of the
|
10
|
-
# image masked by black pixels is affected by any transformations.
|
11
|
-
|
12
|
-
# In this example the mask is simply the words "Flower Hat" in black text
|
13
|
-
# positioned near the bottom of the white clip mask image.
|
14
|
-
|
15
|
-
img = Magick::Image.read('images/Flower_Hat.jpg').first
|
16
|
-
q = Magick::Image.new(img.columns, img.rows)
|
17
|
-
|
18
|
-
gc = Magick::Draw.new
|
19
|
-
gc.annotate(q, 0, 0, 0, 0, 'Flower Hat') do
|
20
|
-
gc.gravity = Magick::SouthGravity
|
21
|
-
gc.pointsize = 36
|
22
|
-
gc.font_weight = Magick::BoldWeight
|
23
|
-
end
|
24
|
-
|
25
|
-
# Set the matte attribute to false, indicating the absence of an alpha channel
|
26
|
-
# in the mask image. Assign the mask image to the mask= attribute of the image
|
27
|
-
# being masked.
|
28
|
-
|
29
|
-
q.alpha(Magick::DeactivateAlphaChannel)
|
30
|
-
img.mask q
|
31
|
-
|
32
|
-
# Use the #level method to darken the image under the black part of the mask.
|
33
|
-
|
34
|
-
img = img.level(0, Magick::QuantumRange, 0.50)
|
35
|
-
img.write('mask.jpg')
|
@@ -1,39 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby -w
|
2
|
-
|
3
|
-
require 'rmagick'
|
4
|
-
|
5
|
-
img = Magick::Image.new(200, 200)
|
6
|
-
img.compression = Magick::LZWCompression
|
7
|
-
|
8
|
-
bg = Magick::Image.read('plasma:fractal') { self.size = '200x200' }
|
9
|
-
bg[0].alpha(Magick::DeactivateAlphaChannel)
|
10
|
-
|
11
|
-
gc = Magick::Draw.new
|
12
|
-
gc.stroke_width(2)
|
13
|
-
gc.stroke('black')
|
14
|
-
gc.fill('white')
|
15
|
-
gc.roundrectangle(0, 0, 199, 199, 8, 8)
|
16
|
-
|
17
|
-
gc.fill('black')
|
18
|
-
gc.circle(100, 45, 100, 25)
|
19
|
-
gc.circle(45, 100, 25, 100)
|
20
|
-
gc.circle(100, 155, 100, 175)
|
21
|
-
gc.circle(155, 100, 175, 100)
|
22
|
-
|
23
|
-
gc.draw(img)
|
24
|
-
|
25
|
-
img.write('matte_fill_to_border_before.gif')
|
26
|
-
|
27
|
-
# Set the border color. Set the fuzz attribute so that
|
28
|
-
# the matte fill will fill the aliased pixels around
|
29
|
-
# the edges of the black circles.
|
30
|
-
img.border_color = 'black'
|
31
|
-
img.fuzz = 10
|
32
|
-
img = img.matte_fill_to_border(100, 100)
|
33
|
-
|
34
|
-
# Composite the image over a nice bright background
|
35
|
-
# so that the transparent pixels will be obvious.
|
36
|
-
img = bg[0].composite(img, Magick::CenterGravity, Magick::OverCompositeOp)
|
37
|
-
|
38
|
-
img.write('matte_fill_to_border_after.gif')
|
39
|
-
exit
|
data/doc/ex/matte_floodfill.rb
DELETED
@@ -1,32 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby -w
|
2
|
-
|
3
|
-
require 'rmagick'
|
4
|
-
|
5
|
-
img = Magick::Image.new(200, 200)
|
6
|
-
img.compression = Magick::LZWCompression
|
7
|
-
|
8
|
-
bg = Magick::Image.read('plasma:fractal') { self.size = '200x200' }
|
9
|
-
bg[0].alpha(Magick::DeactivateAlphaChannel)
|
10
|
-
|
11
|
-
gc = Magick::Draw.new
|
12
|
-
gc.stroke_width(2)
|
13
|
-
gc.stroke('black')
|
14
|
-
gc.fill('white')
|
15
|
-
gc.roundrectangle(0, 0, 199, 199, 8, 8)
|
16
|
-
|
17
|
-
gc.fill('yellow')
|
18
|
-
gc.stroke('red')
|
19
|
-
gc.circle(100, 100, 100, 25)
|
20
|
-
gc.draw(img)
|
21
|
-
|
22
|
-
img.write('matte_floodfill_before.gif')
|
23
|
-
|
24
|
-
img.fuzz = 100
|
25
|
-
img = img.matte_floodfill(100, 100)
|
26
|
-
|
27
|
-
# Composite the image over a nice bright background
|
28
|
-
# so that the transparent pixels will be obvious.
|
29
|
-
img = bg[0].composite(img, Magick::CenterGravity, Magick::OverCompositeOp)
|
30
|
-
|
31
|
-
img.write('matte_floodfill_after.gif')
|
32
|
-
exit
|
data/doc/ex/matte_replace.rb
DELETED
@@ -1,39 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby -w
|
2
|
-
|
3
|
-
require 'rmagick'
|
4
|
-
|
5
|
-
img = Magick::Image.new(200, 200)
|
6
|
-
img.compression = Magick::LZWCompression
|
7
|
-
|
8
|
-
bg = Magick::Image.read('plasma:fractal') { self.size = '200x200' }
|
9
|
-
bg[0].alpha(Magick::DeactivateAlphaChannel)
|
10
|
-
|
11
|
-
gc = Magick::Draw.new
|
12
|
-
gc.stroke_width(2)
|
13
|
-
gc.stroke('black')
|
14
|
-
gc.fill('white')
|
15
|
-
gc.roundrectangle(0, 0, 199, 199, 8, 8)
|
16
|
-
|
17
|
-
gc.fill('black')
|
18
|
-
gc.circle(100, 45, 100, 25)
|
19
|
-
gc.circle(45, 100, 25, 100)
|
20
|
-
gc.circle(100, 155, 100, 175)
|
21
|
-
gc.circle(155, 100, 175, 100)
|
22
|
-
|
23
|
-
gc.draw(img)
|
24
|
-
|
25
|
-
img.write('matte_replace_before.gif')
|
26
|
-
|
27
|
-
# Set the border color. Set the fuzz attribute so that
|
28
|
-
# the matte fill will fill the aliased pixels around
|
29
|
-
# the edges of the black circles.
|
30
|
-
img.border_color = 'black'
|
31
|
-
img.fuzz = 10
|
32
|
-
img = img.matte_replace(100, 45)
|
33
|
-
|
34
|
-
# Composite the image over a nice bright background
|
35
|
-
# so that the transparent pixels will be obvious.
|
36
|
-
img = bg[0].composite(img, Magick::CenterGravity, Magick::OverCompositeOp)
|
37
|
-
|
38
|
-
img.write('matte_replace_after.gif')
|
39
|
-
exit
|
data/doc/ex/median_filter.rb
DELETED
@@ -1,28 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby -w
|
2
|
-
require 'rmagick'
|
3
|
-
|
4
|
-
# Demonstrate the Image#median_filter method
|
5
|
-
|
6
|
-
img = Magick::Image.read('images/Flower_Hat.jpg').first
|
7
|
-
img = img.add_noise(Magick::UniformNoise)
|
8
|
-
|
9
|
-
eimg = img.median_filter(0.05)
|
10
|
-
|
11
|
-
# Zoom in so we can see the change
|
12
|
-
img.resize!(3)
|
13
|
-
eimg.resize!(3)
|
14
|
-
|
15
|
-
# Make a before-and-after composite
|
16
|
-
eimg.crop!(eimg.columns / 2, 0, eimg.columns / 2, eimg.rows)
|
17
|
-
img = img.composite(eimg, Magick::EastGravity, Magick::OverCompositeOp)
|
18
|
-
|
19
|
-
# Draw a black line between the before and after parts.
|
20
|
-
line = Magick::Draw.new
|
21
|
-
line.line(img.columns / 2, 0, img.columns / 2, img.rows)
|
22
|
-
line.draw(img)
|
23
|
-
|
24
|
-
# Crop everything but the face.
|
25
|
-
img.crop!(Magick::CenterGravity, 250, 200)
|
26
|
-
|
27
|
-
img.write('median_filter.jpg')
|
28
|
-
exit
|
data/doc/ex/modulate.rb
DELETED
data/doc/ex/mono.rb
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby -w
|
2
|
-
require 'rmagick'
|
3
|
-
|
4
|
-
# Demonstrate the ImageListImage#quantize method by converting
|
5
|
-
# a color image into a monochrome image.
|
6
|
-
|
7
|
-
# Read the large color cheetah image and scale it to a third
|
8
|
-
# of its size.
|
9
|
-
cheetah = Magick::Image.read('images/Cheetah.jpg').first
|
10
|
-
cheetah.scale!(0.33)
|
11
|
-
|
12
|
-
# Quantize the cheetah image into 256 colors in the GRAY colorspace.
|
13
|
-
mono_cheetah = cheetah.quantize 256, Magick::GRAYColorspace
|
14
|
-
|
15
|
-
# Cut the top off the monochrome cheetah image.
|
16
|
-
mono_bottom = mono_cheetah.crop 0, mono_cheetah.rows / 2, mono_cheetah.columns, mono_cheetah.rows / 2
|
17
|
-
|
18
|
-
# Composite the half-height mono cheetah onto the bottom of
|
19
|
-
# the original color cheetah.
|
20
|
-
before_after = cheetah.composite mono_bottom, 0, cheetah.rows / 2, Magick::OverCompositeOp
|
21
|
-
|
22
|
-
before_after.write 'mono.jpg'
|
23
|
-
exit
|
data/doc/ex/morph.rb
DELETED
@@ -1,25 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby -w
|
2
|
-
|
3
|
-
require 'rmagick'
|
4
|
-
|
5
|
-
# Demonstrate the morph method
|
6
|
-
|
7
|
-
# Read 4 digit image files. Create an
|
8
|
-
# animated morph sequence by inserting 8
|
9
|
-
# in-between images between each pair of digits.
|
10
|
-
|
11
|
-
i = Magick::ImageList.new
|
12
|
-
number = '0'
|
13
|
-
4.times do
|
14
|
-
i.read 'images/Button_' + number + '.gif'
|
15
|
-
number.succ!
|
16
|
-
end
|
17
|
-
|
18
|
-
puts 'This may take a few seconds...'
|
19
|
-
morph = i.morph 8
|
20
|
-
morph.delay = 12
|
21
|
-
morph.iterations = 10_000
|
22
|
-
# Display the resulting sequence as an animation.
|
23
|
-
# morph.animate(12)
|
24
|
-
morph.write 'morph.gif'
|
25
|
-
exit
|
data/doc/ex/mosaic.rb
DELETED
@@ -1,37 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby -w
|
2
|
-
require 'rmagick'
|
3
|
-
|
4
|
-
# Demonstrate the mosaic method
|
5
|
-
|
6
|
-
a = Magick::ImageList.new
|
7
|
-
|
8
|
-
letter = 'A'
|
9
|
-
26.times do
|
10
|
-
# 'M' is not the same size as the other letters.
|
11
|
-
a.read('images/Button_' + letter + '.gif') if letter != 'M'
|
12
|
-
letter.succ!
|
13
|
-
end
|
14
|
-
|
15
|
-
# Make a copy of "a" with all the images quarter-sized
|
16
|
-
b = Magick::ImageList.new
|
17
|
-
page = Magick::Rectangle.new(0, 0, 0, 0)
|
18
|
-
a.scene = 0
|
19
|
-
5.times do |i|
|
20
|
-
5.times do |j|
|
21
|
-
b << a.scale(0.25)
|
22
|
-
page.x = j * b.columns
|
23
|
-
page.y = i * b.rows
|
24
|
-
b.page = page
|
25
|
-
begin
|
26
|
-
(a.scene += 1)
|
27
|
-
rescue StandardError
|
28
|
-
a.scene = 0
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
# Make a 5x5 mosaic
|
34
|
-
mosaic = b.mosaic
|
35
|
-
mosaic.write('mosaic.gif')
|
36
|
-
# mosaic.display
|
37
|
-
exit
|
data/doc/ex/motion_blur.rb
DELETED
data/doc/ex/negate.rb
DELETED
data/doc/ex/negate_channel.rb
DELETED
data/doc/ex/nested_rvg.rb
DELETED
@@ -1,21 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby -w
|
2
|
-
|
3
|
-
require 'rvg/rvg'
|
4
|
-
|
5
|
-
target = Magick::RVG.new.viewbox(0, 0, 200, 200) do |targ|
|
6
|
-
targ.g.styles(stroke_width: 20, stroke: '#ff5600', fill: '#abd600') do |grp|
|
7
|
-
grp.circle(90, 100, 100)
|
8
|
-
grp.circle(60, 100, 100)
|
9
|
-
grp.circle(30, 100, 100)
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
rvg = Magick::RVG.new(258, 100) do |canvas|
|
14
|
-
canvas.background_fill = '#51396b'
|
15
|
-
canvas.use(target, 0, 0, 100, 100)
|
16
|
-
canvas.use(target, 100, 16.6667, 66.7, 66.7)
|
17
|
-
canvas.use(target, 166.6667, 25, 50, 50)
|
18
|
-
canvas.use(target, 216.6667, 30, 40, 40)
|
19
|
-
end
|
20
|
-
|
21
|
-
rvg.draw.write('nested_rvg.gif')
|
data/doc/ex/nonzero.rb
DELETED
@@ -1,42 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby -w
|
2
|
-
require 'rvg/rvg'
|
3
|
-
|
4
|
-
Magick::RVG.dpi = 90
|
5
|
-
|
6
|
-
rvg = Magick::RVG.new(12.cm, 4.cm).viewbox(0, 0, 1200, 400) do |canvas|
|
7
|
-
canvas.background_fill = 'white'
|
8
|
-
canvas.desc = "Example fillrule - nonzero - demonstrates fill_rule=>'nonzero'"
|
9
|
-
|
10
|
-
canvas.rect(1195, 393, 1, 1).styles(fill: 'none', stroke: 'blue')
|
11
|
-
|
12
|
-
triangle = Magick::RVG::Group.new do |defs|
|
13
|
-
defs.path('M 16,0 L -8,9 v-18 z').styles(fill: 'black', stroke: 'none')
|
14
|
-
end
|
15
|
-
|
16
|
-
canvas.g.styles(fill_rule: 'nonzero', fill: 'red', stroke: 'black', stroke_width: 3) do |grp|
|
17
|
-
grp.path('M 250,75 L 323,301 131,161 369,161 177,301 z')
|
18
|
-
grp.use(triangle).translate(306.21, 249).rotate(72)
|
19
|
-
grp.use(triangle).translate(175.16, 193.2).rotate(216)
|
20
|
-
grp.use(triangle).translate(314.26, 161).rotate(0)
|
21
|
-
grp.use(triangle).translate(221.16, 268.8).rotate(144)
|
22
|
-
grp.use(triangle).translate(233.21, 126.98).rotate(288)
|
23
|
-
grp.path('M 600,81 A 107,107 0 0,1 600,295 A 107,107 0 0,1 600,81 z' \
|
24
|
-
'M 600,139 A 49,49 0 0,1 600,237 A 49,49 0 0,1 600,139 z')
|
25
|
-
grp.use(triangle).translate(600, 188).rotate(0).translate(107, 0).rotate(90)
|
26
|
-
grp.use(triangle).translate(600, 188).rotate(120).translate(107, 0).rotate(90)
|
27
|
-
grp.use(triangle).translate(600, 188).rotate(240).translate(107, 0).rotate(90)
|
28
|
-
grp.use(triangle).translate(600, 188).rotate(60).translate(49, 0).rotate(90)
|
29
|
-
grp.use(triangle).translate(600, 188).rotate(180).translate(49, 0).rotate(90)
|
30
|
-
grp.use(triangle).translate(600, 188).rotate(300).translate(49, 0).rotate(90)
|
31
|
-
grp.path('M 950,81 A 107,107 0 0,1 950,295 A 107,107 0 0,1 950,81 z' \
|
32
|
-
'M 950,139 A 49,49 0 0,0 950,237 A 49,49 0 0,0 950,139 z')
|
33
|
-
grp.use(triangle).translate(950, 188).rotate(0).translate(107, 0).rotate(90)
|
34
|
-
grp.use(triangle).translate(950, 188).rotate(120).translate(107, 0).rotate(90)
|
35
|
-
grp.use(triangle).translate(950, 188).rotate(240).translate(107, 0).rotate(90)
|
36
|
-
grp.use(triangle).translate(950, 188).rotate(60).translate(49, 0).rotate(-90)
|
37
|
-
grp.use(triangle).translate(950, 188).rotate(180).translate(49, 0).rotate(-90)
|
38
|
-
grp.use(triangle).translate(950, 188).rotate(300).translate(49, 0).rotate(-90)
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
rvg.draw.write('nonzero.gif')
|
data/doc/ex/normalize.rb
DELETED
data/doc/ex/oil_paint.rb
DELETED
data/doc/ex/opacity.rb
DELETED
@@ -1,37 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby -w
|
2
|
-
require 'rmagick'
|
3
|
-
|
4
|
-
canvas = Magick::Image.new(260, 125)
|
5
|
-
gc = Magick::Draw.new
|
6
|
-
gc.fill('black')
|
7
|
-
gc.rectangle(10, 20, 250, 90)
|
8
|
-
|
9
|
-
gc.stroke('blue')
|
10
|
-
gc.fill('yellow')
|
11
|
-
gc.stroke_width(10)
|
12
|
-
|
13
|
-
gc.opacity('25%')
|
14
|
-
gc.roundrectangle(20, 20, 60, 90, 5, 5)
|
15
|
-
|
16
|
-
gc.opacity('50%')
|
17
|
-
gc.roundrectangle(80, 20, 120, 90, 5, 5)
|
18
|
-
|
19
|
-
gc.opacity(0.75)
|
20
|
-
gc.roundrectangle(140, 20, 180, 90, 5, 5)
|
21
|
-
|
22
|
-
gc.opacity(1)
|
23
|
-
gc.roundrectangle(200, 20, 240, 90, 5, 5)
|
24
|
-
|
25
|
-
gc.font_weight(Magick::NormalWeight)
|
26
|
-
gc.font_style(Magick::NormalStyle)
|
27
|
-
gc.stroke('transparent')
|
28
|
-
gc.fill('black')
|
29
|
-
gc.gravity(Magick::SouthGravity)
|
30
|
-
gc.text(-90, 15, '"25%"')
|
31
|
-
gc.text(-30, 15, '"50%"')
|
32
|
-
gc.text(30, 15, '"75%"')
|
33
|
-
gc.text(90, 15, '"100%"')
|
34
|
-
|
35
|
-
gc.draw(canvas)
|
36
|
-
canvas.write('opacity.png')
|
37
|
-
exit
|
data/doc/ex/ordered_dither.rb
DELETED
data/doc/ex/path.rb
DELETED
@@ -1,63 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby -w
|
2
|
-
require 'rmagick'
|
3
|
-
|
4
|
-
imgl = Magick::ImageList.new
|
5
|
-
imgl.new_image(390, 240, Magick::HatchFill.new('white', 'lightcyan2'))
|
6
|
-
|
7
|
-
gc = Magick::Draw.new
|
8
|
-
|
9
|
-
# Draw path
|
10
|
-
gc.fill_opacity 0
|
11
|
-
gc.stroke 'red'
|
12
|
-
gc.stroke_width 3
|
13
|
-
gc.path 'M20,120 C20,20 170,20 170,120 S320,220 320,120'
|
14
|
-
|
15
|
-
# Annotate
|
16
|
-
# Show end points
|
17
|
-
gc.fill_opacity 0
|
18
|
-
gc.stroke 'gray50'
|
19
|
-
gc.stroke_width 1
|
20
|
-
gc.circle 20, 120, 23, 123
|
21
|
-
gc.circle 170, 120, 173, 123
|
22
|
-
gc.circle 320, 120, 323, 123
|
23
|
-
|
24
|
-
# Show control points
|
25
|
-
gc.fill_opacity 1
|
26
|
-
gc.circle 20, 20, 23, 23
|
27
|
-
gc.circle 170, 20, 173, 23
|
28
|
-
gc.circle 320, 220, 323, 223
|
29
|
-
|
30
|
-
# Show connector lines
|
31
|
-
gc.line 20, 120, 20, 20
|
32
|
-
gc.line 170, 20, 170, 220
|
33
|
-
gc.line 320, 220, 320, 120
|
34
|
-
|
35
|
-
# Show auto control point
|
36
|
-
gc.fill_opacity 0
|
37
|
-
gc.stroke 'blue'
|
38
|
-
gc.stroke_width 3
|
39
|
-
gc.circle 170, 220, 173, 223
|
40
|
-
|
41
|
-
# Add labels
|
42
|
-
gc.font_weight Magick::NormalWeight
|
43
|
-
gc.font_style Magick::NormalStyle
|
44
|
-
gc.stroke 'none' # unset stroke color
|
45
|
-
gc.fill 'black'
|
46
|
-
|
47
|
-
# Add end point labels
|
48
|
-
gc.text 30, 125, "'20,120'"
|
49
|
-
gc.text 180, 125, "'170,120'"
|
50
|
-
gc.text 330, 125, "'320,120'"
|
51
|
-
|
52
|
-
# Add control point labels
|
53
|
-
gc.text 30, 25, "'20,20'"
|
54
|
-
gc.text 180, 25, "'170,20'"
|
55
|
-
gc.text 330, 225, "'320,220'"
|
56
|
-
|
57
|
-
# Add auto control point label
|
58
|
-
gc.text 180, 225, "'auto ctl point'"
|
59
|
-
|
60
|
-
gc.draw imgl
|
61
|
-
|
62
|
-
imgl.border!(1, 1, 'lightcyan2')
|
63
|
-
imgl.write 'path.gif'
|
data/doc/ex/pattern1.rb
DELETED
@@ -1,25 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby -w
|
2
|
-
|
3
|
-
require 'rmagick'
|
4
|
-
|
5
|
-
gc = Magick::Draw.new
|
6
|
-
gc.pattern('triangles', 0, 0, 16, 16) do
|
7
|
-
gc.fill('darkblue')
|
8
|
-
gc.rectangle(0, 0, 16, 16)
|
9
|
-
gc.fill('yellow')
|
10
|
-
gc.stroke('red')
|
11
|
-
gc.polygon(0, 0, 8, 16, 16, 0, 0, 0)
|
12
|
-
end
|
13
|
-
|
14
|
-
gc.stroke('triangles')
|
15
|
-
gc.stroke_width(16)
|
16
|
-
gc.fill('none')
|
17
|
-
gc.ellipse(150, 75, 130, 60, 0, 360)
|
18
|
-
|
19
|
-
img = Magick::Image.new(300, 150, Magick::HatchFill.new('white', 'lightcyan2', 8))
|
20
|
-
gc.draw(img)
|
21
|
-
|
22
|
-
img.border!(1, 1, 'lightcyan2')
|
23
|
-
|
24
|
-
img.write('pattern1.gif')
|
25
|
-
exit
|
data/doc/ex/pattern2.rb
DELETED
@@ -1,26 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby -w
|
2
|
-
|
3
|
-
require 'rmagick'
|
4
|
-
|
5
|
-
hat = Magick::Image.read('images/Flower_Hat.jpg').first
|
6
|
-
hat.resize!(0.25)
|
7
|
-
|
8
|
-
# Construct a pattern using the hat image
|
9
|
-
gc = Magick::Draw.new
|
10
|
-
gc.pattern('hat', 0, 0, hat.columns, hat.rows) do
|
11
|
-
gc.composite(0, 0, 0, 0, hat)
|
12
|
-
end
|
13
|
-
|
14
|
-
# Set the fill to the hat "pattern." Draw an ellipse
|
15
|
-
gc.fill('hat')
|
16
|
-
gc.ellipse(150, 75, 140, 70, 0, 360)
|
17
|
-
|
18
|
-
# Create a canvas to draw on
|
19
|
-
img = Magick::Image.new(300, 150, Magick::HatchFill.new('white', 'lightcyan2', 8))
|
20
|
-
|
21
|
-
# Draw the ellipse using the fill
|
22
|
-
gc.draw(img)
|
23
|
-
|
24
|
-
img.border!(1, 1, 'lightcyan2')
|
25
|
-
img.write('pattern2.gif')
|
26
|
-
exit
|
data/doc/ex/polaroid.rb
DELETED
@@ -1,26 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby -w
|
2
|
-
require 'rmagick'
|
3
|
-
require 'date'
|
4
|
-
|
5
|
-
# Demonstrate the Image#polaroid method
|
6
|
-
|
7
|
-
img = Magick::Image.read('images/Flower_Hat.jpg').first
|
8
|
-
img[:Caption] = "\nLosha\n" + Date.today.to_s
|
9
|
-
|
10
|
-
begin
|
11
|
-
picture = img.polaroid do
|
12
|
-
self.font_weight = Magick::NormalWeight
|
13
|
-
self.font_style = Magick::NormalStyle
|
14
|
-
self.gravity = Magick::CenterGravity
|
15
|
-
self.border_color = '#f0f0f8'
|
16
|
-
end
|
17
|
-
|
18
|
-
# Composite it on a white background so the result is opaque.
|
19
|
-
background = Magick::Image.new(picture.columns, picture.rows)
|
20
|
-
result = background.composite(picture, Magick::CenterGravity, Magick::OverCompositeOp)
|
21
|
-
rescue NotImplementedError
|
22
|
-
result = Magick::Image.read('images/notimplemented.gif').first
|
23
|
-
result.resize!(img.columns, img.rows)
|
24
|
-
end
|
25
|
-
|
26
|
-
result.write('polaroid.jpg')
|