rmagick 2.13.1 → 2.13.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (218) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +21 -0
  3. data/.travis.yml +57 -0
  4. data/CONTRIBUTING.md +22 -0
  5. data/ChangeLog +49 -2
  6. data/Gemfile +7 -0
  7. data/LICENSE +20 -0
  8. data/README.textile +161 -0
  9. data/Rakefile +176 -0
  10. data/before_install_linux.sh +12 -0
  11. data/before_install_osx.sh +2 -0
  12. data/doc/.cvsignore +1 -0
  13. data/doc/comtasks.html +2 -2
  14. data/doc/constants.html +2 -2
  15. data/doc/draw.html +2 -2
  16. data/doc/ex/PreserveAspectRatio.rb +0 -0
  17. data/doc/ex/ViewBox.rb +0 -0
  18. data/doc/ex/adaptive_threshold.rb +0 -0
  19. data/doc/ex/add_noise.rb +0 -0
  20. data/doc/ex/affine.rb +0 -0
  21. data/doc/ex/affine_transform.rb +0 -0
  22. data/doc/ex/arc.rb +0 -0
  23. data/doc/ex/arcpath.rb +0 -0
  24. data/doc/ex/average.rb +0 -0
  25. data/doc/ex/axes.rb +0 -0
  26. data/doc/ex/bilevel_channel.rb +0 -0
  27. data/doc/ex/blur_image.rb +0 -0
  28. data/doc/ex/border.rb +0 -0
  29. data/doc/ex/bounding_box.rb +0 -0
  30. data/doc/ex/cbezier1.rb +0 -0
  31. data/doc/ex/cbezier2.rb +0 -0
  32. data/doc/ex/cbezier3.rb +0 -0
  33. data/doc/ex/cbezier4.rb +0 -0
  34. data/doc/ex/cbezier5.rb +0 -0
  35. data/doc/ex/cbezier6.rb +0 -0
  36. data/doc/ex/channel.rb +0 -0
  37. data/doc/ex/charcoal.rb +0 -0
  38. data/doc/ex/chop.rb +0 -0
  39. data/doc/ex/circle.rb +0 -0
  40. data/doc/ex/clip_path.rb +0 -0
  41. data/doc/ex/coalesce.rb +0 -0
  42. data/doc/ex/color_fill_to_border.rb +0 -0
  43. data/doc/ex/color_floodfill.rb +0 -0
  44. data/doc/ex/color_histogram.rb +0 -0
  45. data/doc/ex/color_reset.rb +0 -0
  46. data/doc/ex/colorize.rb +0 -0
  47. data/doc/ex/colors.rb +0 -0
  48. data/doc/ex/composite.rb +0 -0
  49. data/doc/ex/composite_layers.rb +0 -0
  50. data/doc/ex/contrast.rb +0 -0
  51. data/doc/ex/crop.rb +0 -0
  52. data/doc/ex/cycle_colormap.rb +0 -0
  53. data/doc/ex/drawcomp.rb +0 -0
  54. data/doc/ex/drop_shadow.rb +0 -0
  55. data/doc/ex/edge.rb +0 -0
  56. data/doc/ex/ellipse.rb +0 -0
  57. data/doc/ex/emboss.rb +0 -0
  58. data/doc/ex/enhance.rb +0 -0
  59. data/doc/ex/equalize.rb +0 -0
  60. data/doc/ex/evenodd.rb +0 -0
  61. data/doc/ex/flatten_images.rb +0 -0
  62. data/doc/ex/flip.rb +0 -0
  63. data/doc/ex/flop.rb +0 -0
  64. data/doc/ex/fonts.rb +0 -0
  65. data/doc/ex/frame.rb +0 -0
  66. data/doc/ex/gaussian_blur.rb +0 -0
  67. data/doc/ex/get_pixels.rb +0 -0
  68. data/doc/ex/gradientfill.rb +0 -0
  69. data/doc/ex/grav.rb +0 -0
  70. data/doc/ex/gravity.rb +0 -0
  71. data/doc/ex/hatchfill.rb +0 -0
  72. data/doc/ex/images/image_with_profile.jpg +0 -0
  73. data/doc/ex/images/logo400x83.gif +0 -0
  74. data/doc/ex/implode.rb +0 -0
  75. data/doc/ex/level.rb +0 -0
  76. data/doc/ex/line.rb +0 -0
  77. data/doc/ex/mask.rb +1 -1
  78. data/doc/ex/matte_fill_to_border.rb +0 -0
  79. data/doc/ex/matte_floodfill.rb +0 -0
  80. data/doc/ex/matte_replace.rb +0 -0
  81. data/doc/ex/median_filter.rb +0 -0
  82. data/doc/ex/modulate.rb +0 -0
  83. data/doc/ex/mono.rb +0 -0
  84. data/doc/ex/morph.rb +0 -0
  85. data/doc/ex/mosaic.rb +0 -0
  86. data/doc/ex/motion_blur.rb +0 -0
  87. data/doc/ex/negate.rb +0 -0
  88. data/doc/ex/nested_rvg.rb +0 -0
  89. data/doc/ex/nonzero.rb +0 -0
  90. data/doc/ex/normalize.rb +0 -0
  91. data/doc/ex/oil_paint.rb +0 -0
  92. data/doc/ex/opacity.rb +0 -0
  93. data/doc/ex/ordered_dither.rb +0 -0
  94. data/doc/ex/path.rb +0 -0
  95. data/doc/ex/pattern1.rb +0 -0
  96. data/doc/ex/pattern2.rb +0 -0
  97. data/doc/ex/polygon.rb +0 -0
  98. data/doc/ex/polyline.rb +0 -0
  99. data/doc/ex/preview.rb +0 -0
  100. data/doc/ex/qbezierpath.rb +0 -0
  101. data/doc/ex/quantize-m.rb +0 -0
  102. data/doc/ex/radial_blur.rb +0 -0
  103. data/doc/ex/raise.rb +0 -0
  104. data/doc/ex/rectangle.rb +0 -0
  105. data/doc/ex/reduce_noise.rb +0 -0
  106. data/doc/ex/roll.rb +0 -0
  107. data/doc/ex/rotate.rb +0 -0
  108. data/doc/ex/rotate_f.rb +0 -0
  109. data/doc/ex/roundrect.rb +0 -0
  110. data/doc/ex/rubyname.rb +0 -0
  111. data/doc/ex/rvg_linecap.rb +0 -0
  112. data/doc/ex/rvg_linejoin.rb +0 -0
  113. data/doc/ex/rvg_opacity.rb +0 -0
  114. data/doc/ex/rvg_stroke_dasharray.rb +0 -0
  115. data/doc/ex/segment.rb +0 -0
  116. data/doc/ex/shade.rb +0 -0
  117. data/doc/ex/shave.rb +0 -0
  118. data/doc/ex/shear.rb +0 -0
  119. data/doc/ex/sketch.rb +0 -0
  120. data/doc/ex/skewx.rb +0 -0
  121. data/doc/ex/skewy.rb +0 -0
  122. data/doc/ex/smile.rb +0 -0
  123. data/doc/ex/solarize.rb +0 -0
  124. data/doc/ex/spread.rb +0 -0
  125. data/doc/ex/stegano.rb +0 -0
  126. data/doc/ex/stroke_dasharray.rb +0 -0
  127. data/doc/ex/stroke_fill.rb +0 -0
  128. data/doc/ex/stroke_linecap.rb +0 -0
  129. data/doc/ex/stroke_linejoin.rb +0 -0
  130. data/doc/ex/stroke_width.rb +0 -0
  131. data/doc/ex/swirl.rb +0 -0
  132. data/doc/ex/text.rb +0 -0
  133. data/doc/ex/text_align.rb +0 -0
  134. data/doc/ex/text_antialias.rb +0 -0
  135. data/doc/ex/text_undercolor.rb +0 -0
  136. data/doc/ex/texture_fill_to_border.rb +0 -0
  137. data/doc/ex/texture_floodfill.rb +0 -0
  138. data/doc/ex/texturefill.rb +0 -0
  139. data/doc/ex/threshold.rb +0 -0
  140. data/doc/ex/to_blob.rb +0 -0
  141. data/doc/ex/translate.rb +0 -0
  142. data/doc/ex/transparent.rb +0 -0
  143. data/doc/ex/unsharp_mask.rb +0 -0
  144. data/doc/ex/wave.rb +0 -0
  145. data/doc/ilist.html +2 -2
  146. data/doc/image1.html +2 -2
  147. data/doc/image2.html +2 -2
  148. data/doc/image3.html +2 -2
  149. data/doc/imageattrs.html +2 -2
  150. data/doc/imusage.html +2 -2
  151. data/doc/index.html +3 -3
  152. data/doc/info.html +2 -2
  153. data/doc/magick.html +2 -2
  154. data/doc/optequiv.html +2 -2
  155. data/doc/rvg.html +2 -2
  156. data/doc/rvgclip.html +2 -2
  157. data/doc/rvggroup.html +2 -2
  158. data/doc/rvgimage.html +2 -2
  159. data/doc/rvgpattern.html +2 -2
  160. data/doc/rvgshape.html +2 -2
  161. data/doc/rvgstyle.html +2 -2
  162. data/doc/rvgtext.html +2 -2
  163. data/doc/rvgtspan.html +2 -2
  164. data/doc/rvgtut.html +2 -2
  165. data/doc/rvguse.html +2 -2
  166. data/doc/rvgxform.html +2 -2
  167. data/doc/struct.html +2 -2
  168. data/doc/usage.html +2 -2
  169. data/examples/crop_with_gravity.rb +0 -0
  170. data/examples/demo.rb +0 -0
  171. data/examples/describe.rb +0 -0
  172. data/examples/identify.rb +1 -1
  173. data/examples/rotating_text.rb +0 -0
  174. data/ext/RMagick/extconf.rb +62 -31
  175. data/ext/RMagick/rmagick.c +15 -15
  176. data/ext/RMagick/rmagick.h +9 -7
  177. data/ext/RMagick/rmdraw.c +12 -12
  178. data/ext/RMagick/rmenum.c +2 -2
  179. data/ext/RMagick/rmfill.c +25 -25
  180. data/ext/RMagick/rmilist.c +121 -104
  181. data/ext/RMagick/rmimage.c +743 -548
  182. data/ext/RMagick/rminfo.c +15 -15
  183. data/ext/RMagick/rmmain.c +27 -3
  184. data/ext/RMagick/rmpixel.c +25 -27
  185. data/ext/RMagick/rmstruct.c +1 -1
  186. data/ext/RMagick/rmutil.c +18 -18
  187. data/lib/RMagick.rb +1 -1962
  188. data/lib/rmagick/version.rb +5 -0
  189. data/lib/rmagick.rb +1 -0
  190. data/lib/rmagick_internal.rb +1964 -0
  191. data/rmagick.gemspec +21 -9
  192. data/test/Draw.rb +121 -0
  193. data/test/Image1.rb +763 -0
  194. data/test/Image2.rb +1312 -0
  195. data/test/Image3.rb +1033 -0
  196. data/test/ImageList1.rb +808 -0
  197. data/test/ImageList2.rb +389 -0
  198. data/test/Image_attributes.rb +700 -0
  199. data/test/Import_Export.rb +126 -0
  200. data/test/Info.rb +349 -0
  201. data/test/Magick.rb +324 -0
  202. data/test/Pixel.rb +119 -0
  203. data/test/Preview.rb +62 -0
  204. data/test/cmyk.icm +0 -0
  205. data/test/srgb.icm +0 -0
  206. data/test/test_all_basic.rb +34 -0
  207. data/test/tmpnam_test.rb +50 -0
  208. metadata +395 -352
  209. data/README-Mac-OSX.txt +0 -1
  210. data/README.html +0 -10
  211. data/build_tarball.rake +0 -215
  212. data/ext/RMagick/MANIFEST +0 -358
  213. data/metaconfig +0 -7
  214. data/post-clean.rb +0 -12
  215. data/post-install.rb +0 -50
  216. data/post-setup.rb +0 -254
  217. data/setup.rb +0 -1585
  218. data/uninstall.rb +0 -74
data/rmagick.gemspec CHANGED
@@ -1,20 +1,32 @@
1
1
  require 'date'
2
+ require './lib/rmagick/version'
2
3
  Gem::Specification.new do |s|
3
4
  s.name = %q{rmagick}
4
- s.version = "2.13.1"
5
+ s.version = Magick::VERSION
5
6
  s.date = Date.today.to_s
6
7
  s.summary = %q{Ruby binding to ImageMagick}
7
8
  s.description = %q{RMagick is an interface between Ruby and ImageMagick.}
8
- s.authors = [%q{Tim Hunter}, %q{Omer Bar-or}, %q{Benjamin Thomas}]
9
- s.email = %q{rmagick@rubyforge.org}
10
- s.homepage = %q{http://rubyforge.org/projects/rmagick}
11
- s.files = Dir.glob('**/*')
12
- s.bindir = 'bin'
13
- s.executables = Dir.glob('bin/*').collect {|f| File.basename(f)}
9
+ s.authors = [%q{Tim Hunter}, %q{Omer Bar-or}, %q{Benjamin Thomas}, %q{Moncef Maiza}]
10
+ s.post_install_message = "Please report any bugs. See https://github.com/gemhome/rmagick/compare/RMagick_2-13-2...master and https://github.com/rmagick/rmagick/issues/18"
11
+ s.email = %q{github@benjaminfleischer.com}
12
+ s.homepage = %q{https://github.com/gemhome/rmagick}
13
+ s.license = 'MIT'
14
+
15
+ tracked_files = `git ls-files`.split($\)
16
+ file_exclusion_regex = %r{(\Alib/rvg/to_c.rb)}
17
+ files = tracked_files.reject{|file| file[file_exclusion_regex] }
18
+ test_files = files.grep(%r{^(test|spec|features)/})
19
+ executables = files.grep(%r{^bin/}).map{ |f| File.basename(f) }
20
+
21
+ s.files = files
22
+ s.test_files = test_files
23
+ s.executables = executables
14
24
  s.require_paths << 'ext'
25
+
15
26
  s.rubyforge_project = %q{rmagick}
16
27
  s.extensions = %w{ext/RMagick/extconf.rb}
17
28
  s.has_rdoc = false
18
- s.required_ruby_version = '>= 1.8.5'
19
- s.requirements << 'ImageMagick 6.4.9 or later'
29
+ s.required_ruby_version = ">= #{Magick::MIN_RUBY_VERSION}"
30
+ s.requirements << "ImageMagick #{Magick::MIN_IM_VERSION} or later"
31
+ s.add_development_dependency 'rake-compiler'
20
32
  end
data/test/Draw.rb ADDED
@@ -0,0 +1,121 @@
1
+
2
+ #! /usr/local/bin/ruby -w
3
+
4
+ require 'RMagick'
5
+ require 'test/unit'
6
+ require 'test/unit/ui/console/testrunner' if !RUBY_VERSION[/^1\.9|^2/]
7
+
8
+ class Magick::Draw
9
+ def self._dummy_img_
10
+ @@_dummy_img_
11
+ end
12
+ end
13
+
14
+ class Draw_UT < Test::Unit::TestCase
15
+
16
+ def setup
17
+ @draw = Magick::Draw.new
18
+ end
19
+
20
+ # Ensure @@_dummy_img_ class var is working properly
21
+ def test_dummy_img
22
+ # initially this variable is not defined.
23
+ assert_raise(NameError) do
24
+ Magick::Draw._dummy_img_
25
+ end
26
+
27
+ # cause it to become defined. save the object id.
28
+ @draw.get_type_metrics("ABCDEF")
29
+ dummy = nil
30
+ assert_nothing_raised do
31
+ dummy = Magick::Draw._dummy_img_
32
+ end
33
+
34
+ assert_instance_of(Magick::Image, dummy)
35
+
36
+ # ensure that it is always the same object
37
+ @draw.get_type_metrics("ABCDEF")
38
+ dummy2 = nil
39
+ assert_nothing_raised do
40
+ dummy2 = Magick::Draw._dummy_img_
41
+ end
42
+ assert_same(dummy, dummy2)
43
+ end
44
+
45
+ def test_kerning
46
+ assert_nothing_raised { @draw.kerning = 1 }
47
+ assert_nothing_raised { @draw.kerning(1) }
48
+ assert_raise(ArgumentError) { @draw.kerning("a") }
49
+ assert_raise(TypeError) { @draw.kerning([]) }
50
+ end
51
+
52
+ def test_interline_spacing
53
+ assert_nothing_raised { @draw.interline_spacing = 1 }
54
+ assert_nothing_raised { @draw.interline_spacing(1) }
55
+ assert_raise(ArgumentError) { @draw.interline_spacing("a") }
56
+ assert_raise(TypeError) { @draw.interline_spacing([]) }
57
+ end
58
+
59
+ def test_interword_spacing
60
+ assert_nothing_raised { @draw.interword_spacing = 1 }
61
+ assert_nothing_raised { @draw.interword_spacing(1) }
62
+ assert_raise(ArgumentError) { @draw.interword_spacing("a") }
63
+ assert_raise(TypeError) { @draw.interword_spacing([]) }
64
+ end
65
+
66
+ def assert_marshal
67
+ rose = Magick::Image.read("rose:").first
68
+ granite = Magick::Image.read("granite:").first
69
+ s = granite.to_blob {self.format="miff"}
70
+ granite = Magick::Image.from_blob(s).first
71
+ blue_stroke = Magick::Image.new(20,20) {self.background_color = "blue"}
72
+ s = blue_stroke.to_blob {self.format="miff"}
73
+ blue_stroke = Magick::Image.from_blob(s).first
74
+
75
+ @draw.affine = Magick::AffineMatrix.new(1, 2, 3, 4, 5, 6)
76
+ @draw.decorate = Magick::LineThroughDecoration
77
+ @draw.encoding = "AdobeCustom"
78
+ @draw.gravity = Magick::CenterGravity
79
+ @draw.fill = Magick::Pixel.from_color("red")
80
+ @draw.stroke = Magick::Pixel.from_color("blue")
81
+ @draw.stroke_width = 5
82
+ @draw.fill_pattern = granite
83
+ @draw.stroke_pattern = blue_stroke
84
+ @draw.text_antialias = true
85
+ @draw.font = "Arial-Bold"
86
+ @draw.font_family = "arial"
87
+ @draw.font_style = Magick::ItalicStyle
88
+ @draw.font_stretch = Magick::CondensedStretch
89
+ @draw.font_weight = Magick::BoldWeight
90
+ @draw.pointsize = 12
91
+ @draw.density = "72x72"
92
+ @draw.align = Magick::CenterAlign
93
+ @draw.undercolor = Magick::Pixel.from_color("green")
94
+ @draw.kerning = 10.5
95
+ @draw.interword_spacing = 3.75
96
+
97
+ @draw.circle(20, 25, 20, 28)
98
+ dumped = nil
99
+ assert_nothing_raised { dumped = Marshal.dump(@draw) }
100
+ assert_nothing_raised { Marshal.load(dumped) }
101
+ end
102
+
103
+ def test_patterns
104
+ img = Magick::Image.new(20,20)
105
+ assert_nothing_raised { @draw.fill_pattern = img }
106
+ assert_nothing_raised { @draw.stroke_pattern = img }
107
+
108
+ ilist = Magick::ImageList.new
109
+ ilist << img
110
+ assert_nothing_raised { @draw.fill_pattern = ilist }
111
+ assert_nothing_raised { @draw.stroke_pattern = ilist }
112
+
113
+ assert_raise(NoMethodError) { @draw.fill_pattern = 1 }
114
+ assert_raise(NoMethodError) { @draw.stroke_pattern = 1 }
115
+ end
116
+ end
117
+
118
+ if __FILE__ == $0
119
+ Test::Unit::UI::Console::TestRunner.run(Draw_UT) if !RUBY_VERSION[/^1\.9|^2/]
120
+ end
121
+