rmagick 2.8.0 → 2.9.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.

Files changed (88) hide show
  1. data/ChangeLog +10 -2
  2. data/README.html +7 -7
  3. data/doc/comtasks.html +2 -2
  4. data/doc/constants.html +5 -5
  5. data/doc/draw.html +131 -20
  6. data/doc/ex/InitialCoords.rb +1 -1
  7. data/doc/ex/NewCoordSys.rb +2 -2
  8. data/doc/ex/OrigCoordSys.rb +1 -1
  9. data/doc/ex/RotateScale.rb +2 -2
  10. data/doc/ex/Skew.rb +2 -2
  11. data/doc/ex/ViewBox.rb +1 -1
  12. data/doc/ex/arc.rb +4 -2
  13. data/doc/ex/arcs02.rb +1 -1
  14. data/doc/ex/bounding_box.rb +3 -0
  15. data/doc/ex/cbezier1.rb +2 -0
  16. data/doc/ex/cbezier2.rb +2 -0
  17. data/doc/ex/cbezier3.rb +2 -0
  18. data/doc/ex/cbezier4.rb +2 -0
  19. data/doc/ex/cbezier5.rb +2 -0
  20. data/doc/ex/cbezier6.rb +2 -0
  21. data/doc/ex/channel.rb +1 -0
  22. data/doc/ex/circle.rb +2 -0
  23. data/doc/ex/cubic01.rb +1 -1
  24. data/doc/ex/cubic02.rb +1 -1
  25. data/doc/ex/ellipse.rb +2 -0
  26. data/doc/ex/font_styles.rb +12 -10
  27. data/doc/ex/get_type_metrics.rb +2 -0
  28. data/doc/ex/grav.rb +2 -0
  29. data/doc/ex/image.rb +1 -1
  30. data/doc/ex/line.rb +2 -0
  31. data/doc/ex/opacity.rb +6 -4
  32. data/doc/ex/path.rb +2 -0
  33. data/doc/ex/polaroid.rb +2 -0
  34. data/doc/ex/qbezierpath.rb +3 -0
  35. data/doc/ex/rectangle.rb +2 -0
  36. data/doc/ex/rotate.rb +2 -0
  37. data/doc/ex/roundrect.rb +2 -0
  38. data/doc/ex/skewx.rb +2 -0
  39. data/doc/ex/skewy.rb +2 -0
  40. data/doc/ex/stroke_dasharray.rb +2 -0
  41. data/doc/ex/stroke_width.rb +2 -0
  42. data/doc/ex/text.rb +3 -2
  43. data/doc/ex/text01.rb +1 -1
  44. data/doc/ex/text_styles.rb +1 -1
  45. data/doc/ex/text_undercolor.rb +2 -0
  46. data/doc/ex/translate.rb +3 -1
  47. data/doc/ilist.html +2 -2
  48. data/doc/image1.html +2 -2
  49. data/doc/image2.html +2 -2
  50. data/doc/image3.html +37 -6
  51. data/doc/imageattrs.html +2 -2
  52. data/doc/imusage.html +3 -3
  53. data/doc/index.html +3 -3
  54. data/doc/info.html +2 -2
  55. data/doc/magick.html +2 -2
  56. data/doc/optequiv.html +24 -2
  57. data/doc/rvg.html +2 -2
  58. data/doc/rvgclip.html +2 -2
  59. data/doc/rvggroup.html +2 -2
  60. data/doc/rvgimage.html +2 -2
  61. data/doc/rvgpattern.html +2 -2
  62. data/doc/rvgshape.html +2 -2
  63. data/doc/rvgstyle.html +2 -2
  64. data/doc/rvgtext.html +2 -2
  65. data/doc/rvgtspan.html +2 -2
  66. data/doc/rvgtut.html +2 -2
  67. data/doc/rvguse.html +2 -2
  68. data/doc/rvgxform.html +2 -2
  69. data/doc/struct.html +2 -2
  70. data/doc/usage.html +6 -4
  71. data/ext/RMagick/MANIFEST +6 -1
  72. data/ext/RMagick/extconf.rb +18 -2
  73. data/ext/RMagick/rmagick.c +312 -0
  74. data/ext/RMagick/rmagick.h +137 -61
  75. data/ext/RMagick/rmdraw.c +271 -377
  76. data/ext/RMagick/rmenum.c +1016 -0
  77. data/ext/RMagick/rmimage.c +172 -16
  78. data/ext/RMagick/rminfo.c +5 -5
  79. data/ext/RMagick/rmmain.c +50 -303
  80. data/ext/RMagick/rmmontage.c +386 -0
  81. data/ext/RMagick/rmpixel.c +816 -0
  82. data/ext/RMagick/rmstruct.c +887 -0
  83. data/ext/RMagick/rmutil.c +25 -2634
  84. data/lib/RMagick.rb +46 -2
  85. data/lib/rvg/misc.rb +5 -4
  86. data/lib/rvg/stylable.rb +7 -1
  87. data/rmagick.gemspec +1 -1
  88. metadata +7 -2
@@ -1,4 +1,4 @@
1
- # $Id: RMagick.rb,v 1.76 2008/10/27 22:17:54 rmagick Exp $
1
+ # $Id: RMagick.rb,v 1.80 2009/01/02 21:08:14 rmagick Exp $
2
2
  #==============================================================================
3
3
  # Copyright (C) 2008 by Timothy P. Hunter
4
4
  # Name: RMagick.rb
@@ -364,6 +364,30 @@ class Draw
364
364
  primitive "gravity #{GRAVITY_NAMES[grav.to_i]}"
365
365
  end
366
366
 
367
+ # IM 6.4.8-3 and later
368
+ def interword_spacing(space)
369
+ begin
370
+ Float(space)
371
+ rescue ArgumentError
372
+ Kernel.raise ArgumentError, "invalid value for interword_spacing"
373
+ rescue TypeError
374
+ Kernel.raise TypeError, "can't convert #{space.class} into Float"
375
+ end
376
+ primitive "interword-spacing #{space}"
377
+ end
378
+
379
+ # IM 6.4.8-3 and later
380
+ def kerning(space)
381
+ begin
382
+ Float(space)
383
+ rescue ArgumentError
384
+ Kernel.raise ArgumentError, "invalid value for kerning"
385
+ rescue TypeError
386
+ Kernel.raise TypeError, "can't convert #{space.class} into Float"
387
+ end
388
+ primitive "kerning #{space}"
389
+ end
390
+
367
391
  # Draw a line
368
392
  def line(startX, startY, endX, endY)
369
393
  primitive "line " + sprintf("%g,%g %g,%g", startX, startY, endX, endY)
@@ -1411,7 +1435,7 @@ public
1411
1435
  end
1412
1436
 
1413
1437
  [:at, :each, :each_index, :empty?, :fetch,
1414
- :first, :hash, :include?, :index, :length, :nitems, :rindex, :sort!].each do |mth|
1438
+ :first, :hash, :include?, :index, :length, :rindex, :sort!].each do |mth|
1415
1439
  module_eval <<-END_SIMPLE_DELEGATES
1416
1440
  def #{mth}(*args, &block)
1417
1441
  @images.#{mth}(*args, &block)
@@ -1420,6 +1444,13 @@ public
1420
1444
  end
1421
1445
  alias_method :size, :length
1422
1446
 
1447
+ # Array#nitems is not available in 1.9
1448
+ if Array.instance_methods.include?("nitems")
1449
+ def nitems()
1450
+ @images.nitems()
1451
+ end
1452
+ end
1453
+
1423
1454
  def clear
1424
1455
  @scene = nil
1425
1456
  @images.clear
@@ -1626,6 +1657,19 @@ public
1626
1657
  return a
1627
1658
  end
1628
1659
 
1660
+ # Custom marshal/unmarshal for Ruby 1.8.
1661
+ def marshal_dump()
1662
+ ary = [@scene]
1663
+ @images.each {|i| ary << Marshal.dump(i)}
1664
+ ary
1665
+ end
1666
+
1667
+ def marshal_load(ary)
1668
+ @scene = ary.shift
1669
+ @images = []
1670
+ ary.each {|a| @images << Marshal.load(a)}
1671
+ end
1672
+
1629
1673
  # The ImageList class supports the Magick::Image class methods by simply sending
1630
1674
  # the method to the current image. If the method isn't explicitly supported,
1631
1675
  # send it to the current image in the array. If there are no images, send
@@ -1,4 +1,4 @@
1
- # $Id: misc.rb,v 1.12 2008/02/24 18:26:36 rmagick Exp $
1
+ # $Id: misc.rb,v 1.14 2008/12/14 21:14:12 rmagick Exp $
2
2
  # Copyright (C) 2008 Timothy P. Hunter
3
3
  module Magick
4
4
  class RVG
@@ -104,9 +104,10 @@ module Magick
104
104
  end
105
105
 
106
106
  def glyph_metrics(glyph_orientation, glyph)
107
- glyph_metrics = @ctx.shadow.get_type_metrics(glyph)
108
- h = glyph_metrics.ascent - glyph_metrics.descent
109
- w = glyph_metrics.width
107
+ gm = @ctx.shadow.get_type_metrics("a" + glyph + "a")
108
+ gm2 = @ctx.shadow.get_type_metrics("aa")
109
+ h = (gm.ascent - gm.descent + 0.5 ).to_i
110
+ w = gm.width - gm2.width
110
111
  if glyph_orientation == 0 || glyph_orientation == 180
111
112
  [w, h]
112
113
  else
@@ -1,5 +1,5 @@
1
1
  #--
2
- # $Id: stylable.rb,v 1.5 2008/02/24 18:26:37 rmagick Exp $
2
+ # $Id: stylable.rb,v 1.6 2008/12/30 00:21:06 rmagick Exp $
3
3
  # Copyright (C) 2008 Timothy P. Hunter
4
4
  #++
5
5
 
@@ -80,6 +80,7 @@ module Magick
80
80
  # This method can be used with any RVG, Group, Use, Text, or
81
81
  # shape object. The argument is a hash. The style names are
82
82
  # the hash keys. The style names and values are:
83
+ # [:baseline_shift] modify the text baseline
83
84
  # [:clip_path] clipping path defined by clip_path
84
85
  # [:clip_rule] 'evenodd' or 'nozero'
85
86
  # [:fill] color name
@@ -94,6 +95,9 @@ module Magick
94
95
  # [:font_style] 'normal','italic','oblique'
95
96
  # [:font_weight] 'normal','bold','bolder','lighter', or
96
97
  # a multiple of 100 between 100 and 900.
98
+ # [:glyph_orientation_horizontal] 0, 90, 180, 270
99
+ # [:glyph_orientation_vertical] 0, 90, 180, 270
100
+ # [:letter_spacing] modify the spacing between letters
97
101
  # [:opacity] both fill and stroke opacity, 0.0<=N<=1.0
98
102
  # [:stroke] color name
99
103
  # [:stroke_dasharray] dash pattern (Array)
@@ -105,6 +109,8 @@ module Magick
105
109
  # [:stroke_width] stroke width
106
110
  # [:text_anchor] 'start','middle','end'
107
111
  # [:text_decoration] 'none','underline','overline','line_through'
112
+ # [:word_spacing] modify the spacing between words
113
+ # [:writing_mode] 'lr-tb', 'lr', 'rt-tb', 'rl', 'tb-rl', 'tb'
108
114
  def styles(styles)
109
115
  @styles.set(styles)
110
116
  yield(self) if block_given?
@@ -1,7 +1,7 @@
1
1
  require 'date'
2
2
  Gem::Specification.new do |s|
3
3
  s.name = %q{rmagick}
4
- s.version = "2.8.0"
4
+ s.version = "2.9.0"
5
5
  s.date = Date.today.to_s
6
6
  s.summary = %q{Ruby binding to ImageMagick}
7
7
  s.description = %q{RMagick is an interface between Ruby and ImageMagick.}
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rmagick
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.8.0
4
+ version: 2.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tim Hunter
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-12-04 00:00:00 -05:00
12
+ date: 2009-01-16 00:00:00 -05:00
13
13
  default_executable:
14
14
  dependencies: []
15
15
 
@@ -67,10 +67,15 @@ files:
67
67
  - post-setup.rb
68
68
  - ext
69
69
  - ext/RMagick
70
+ - ext/RMagick/rmenum.c
71
+ - ext/RMagick/rmstruct.c
70
72
  - ext/RMagick/rmagick.h
71
73
  - ext/RMagick/rmutil.c
72
74
  - ext/RMagick/MANIFEST
75
+ - ext/RMagick/rmmontage.c
76
+ - ext/RMagick/rmpixel.c
73
77
  - ext/RMagick/rmilist.c
78
+ - ext/RMagick/rmagick.c
74
79
  - ext/RMagick/rmdraw.c
75
80
  - ext/RMagick/rmimage.c
76
81
  - ext/RMagick/rmfill.c