rmagick 2.13.2 → 4.2.2
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 +7 -0
- data/.codeclimate.yml +63 -0
- data/.editorconfig +17 -0
- data/.github/ISSUE_TEMPLATE.md +17 -0
- data/.github/workflows/ci.yml +107 -0
- data/.gitignore +25 -0
- data/.rspec +2 -0
- data/.rubocop.yml +37 -0
- data/.rubocop_todo.yml +449 -0
- data/.yardopts +5 -0
- data/CHANGELOG.md +1277 -0
- data/CODE_OF_CONDUCT.md +128 -0
- data/CONTRIBUTING.md +81 -0
- data/Gemfile +4 -0
- data/LICENSE +20 -0
- data/README.md +324 -0
- data/Rakefile +190 -0
- data/before_install_linux.sh +69 -0
- data/before_install_osx.sh +57 -0
- data/deprecated/RMagick.rb +6 -0
- data/ext/RMagick/extconf.rb +334 -333
- data/ext/RMagick/rmagick.c +129 -127
- data/ext/RMagick/rmagick.h +221 -320
- data/ext/RMagick/rmdraw.c +458 -767
- data/ext/RMagick/rmenum.c +305 -752
- data/ext/RMagick/rmfill.c +231 -199
- data/ext/RMagick/rmilist.c +437 -478
- data/ext/RMagick/rmimage.c +6130 -5342
- data/ext/RMagick/rminfo.c +695 -833
- data/ext/RMagick/rmkinfo.c +198 -0
- data/ext/RMagick/rmmain.c +752 -506
- data/ext/RMagick/rmmontage.c +94 -152
- data/ext/RMagick/rmpixel.c +619 -425
- data/ext/RMagick/rmstruct.c +206 -309
- data/ext/RMagick/rmutil.c +514 -344
- data/lib/rmagick/version.rb +5 -0
- data/lib/rmagick.rb +1 -0
- data/lib/rmagick_internal.rb +1922 -0
- data/lib/rvg/clippath.rb +35 -39
- data/lib/rvg/container.rb +123 -124
- data/lib/rvg/deep_equal.rb +45 -49
- data/lib/rvg/describable.rb +41 -47
- data/lib/rvg/embellishable.rb +380 -411
- data/lib/rvg/misc.rb +691 -711
- data/lib/rvg/paint.rb +43 -47
- data/lib/rvg/pathdata.rb +119 -125
- data/lib/rvg/rvg.rb +214 -213
- data/lib/rvg/stretchable.rb +153 -162
- data/lib/rvg/stylable.rb +111 -117
- data/lib/rvg/text.rb +169 -180
- data/lib/rvg/transformable.rb +121 -127
- data/lib/rvg/units.rb +58 -61
- data/rmagick.gemspec +36 -16
- metadata +188 -365
- data/ChangeLog +0 -773
- data/Doxyfile +0 -1514
- data/README-Mac-OSX.txt +0 -1
- data/README.html +0 -10
- data/build_tarball.rake +0 -215
- 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 -3269
- data/doc/ex/InitialCoords.rb +0 -23
- data/doc/ex/NewCoordSys.rb +0 -32
- data/doc/ex/OrigCoordSys.rb +0 -18
- data/doc/ex/PreserveAspectRatio.rb +0 -205
- data/doc/ex/RotateScale.rb +0 -37
- data/doc/ex/Skew.rb +0 -38
- data/doc/ex/Use01.rb +0 -16
- data/doc/ex/Use02.rb +0 -21
- data/doc/ex/Use03.rb +0 -16
- data/doc/ex/ViewBox.rb +0 -33
- data/doc/ex/adaptive_threshold.rb +0 -10
- data/doc/ex/add_noise.rb +0 -17
- 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 -33
- data/doc/ex/arcs01.rb +0 -28
- data/doc/ex/arcs02.rb +0 -61
- data/doc/ex/average.rb +0 -15
- data/doc/ex/axes.rb +0 -64
- data/doc/ex/baseline_shift01.rb +0 -18
- data/doc/ex/bilevel_channel.rb +0 -9
- data/doc/ex/blur_image.rb +0 -12
- data/doc/ex/border.rb +0 -10
- data/doc/ex/bounding_box.rb +0 -44
- data/doc/ex/cbezier1.rb +0 -42
- data/doc/ex/cbezier2.rb +0 -42
- data/doc/ex/cbezier3.rb +0 -42
- data/doc/ex/cbezier4.rb +0 -43
- data/doc/ex/cbezier5.rb +0 -43
- data/doc/ex/cbezier6.rb +0 -53
- data/doc/ex/channel.rb +0 -26
- 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 -17
- data/doc/ex/clip_path.rb +0 -60
- data/doc/ex/coalesce.rb +0 -60
- 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 -48
- 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 -23
- data/doc/ex/composite.rb +0 -135
- data/doc/ex/composite_layers.rb +0 -53
- data/doc/ex/composite_tiled.rb +0 -23
- data/doc/ex/contrast.rb +0 -36
- data/doc/ex/crop.rb +0 -31
- data/doc/ex/crop_with_gravity.rb +0 -46
- data/doc/ex/cubic01.rb +0 -45
- data/doc/ex/cubic02.rb +0 -94
- data/doc/ex/cycle_colormap.rb +0 -21
- data/doc/ex/dissolve.rb +0 -13
- data/doc/ex/drawcomp.rb +0 -42
- 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 -22
- 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 -43
- data/doc/ex/fill_pattern.rb +0 -26
- 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 -34
- data/doc/ex/fonts.rb +0 -20
- data/doc/ex/frame.rb +0 -12
- data/doc/ex/gaussian_blur.rb +0 -11
- data/doc/ex/get_multiline_type_metrics.rb +0 -42
- data/doc/ex/get_pixels.rb +0 -48
- data/doc/ex/get_type_metrics.rb +0 -146
- data/doc/ex/gradientfill.rb +0 -27
- data/doc/ex/grav.rb +0 -46
- data/doc/ex/gravity.rb +0 -79
- data/doc/ex/group.rb +0 -26
- data/doc/ex/hatchfill.rb +0 -27
- data/doc/ex/image.rb +0 -46
- 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.wmf +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.wmf +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.wmf +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/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 -42
- data/doc/ex/line01.rb +0 -23
- data/doc/ex/mask.rb +0 -36
- data/doc/ex/matte_fill_to_border.rb +0 -40
- data/doc/ex/matte_floodfill.rb +0 -33
- data/doc/ex/matte_replace.rb +0 -40
- 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 -26
- data/doc/ex/mosaic.rb +0 -35
- 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 -43
- 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 -64
- data/doc/ex/pattern1.rb +0 -25
- data/doc/ex/pattern2.rb +0 -26
- data/doc/ex/polaroid.rb +0 -28
- data/doc/ex/polygon.rb +0 -24
- data/doc/ex/polygon01.rb +0 -23
- data/doc/ex/polyline.rb +0 -23
- data/doc/ex/polyline01.rb +0 -23
- data/doc/ex/posterize.rb +0 -8
- data/doc/ex/preview.rb +0 -9
- data/doc/ex/qbezierpath.rb +0 -52
- data/doc/ex/quad01.rb +0 -36
- 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 -15
- data/doc/ex/rect02.rb +0 -22
- data/doc/ex/rectangle.rb +0 -35
- data/doc/ex/reduce_noise.rb +0 -28
- data/doc/ex/remap.rb +0 -12
- data/doc/ex/remap_images.rb +0 -21
- data/doc/ex/resize_to_fill.rb +0 -10
- data/doc/ex/resize_to_fit.rb +0 -10
- data/doc/ex/roll.rb +0 -9
- data/doc/ex/rotate.rb +0 -45
- data/doc/ex/rotate_f.rb +0 -14
- data/doc/ex/roundrect.rb +0 -34
- data/doc/ex/rubyname.rb +0 -30
- data/doc/ex/rvg_clippath.rb +0 -14
- data/doc/ex/rvg_linecap.rb +0 -43
- data/doc/ex/rvg_linejoin.rb +0 -41
- data/doc/ex/rvg_opacity.rb +0 -19
- data/doc/ex/rvg_pattern.rb +0 -26
- data/doc/ex/rvg_stroke_dasharray.rb +0 -12
- data/doc/ex/segment.rb +0 -11
- data/doc/ex/sepiatone.rb +0 -8
- data/doc/ex/shade.rb +0 -11
- data/doc/ex/shadow.rb +0 -31
- data/doc/ex/shave.rb +0 -15
- data/doc/ex/shear.rb +0 -10
- data/doc/ex/sketch.rb +0 -18
- data/doc/ex/skewx.rb +0 -52
- data/doc/ex/skewy.rb +0 -47
- data/doc/ex/smile.rb +0 -125
- data/doc/ex/solarize.rb +0 -11
- data/doc/ex/sparse_color.rb +0 -55
- data/doc/ex/splice.rb +0 -9
- data/doc/ex/spread.rb +0 -11
- data/doc/ex/stegano.rb +0 -55
- data/doc/ex/stroke_dasharray.rb +0 -43
- data/doc/ex/stroke_fill.rb +0 -11
- 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 -17
- data/doc/ex/text_align.rb +0 -36
- data/doc/ex/text_antialias.rb +0 -38
- data/doc/ex/text_styles.rb +0 -21
- 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 -25
- data/doc/ex/threshold.rb +0 -13
- data/doc/ex/to_blob.rb +0 -14
- 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 -25
- data/doc/ex/triangle01.rb +0 -16
- data/doc/ex/trim.rb +0 -24
- data/doc/ex/tspan01.rb +0 -18
- data/doc/ex/tspan02.rb +0 -19
- data/doc/ex/tspan03.rb +0 -21
- data/doc/ex/unsharp_mask.rb +0 -28
- data/doc/ex/viewex.rb +0 -35
- data/doc/ex/vignette.rb +0 -12
- data/doc/ex/watermark.rb +0 -28
- data/doc/ex/wave.rb +0 -9
- data/doc/ex/wet_floor.rb +0 -59
- data/doc/ex/writing_mode01.rb +0 -27
- 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 -565
- 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 -46
- data/examples/demo.rb +0 -324
- data/examples/describe.rb +0 -44
- data/examples/find_similar_region.rb +0 -34
- data/examples/histogram.rb +0 -325
- data/examples/identify.rb +0 -187
- data/examples/image_opacity.rb +0 -29
- data/examples/import_export.rb +0 -31
- data/examples/pattern_fill.rb +0 -38
- data/examples/rotating_text.rb +0 -45
- data/examples/spinner.rb +0 -50
- data/examples/thumbnail.rb +0 -65
- data/examples/vignette.rb +0 -79
- data/ext/RMagick/MANIFEST +0 -358
- data/lib/RMagick.rb +0 -1962
- data/metaconfig +0 -7
- data/post-clean.rb +0 -12
- data/post-install.rb +0 -50
- data/post-setup.rb +0 -254
- data/setup.rb +0 -1585
- data/uninstall.rb +0 -76
data/doc/ex/get_pixels.rb
DELETED
@@ -1,48 +0,0 @@
|
|
1
|
-
#! /usr/local/bin/ruby -w
|
2
|
-
require 'RMagick'
|
3
|
-
|
4
|
-
# Demonstrate partial transparency and the get_pixels and
|
5
|
-
# store_pixels methods by creating an image that goes from
|
6
|
-
# full-color on the left to monochrome on the right.
|
7
|
-
|
8
|
-
# Read the colorful picture of a rock formation. Scale
|
9
|
-
# it to 300 pixels high because we don't want a big picture.
|
10
|
-
rocks = Magick::Image.read('images/Red_Rocks.jpg').first
|
11
|
-
rocks.scale!(250.0/rocks.rows)
|
12
|
-
|
13
|
-
# Make a monochrome copy. See Image#quantize for details
|
14
|
-
grayrocks = rocks.quantize(256, Magick::GRAYColorspace)
|
15
|
-
|
16
|
-
rows = grayrocks.rows
|
17
|
-
cols = grayrocks.columns
|
18
|
-
|
19
|
-
# Create an array of opacity values, proceeding from
|
20
|
-
# transparent to opaque. The array should have as many
|
21
|
-
# elements as there are columns in the image. The first
|
22
|
-
# element should be TransparentOpacity and each succeeding
|
23
|
-
# element slightly more opaque than its predecessor.
|
24
|
-
step = Magick::TransparentOpacity / cols.to_f
|
25
|
-
opacity_steps = Array.new(cols)
|
26
|
-
cols.times { |x|
|
27
|
-
opacity_steps[x] = Magick::TransparentOpacity - Integer(x * step)
|
28
|
-
if opacity_steps[x] < Magick::OpaqueOpacity
|
29
|
-
opacity_steps[x] = Magick::OpaqueOpacity
|
30
|
-
end
|
31
|
-
}
|
32
|
-
|
33
|
-
# Get each row of pixels from the mono image.
|
34
|
-
# Copy the pre-computed opacity values to the pixels.
|
35
|
-
# Store the pixels back.
|
36
|
-
rows.times { |y|
|
37
|
-
pixels = grayrocks.get_pixels(0, y, cols, 1)
|
38
|
-
pixels.each_with_index { |p,x| p.opacity = opacity_steps[x] }
|
39
|
-
grayrocks.store_pixels(0, y, cols, 1, pixels)
|
40
|
-
}
|
41
|
-
|
42
|
-
# Composite the mono version of the image over the color version.
|
43
|
-
grayrocks.matte = true
|
44
|
-
combine = rocks.composite(grayrocks, Magick::CenterGravity, Magick::OverCompositeOp)
|
45
|
-
#combine.display
|
46
|
-
combine.write 'get_pixels.jpg'
|
47
|
-
exit
|
48
|
-
|
data/doc/ex/get_type_metrics.rb
DELETED
@@ -1,146 +0,0 @@
|
|
1
|
-
#! /usr/local/bin/ruby -w
|
2
|
-
require 'RMagick'
|
3
|
-
|
4
|
-
# Add a method for drawing braces.
|
5
|
-
module Magick
|
6
|
-
class Draw
|
7
|
-
|
8
|
-
# (w,h) - width & height of rectangle enclosing brace.
|
9
|
-
# Normally the brace is drawn with its opening to the
|
10
|
-
# left and its lower point on the origin.
|
11
|
-
#
|
12
|
-
# Set w < 0 to draw right-opening brace. Set h < 0 to
|
13
|
-
# position top point at origin.
|
14
|
-
#
|
15
|
-
# The placement & orientation is affected by the
|
16
|
-
# current user coordinate system.
|
17
|
-
def brace(w, h)
|
18
|
-
raise(ArgumentError, "width must be != 0") unless w != 0
|
19
|
-
raise(ArgumentError, "height must be != 0") unless h != 0
|
20
|
-
path("M0,0 Q#{w},0 #{w/2.0},#{-h/4.0} T#{w},#{-h/2.0}" +
|
21
|
-
"Q0,#{-h/2.0} #{w/2.0},#{-(3.0*h/4.0)} T0,#{-h}")
|
22
|
-
end
|
23
|
-
|
24
|
-
end # class Draw
|
25
|
-
end
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
Origin_x = 110
|
30
|
-
Origin_y = 230
|
31
|
-
Glyph = 'g'
|
32
|
-
Face = RUBY_PLATFORM =~ /mswin/ ? "Verdana" : "Times"
|
33
|
-
|
34
|
-
canvas = Magick::Image.new(410, 320, Magick::HatchFill.new('white', 'lightcyan2'))
|
35
|
-
|
36
|
-
# Draw a big lowercase 'g' on the canvas. Leave room on all sides for
|
37
|
-
# the labels. Use 'undercolor' to set off the glyph.
|
38
|
-
glyph = Magick::Draw.new
|
39
|
-
glyph.annotate(canvas, 0, 0, Origin_x, Origin_y, Glyph) do
|
40
|
-
glyph.pointsize = 124
|
41
|
-
glyph.stroke = 'none'
|
42
|
-
glyph.fill = 'black'
|
43
|
-
glyph.font_family = Face
|
44
|
-
glyph.undercolor = '#ffff00c0'
|
45
|
-
end
|
46
|
-
|
47
|
-
# Call get_type_metrics. This is what this example's all about.
|
48
|
-
metrics = glyph.get_type_metrics(canvas, Glyph)
|
49
|
-
|
50
|
-
gc = Magick::Draw.new
|
51
|
-
gc.translate(Origin_x, Origin_y)
|
52
|
-
|
53
|
-
# Draw the origin as a big red dot.
|
54
|
-
gc.stroke('red')
|
55
|
-
gc.fill('red')
|
56
|
-
gc.circle(0, 0, 0, 2)
|
57
|
-
|
58
|
-
# All our lines will be medium-gray, dashed, and thin.
|
59
|
-
gc.stroke('gray50')
|
60
|
-
gc.stroke_dasharray(5,2)
|
61
|
-
gc.stroke_width(1)
|
62
|
-
gc.fill('none')
|
63
|
-
|
64
|
-
# baseline
|
65
|
-
gc.line(-10, 0, metrics.width+20, 0)
|
66
|
-
|
67
|
-
# a vertical line through the origin
|
68
|
-
gc.line(0, -metrics.descent-metrics.height-10, 0, -metrics.descent+15)
|
69
|
-
|
70
|
-
# descent
|
71
|
-
gc.line(-10, -metrics.descent, metrics.width+20, -metrics.descent)
|
72
|
-
|
73
|
-
# ascent
|
74
|
-
gc.line(-10, -metrics.ascent, metrics.width+20, -metrics.ascent)
|
75
|
-
|
76
|
-
# height
|
77
|
-
gc.line(-10, -metrics.descent-metrics.height,
|
78
|
-
metrics.width+10, -metrics.descent-metrics.height)
|
79
|
-
|
80
|
-
# width
|
81
|
-
gc.line(metrics.width, -metrics.descent-metrics.height-10,
|
82
|
-
metrics.width, -metrics.descent+20)
|
83
|
-
|
84
|
-
# max_advance
|
85
|
-
gc.line(metrics.max_advance, -10, metrics.max_advance, -metrics.descent+20)
|
86
|
-
|
87
|
-
gc.draw(canvas)
|
88
|
-
|
89
|
-
# Draw the braces and labels. Position the braces by transforming the
|
90
|
-
# user coordinate system with translate and rotate methods.
|
91
|
-
gc = Magick::Draw.new
|
92
|
-
gc.font_family('Face')
|
93
|
-
gc.pointsize(13)
|
94
|
-
gc.fill('none')
|
95
|
-
gc.stroke('black')
|
96
|
-
gc.stroke_width(1)
|
97
|
-
gc.translate(Origin_x, Origin_y)
|
98
|
-
|
99
|
-
# between origin and descent
|
100
|
-
gc.push
|
101
|
-
gc.translate(metrics.width+23, 0)
|
102
|
-
gc.brace(10, metrics.descent)
|
103
|
-
gc.pop
|
104
|
-
|
105
|
-
# between origin and ascent
|
106
|
-
gc.push
|
107
|
-
gc.translate(metrics.width+23, 0)
|
108
|
-
gc.brace(10, metrics.ascent)
|
109
|
-
gc.pop
|
110
|
-
|
111
|
-
# between origin and height
|
112
|
-
gc.push
|
113
|
-
gc.translate(-13, -metrics.descent-metrics.height)
|
114
|
-
gc.rotate(180)
|
115
|
-
gc.brace(10, metrics.height)
|
116
|
-
gc.pop
|
117
|
-
|
118
|
-
# between origin and width
|
119
|
-
gc.push
|
120
|
-
gc.translate(metrics.width, -metrics.descent-metrics.height-10-3)
|
121
|
-
gc.rotate(-90)
|
122
|
-
gc.brace(10, metrics.width)
|
123
|
-
gc.pop
|
124
|
-
|
125
|
-
# between origin and max_advance
|
126
|
-
gc.push
|
127
|
-
gc.translate(0, -metrics.descent+15)
|
128
|
-
gc.rotate(90)
|
129
|
-
gc.brace(10, metrics.max_advance)
|
130
|
-
gc.pop
|
131
|
-
|
132
|
-
# Add labels
|
133
|
-
gc.font_weight(Magick::NormalWeight)
|
134
|
-
gc.font_style(Magick::NormalStyle)
|
135
|
-
gc.stroke('none')
|
136
|
-
gc.fill('black')
|
137
|
-
gc.text(metrics.width+40, -(metrics.ascent/2)+4, 'ascent')
|
138
|
-
gc.text(metrics.width+40, -(metrics.descent/2)+4, 'descent')
|
139
|
-
gc.text(-60, -metrics.descent-metrics.height/2+4, 'height')
|
140
|
-
gc.text((metrics.width/2)-15, -metrics.descent-metrics.height-25, 'width')
|
141
|
-
gc.text((metrics.max_advance)/2-38, -metrics.descent+35, "max_advance")
|
142
|
-
|
143
|
-
gc.draw(canvas)
|
144
|
-
canvas.border!(1,1,'blue')
|
145
|
-
canvas.write('get_type_metrics.gif')
|
146
|
-
|
data/doc/ex/gradientfill.rb
DELETED
@@ -1,27 +0,0 @@
|
|
1
|
-
#! /usr/local/bin/ruby -w
|
2
|
-
require 'RMagick'
|
3
|
-
|
4
|
-
# Demonstrate the GradientFill class
|
5
|
-
|
6
|
-
Rows = 100
|
7
|
-
Cols = 300
|
8
|
-
|
9
|
-
Start = "#900"
|
10
|
-
End = "#000"
|
11
|
-
|
12
|
-
fill = Magick::GradientFill.new(0, 0, 0, Rows, Start, End)
|
13
|
-
img = Magick::Image.new(Cols, Rows, fill);
|
14
|
-
|
15
|
-
# Annotate the filled image with the code that created the fill.
|
16
|
-
|
17
|
-
ann = Magick::Draw.new
|
18
|
-
ann.annotate(img, 0,0,0,0, "GradientFill.new(0, 0, 0, #{Rows}, '#{Start}', '#{End}')") {
|
19
|
-
self.gravity = Magick::CenterGravity
|
20
|
-
self.fill = 'white'
|
21
|
-
self.stroke = 'transparent'
|
22
|
-
self.pointsize = 14
|
23
|
-
}
|
24
|
-
|
25
|
-
#img.display
|
26
|
-
img.write("gradientfill.gif")
|
27
|
-
exit
|
data/doc/ex/grav.rb
DELETED
@@ -1,46 +0,0 @@
|
|
1
|
-
#! /usr/local/bin/ruby -w
|
2
|
-
|
3
|
-
require 'RMagick'
|
4
|
-
|
5
|
-
imgl = Magick::ImageList.new
|
6
|
-
imgl.new_image(400,200, Magick::HatchFill.new('white', 'lightcyan2'))
|
7
|
-
|
8
|
-
gc = Magick::Draw.new
|
9
|
-
|
10
|
-
# Draw blue lines to indicate positioning
|
11
|
-
gc.stroke('blue')
|
12
|
-
gc.fill('transparent')
|
13
|
-
gc.rectangle(20,20, 380,180)
|
14
|
-
gc.line(200,20, 200,180)
|
15
|
-
gc.line(20,100, 380,100)
|
16
|
-
|
17
|
-
# Draw text at all 9 compass points.
|
18
|
-
gc.font_weight(Magick::NormalWeight)
|
19
|
-
gc.font_style(Magick::NormalStyle)
|
20
|
-
gc.stroke('transparent')
|
21
|
-
gc.fill('black')
|
22
|
-
gc.gravity(Magick::NorthWestGravity)
|
23
|
-
gc.text(20,20, 'NorthWestGravity')
|
24
|
-
gc.gravity(Magick::NorthGravity)
|
25
|
-
gc.text( 0,20, 'NorthGravity')
|
26
|
-
gc.gravity(Magick::NorthEastGravity)
|
27
|
-
gc.text(20,20, 'NorthEastGravity')
|
28
|
-
gc.gravity(Magick::WestGravity)
|
29
|
-
gc.text(20, 0, 'WestGravity')
|
30
|
-
gc.gravity(Magick::CenterGravity)
|
31
|
-
gc.text( 0, 0, 'CenterGravity')
|
32
|
-
gc.gravity(Magick::EastGravity)
|
33
|
-
gc.text(20, 0, 'EastGravity')
|
34
|
-
gc.gravity(Magick::SouthWestGravity)
|
35
|
-
gc.text(20,20, 'SouthWestGravity')
|
36
|
-
gc.gravity(Magick::SouthGravity)
|
37
|
-
gc.text( 0,20, 'SouthGravity')
|
38
|
-
gc.gravity(Magick::SouthEastGravity)
|
39
|
-
gc.text(20,20, 'SouthEastGravity')
|
40
|
-
gc.draw(imgl)
|
41
|
-
|
42
|
-
imgl.border!(1,1, "lightcyan2")
|
43
|
-
|
44
|
-
imgl.write("grav.gif")
|
45
|
-
exit
|
46
|
-
|
data/doc/ex/gravity.rb
DELETED
@@ -1,79 +0,0 @@
|
|
1
|
-
#! /usr/local/bin/ruby -w
|
2
|
-
#
|
3
|
-
# A RMagick version of Magick++/demo/gravity.cpp
|
4
|
-
#
|
5
|
-
|
6
|
-
require 'RMagick'
|
7
|
-
|
8
|
-
x, y = 100, 100
|
9
|
-
|
10
|
-
begin
|
11
|
-
|
12
|
-
pic = Magick::ImageList.new
|
13
|
-
|
14
|
-
lines = Magick::Draw.new
|
15
|
-
lines.stroke "#600"
|
16
|
-
lines.fill_opacity 0
|
17
|
-
lines.line 300,100, 300,500
|
18
|
-
lines.line 100,300, 500,300
|
19
|
-
lines.rectangle 100,100, 500,500
|
20
|
-
|
21
|
-
draw = Magick::Draw.new
|
22
|
-
draw.pointsize = 30
|
23
|
-
draw.fill = "#600"
|
24
|
-
draw.undercolor = "red"
|
25
|
-
|
26
|
-
0.step(330, 30) { |angle|
|
27
|
-
puts "angle #{angle}"
|
28
|
-
pic.new_image(600, 600) { self.background_color = "white" }
|
29
|
-
|
30
|
-
lines.draw pic
|
31
|
-
|
32
|
-
draw.annotate(pic, 0,0,x,y, "NorthWest") {
|
33
|
-
self.gravity = Magick::NorthWestGravity
|
34
|
-
self.rotation = angle
|
35
|
-
}
|
36
|
-
draw.annotate(pic, 0,0,0,y, "North") {
|
37
|
-
self.gravity = Magick::NorthGravity
|
38
|
-
self.rotation = angle
|
39
|
-
}
|
40
|
-
draw.annotate(pic, 0,0,x,y, "NorthEast") {
|
41
|
-
self.gravity = Magick::NorthEastGravity
|
42
|
-
self.rotation = angle
|
43
|
-
}
|
44
|
-
draw.annotate(pic, 0,0,x,0, "East") {
|
45
|
-
self.gravity = Magick::EastGravity
|
46
|
-
self.rotation = angle
|
47
|
-
}
|
48
|
-
draw.annotate(pic, 0,0,0,0, "Center") {
|
49
|
-
self.gravity = Magick::CenterGravity
|
50
|
-
self.rotation = angle
|
51
|
-
}
|
52
|
-
draw.annotate(pic, 0,0,x,y, "SouthEast") {
|
53
|
-
self.gravity = Magick::SouthEastGravity
|
54
|
-
self.rotation = angle
|
55
|
-
}
|
56
|
-
draw.annotate(pic, 0,0,0,y, "South") {
|
57
|
-
self.gravity = Magick::SouthGravity
|
58
|
-
self.rotation = angle
|
59
|
-
}
|
60
|
-
draw.annotate(pic, 0,0,x,y, "SouthWest") {
|
61
|
-
self.gravity = Magick::SouthWestGravity
|
62
|
-
self.rotation = angle
|
63
|
-
}
|
64
|
-
draw.annotate(pic, 0,0,x,0, "West") {
|
65
|
-
self.gravity = Magick::WestGravity
|
66
|
-
self.rotation = angle
|
67
|
-
}
|
68
|
-
}
|
69
|
-
|
70
|
-
puts "Writing image \"rm_gravity_out.miff\"..."
|
71
|
-
pic.delay = 20
|
72
|
-
pic.write "./rm_gravity_out.miff"
|
73
|
-
|
74
|
-
rescue
|
75
|
-
puts "#{$!} exception raised."
|
76
|
-
exit 1
|
77
|
-
end
|
78
|
-
|
79
|
-
exit 0
|
data/doc/ex/group.rb
DELETED
@@ -1,26 +0,0 @@
|
|
1
|
-
require 'rvg/rvg'
|
2
|
-
|
3
|
-
Magick::RVG.dpi = 90
|
4
|
-
|
5
|
-
rvg = Magick::RVG.new(6.cm, 4.cm).viewbox(0,0,600,400) do |canvas|
|
6
|
-
canvas.background_fill = 'white'
|
7
|
-
canvas.rect(595,395,1,1).styles(:stroke=>'blue', :fill=>'none', :stroke_width=>2)
|
8
|
-
|
9
|
-
# Define a stick figure.
|
10
|
-
stick = Magick::RVG::Group.new.styles(:stroke=>'black', :fill=>'none', :stroke_width=>6) do |fig|
|
11
|
-
fig.circle(42, 50, 50).styles(:stroke=>'red')
|
12
|
-
fig.polyline(30,40, 50,40, 45,60, 50,40, 65,40).styles(:stroke_width=>4)
|
13
|
-
fig.polyline(10,100, 50,130, 90,100)
|
14
|
-
fig.line(50,97, 50, 155)
|
15
|
-
fig.polyline(10,200, 50,155, 90,200)
|
16
|
-
end
|
17
|
-
|
18
|
-
# Draw 12 copies.
|
19
|
-
2.times {|y|
|
20
|
-
6.times {|x|
|
21
|
-
canvas.use(stick, x*100, y*200)
|
22
|
-
}
|
23
|
-
}
|
24
|
-
end
|
25
|
-
|
26
|
-
rvg.draw.write('group.gif')
|
data/doc/ex/hatchfill.rb
DELETED
@@ -1,27 +0,0 @@
|
|
1
|
-
#! /usr/local/bin/ruby -w
|
2
|
-
require 'RMagick'
|
3
|
-
|
4
|
-
# Demonstrate the HatchFill class
|
5
|
-
|
6
|
-
Cols = 300
|
7
|
-
Rows = 100
|
8
|
-
|
9
|
-
Background = "white"
|
10
|
-
Foreground = "LightCyan2"
|
11
|
-
|
12
|
-
fill = Magick::HatchFill.new(Background, Foreground)
|
13
|
-
img = Magick::ImageList.new
|
14
|
-
img.new_image(Cols, Rows, fill)
|
15
|
-
|
16
|
-
# Annotate the filled image with the code that created the fill.
|
17
|
-
|
18
|
-
ann = Magick::Draw.new
|
19
|
-
ann.annotate(img, 0,0,0,0, "HatchFill.new('#{Background}', '#{Foreground}')") {
|
20
|
-
self.gravity = Magick::CenterGravity
|
21
|
-
self.fill = 'black'
|
22
|
-
self.stroke = 'transparent'
|
23
|
-
self.pointsize = 14
|
24
|
-
}
|
25
|
-
#img.display
|
26
|
-
img.write('hatchfill.gif')
|
27
|
-
exit
|
data/doc/ex/image.rb
DELETED
@@ -1,46 +0,0 @@
|
|
1
|
-
require 'rvg/rvg'
|
2
|
-
|
3
|
-
rvg = Magick::RVG.new(525, 270) do |canvas|
|
4
|
-
canvas.background_fill = 'white'
|
5
|
-
canvas.rect(524, 269).styles(:fill=>'none', :stroke=>'blue', :stroke_width=>1)
|
6
|
-
|
7
|
-
hat = ::Magick::Image.read('images/Flower_Hat.jpg').first
|
8
|
-
|
9
|
-
canvas.image(hat, 100, 75, 25, 40).preserve_aspect_ratio('none')
|
10
|
-
canvas.rect(100, 75, 25, 40).styles(:fill => 'none', :stroke => 'blue')
|
11
|
-
|
12
|
-
canvas.image(hat, 100, 75, 150, 40).preserve_aspect_ratio('xMinYMin', 'meet')
|
13
|
-
canvas.rect(100, 75, 150, 40).styles(:fill => 'none', :stroke => 'blue')
|
14
|
-
|
15
|
-
canvas.image(hat, 100, 75, 275, 40).preserve_aspect_ratio('xMidYMid', 'meet')
|
16
|
-
canvas.rect(100, 75, 275, 40).styles(:fill => 'none', :stroke => 'blue')
|
17
|
-
|
18
|
-
canvas.image(hat, 100, 75, 400, 40).preserve_aspect_ratio('xMaxYMax', 'meet')
|
19
|
-
canvas.rect(100, 75, 400, 40).styles(:fill => 'none', :stroke => 'blue')
|
20
|
-
|
21
|
-
canvas.image(hat, 100, 75, 150, 155).preserve_aspect_ratio('xMinYMin', 'slice')
|
22
|
-
canvas.rect(100, 75, 150, 155).styles(:fill => 'none', :stroke => 'blue')
|
23
|
-
|
24
|
-
canvas.image(hat, 100, 75, 275, 155).preserve_aspect_ratio('xMidYMid', 'slice')
|
25
|
-
canvas.rect(100, 75, 275, 155).styles(:fill => 'none', :stroke => 'blue')
|
26
|
-
|
27
|
-
canvas.image(hat, 100, 75, 400, 155).preserve_aspect_ratio('xMaxYMax', 'slice')
|
28
|
-
canvas.rect(100, 75, 400, 155).styles(:fill => 'none', :stroke => 'blue')
|
29
|
-
|
30
|
-
canvas.line(150, 20, 305, 20)
|
31
|
-
canvas.line(345, 20, 500, 20)
|
32
|
-
canvas.line(150, 250, 305, 250)
|
33
|
-
canvas.line(340, 250, 500, 250)
|
34
|
-
canvas.g.styles(:stroke=>'none', :font_weight=>'normal', :font_style=>'normal') do |t|
|
35
|
-
t.text(310, 23, 'meet')
|
36
|
-
t.text(60, 140, 'none')
|
37
|
-
t.text(170, 140, 'xMinYMin')
|
38
|
-
t.text(300, 140, 'xMidYMid')
|
39
|
-
t.text(425, 140, 'xMaxYMax')
|
40
|
-
t.text(310, 253, 'slice')
|
41
|
-
end
|
42
|
-
|
43
|
-
end
|
44
|
-
|
45
|
-
rvg.draw.write('image.gif')
|
46
|
-
|
data/doc/ex/images/Apple.miff
DELETED
Binary file
|
data/doc/ex/images/Ballerina.jpg
DELETED
Binary file
|
Binary file
|
data/doc/ex/images/Button_0.gif
DELETED
Binary file
|
data/doc/ex/images/Button_1.gif
DELETED
Binary file
|
data/doc/ex/images/Button_2.gif
DELETED
Binary file
|
data/doc/ex/images/Button_3.gif
DELETED
Binary file
|
data/doc/ex/images/Button_4.gif
DELETED
Binary file
|
data/doc/ex/images/Button_5.gif
DELETED
Binary file
|
data/doc/ex/images/Button_6.gif
DELETED
Binary file
|
data/doc/ex/images/Button_7.gif
DELETED
Binary file
|
data/doc/ex/images/Button_8.gif
DELETED
Binary file
|
data/doc/ex/images/Button_9.gif
DELETED
Binary file
|
data/doc/ex/images/Button_A.gif
DELETED
Binary file
|
data/doc/ex/images/Button_B.gif
DELETED
Binary file
|
data/doc/ex/images/Button_C.gif
DELETED
Binary file
|
data/doc/ex/images/Button_D.gif
DELETED
Binary file
|
data/doc/ex/images/Button_E.gif
DELETED
Binary file
|
data/doc/ex/images/Button_F.gif
DELETED
Binary file
|
data/doc/ex/images/Button_G.gif
DELETED
Binary file
|
data/doc/ex/images/Button_H.gif
DELETED
Binary file
|
data/doc/ex/images/Button_I.gif
DELETED
Binary file
|
data/doc/ex/images/Button_J.gif
DELETED
Binary file
|
data/doc/ex/images/Button_K.gif
DELETED
Binary file
|
data/doc/ex/images/Button_L.gif
DELETED
Binary file
|
data/doc/ex/images/Button_M.gif
DELETED
Binary file
|
data/doc/ex/images/Button_N.gif
DELETED
Binary file
|
data/doc/ex/images/Button_O.gif
DELETED
Binary file
|
data/doc/ex/images/Button_P.gif
DELETED
Binary file
|
data/doc/ex/images/Button_Q.gif
DELETED
Binary file
|
data/doc/ex/images/Button_R.gif
DELETED
Binary file
|
data/doc/ex/images/Button_S.gif
DELETED
Binary file
|
data/doc/ex/images/Button_T.gif
DELETED
Binary file
|
data/doc/ex/images/Button_U.gif
DELETED
Binary file
|
data/doc/ex/images/Button_V.gif
DELETED
Binary file
|
data/doc/ex/images/Button_W.gif
DELETED
Binary file
|
data/doc/ex/images/Button_X.gif
DELETED
Binary file
|
data/doc/ex/images/Button_Y.gif
DELETED
Binary file
|
data/doc/ex/images/Button_Z.gif
DELETED
Binary file
|
data/doc/ex/images/Cheetah.jpg
DELETED
Binary file
|
data/doc/ex/images/Coffee.wmf
DELETED
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
data/doc/ex/images/Leaf.miff
DELETED
Binary file
|
data/doc/ex/images/No.wmf
DELETED
Binary file
|
data/doc/ex/images/Polynesia.jpg
DELETED
Binary file
|
data/doc/ex/images/Red_Rocks.jpg
DELETED
Binary file
|
Binary file
|
data/doc/ex/images/Shorts.jpg
DELETED
Binary file
|
data/doc/ex/images/Snake.wmf
DELETED
Binary file
|
data/doc/ex/images/Violin.jpg
DELETED
Binary file
|
Binary file
|
data/doc/ex/images/big-duck.gif
DELETED
Binary file
|
data/doc/ex/images/duck.gif
DELETED
Binary file
|
data/doc/ex/images/duck0.gif
DELETED
Binary file
|
data/doc/ex/images/duck1.gif
DELETED
Binary file
|
data/doc/ex/images/duck10.gif
DELETED
Binary file
|
data/doc/ex/images/duck11.gif
DELETED
Binary file
|
data/doc/ex/images/duck12.gif
DELETED
Binary file
|
data/doc/ex/images/duck13.gif
DELETED
Binary file
|
data/doc/ex/images/duck14.gif
DELETED
Binary file
|
data/doc/ex/images/duck15.gif
DELETED
Binary file
|
data/doc/ex/images/duck2.gif
DELETED
Binary file
|
data/doc/ex/images/duck3.gif
DELETED
Binary file
|
data/doc/ex/images/duck4.gif
DELETED
Binary file
|
data/doc/ex/images/duck5.gif
DELETED
Binary file
|
data/doc/ex/images/duck6.gif
DELETED
Binary file
|
data/doc/ex/images/duck7.gif
DELETED
Binary file
|
data/doc/ex/images/duck8.gif
DELETED
Binary file
|
data/doc/ex/images/duck9.gif
DELETED
Binary file
|
Binary file
|
Binary file
|
data/doc/ex/images/model.miff
DELETED
Binary file
|
Binary file
|
data/doc/ex/images/smile.miff
DELETED
Binary file
|
data/doc/ex/images/spin.gif
DELETED
Binary file
|