rmagick4j 0.3.1-java → 0.3.2-java
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/RMagick.jar +0 -0
- data/lib/RMagick.rb +1768 -0
- data/lib/jhlabs-filters.jar +0 -0
- data/lib/magick4j.jar +0 -0
- data/lib/rmagick4j/rmagick4j.rb +3 -0
- data/lib/rvg/clippath.rb +48 -0
- data/lib/rvg/container.rb +131 -0
- data/lib/rvg/deep_equal.rb +56 -0
- data/lib/rvg/describable.rb +53 -0
- data/lib/rvg/embellishable.rb +417 -0
- data/lib/rvg/misc.rb +739 -0
- data/lib/rvg/paint.rb +50 -0
- data/lib/rvg/pathdata.rb +131 -0
- data/lib/rvg/rvg.rb +283 -0
- data/lib/rvg/stretchable.rb +156 -0
- data/lib/rvg/stylable.rb +118 -0
- data/lib/rvg/text.rb +187 -0
- data/lib/rvg/transformable.rb +133 -0
- data/lib/rvg/units.rb +66 -0
- data/lib/svgsalamander.jar +0 -0
- metadata +22 -3
@@ -0,0 +1,133 @@
|
|
1
|
+
#--
|
2
|
+
# $Id: transformable.rb,v 1.3 2007/01/20 17:39:50 rmagick Exp $
|
3
|
+
# Copyright (C) 2007 Timothy P. Hunter
|
4
|
+
#++
|
5
|
+
|
6
|
+
module Magick
|
7
|
+
class RVG
|
8
|
+
|
9
|
+
# Transforms is an Array with a deep_copy method.
|
10
|
+
# During unit-testing it also has a deep_equal method.
|
11
|
+
class Transforms < Array #:nodoc:
|
12
|
+
|
13
|
+
def deep_copy(h=nil)
|
14
|
+
copy = self.class.new
|
15
|
+
each { |transform| copy << [transform[0], transform[1].dup] }
|
16
|
+
return copy
|
17
|
+
end
|
18
|
+
|
19
|
+
end # class Transform
|
20
|
+
|
21
|
+
# Transformations are operations on the coordinate system.
|
22
|
+
# All the transformations defined within a container (an RVG object
|
23
|
+
# or a group) are applied before drawing any shapes or text.
|
24
|
+
# All transformations are applied in the order they were
|
25
|
+
# defined. <em>Note:</em> This means that
|
26
|
+
# g.translate(10,20).scale(2)
|
27
|
+
# is not the same as
|
28
|
+
# g.scale(2).translate(10,20)
|
29
|
+
module Transformable
|
30
|
+
|
31
|
+
private
|
32
|
+
|
33
|
+
# Apply transforms in the same order they were specified!
|
34
|
+
def add_transform_primitives(gc)
|
35
|
+
@transforms.each { |transform| gc.__send__(transform[0], *transform[1]) }
|
36
|
+
end
|
37
|
+
|
38
|
+
def initialize(*args, &block)
|
39
|
+
super()
|
40
|
+
@transforms = Transforms.new
|
41
|
+
end
|
42
|
+
|
43
|
+
public
|
44
|
+
|
45
|
+
# Applies the transformation matrix [sx, rx, ry, sy, tx, ty]
|
46
|
+
def matrix(sx, rx, ry, sy, tx, ty)
|
47
|
+
begin
|
48
|
+
@transforms << [:affine, [Float(sx), Float(rx), Float(ry), Float(sy), Float(tx), Float(ty)]]
|
49
|
+
rescue ArgumentError
|
50
|
+
raise ArgumentError, "arguments must be convertable to float (got #{sx.class}, #{rx.class}, #{ry.class}, #{sy.class}, #{sx.class}, #{sx.class}, #{tx.class}, #{ty.class})"
|
51
|
+
end
|
52
|
+
yield(self) if block_given?
|
53
|
+
self
|
54
|
+
end
|
55
|
+
|
56
|
+
# Add <tt>tx</tt> to all x-coordinates and <tt>ty</tt>
|
57
|
+
# to all y-coordinates. If <tt>ty</tt> is omitted it defaults
|
58
|
+
# to <tt>tx</tt>.
|
59
|
+
def translate(tx, ty=nil)
|
60
|
+
ty ||= tx
|
61
|
+
begin
|
62
|
+
@transforms << [:translate, [Float(tx), Float(ty)]]
|
63
|
+
rescue ArgumentError
|
64
|
+
raise ArgumentError, "arguments must be convertable to float (got #{tx.class}, #{ty.class})"
|
65
|
+
end
|
66
|
+
yield(self) if block_given?
|
67
|
+
self
|
68
|
+
end
|
69
|
+
|
70
|
+
# Multiply the x-coordinates by <tt>sx</tt> and the y-coordinates
|
71
|
+
# by <tt>sy</tt>. If <tt>sy</tt> is omitted it defaults to <tt>sx</tt>.
|
72
|
+
def scale(sx, sy=nil)
|
73
|
+
sy ||= sx
|
74
|
+
begin
|
75
|
+
@transforms << [:scale, [Float(sx), Float(sy)]]
|
76
|
+
rescue ArgumentError
|
77
|
+
raise ArgumentError, "arguments must be convertable to float (got #{sx.class}, #{sy.class})"
|
78
|
+
end
|
79
|
+
yield(self) if block_given?
|
80
|
+
self
|
81
|
+
end
|
82
|
+
|
83
|
+
# This method can take either of two argument lists:
|
84
|
+
# [rotate(angle)] rotate by <tt>angle</tt> degrees
|
85
|
+
# [rotate(angle, cx, cy)] rotate by <tt>angle</tt> degrees about
|
86
|
+
# the point [<tt>cx</tt>, <tt>cy</tt>].
|
87
|
+
def rotate(angle, *args)
|
88
|
+
begin
|
89
|
+
case args.length
|
90
|
+
when 0
|
91
|
+
@transforms << [:rotate, [Float(angle)]]
|
92
|
+
when 2
|
93
|
+
cx, cy = Float(args[0]), Float(args[1])
|
94
|
+
@transforms << [:translate, [cx, cy]]
|
95
|
+
@transforms << [:rotate, [angle]]
|
96
|
+
@transforms << [:translate, [-cx, -cy]]
|
97
|
+
else
|
98
|
+
raise ArgumentError, "wrong number of arguments (#{args.length} for 1 or 3)"
|
99
|
+
end
|
100
|
+
rescue ArgumentError
|
101
|
+
raise ArgumentError, "arguments must be convertable to float (got #{[angle, *args].collect {|a| a.class}.join(', ')})"
|
102
|
+
end
|
103
|
+
yield(self) if block_given?
|
104
|
+
self
|
105
|
+
end
|
106
|
+
|
107
|
+
# Skew the X-axis by <tt>angle</tt> degrees.
|
108
|
+
def skewX(angle)
|
109
|
+
begin
|
110
|
+
@transforms << [:skewx, [Float(angle)]]
|
111
|
+
rescue ArgumentError
|
112
|
+
raise ArgumentError, "argument must be convertable to float (got #{angle.class})"
|
113
|
+
end
|
114
|
+
yield(self) if block_given?
|
115
|
+
self
|
116
|
+
end
|
117
|
+
|
118
|
+
# Skew the Y-axis by <tt>angle</tt> degrees.
|
119
|
+
def skewY(angle)
|
120
|
+
begin
|
121
|
+
@transforms << [:skewy, [Float(angle)]]
|
122
|
+
rescue ArgumentError
|
123
|
+
raise ArgumentError, "argument must be convertable to float (got #{angle.class})"
|
124
|
+
end
|
125
|
+
yield(self) if block_given?
|
126
|
+
self
|
127
|
+
end
|
128
|
+
|
129
|
+
end # module Transformable
|
130
|
+
|
131
|
+
end # class RVG
|
132
|
+
end # module Magick
|
133
|
+
|
data/lib/rvg/units.rb
ADDED
@@ -0,0 +1,66 @@
|
|
1
|
+
# $Id: units.rb,v 1.3 2007/01/20 17:39:50 rmagick Exp $
|
2
|
+
# Copyright (C) 2007 Timothy P. Hunter
|
3
|
+
module Magick
|
4
|
+
class RVG
|
5
|
+
|
6
|
+
# Define RVG.dpi and RVG.dpi=. Add conversions to Fixnum and Float classes
|
7
|
+
class << self
|
8
|
+
attr_reader :dpi
|
9
|
+
def dpi=(n)
|
10
|
+
if !defined?(@dpi)
|
11
|
+
[Float, Fixnum].each do |c|
|
12
|
+
c.class_eval <<-END_DEFS
|
13
|
+
# the default measurement - 1px is 1 pixel
|
14
|
+
def px
|
15
|
+
self
|
16
|
+
end
|
17
|
+
# inches
|
18
|
+
def in
|
19
|
+
self * ::Magick::RVG.dpi
|
20
|
+
end
|
21
|
+
# millimeters
|
22
|
+
def mm
|
23
|
+
self * ::Magick::RVG.dpi / 25.4
|
24
|
+
end
|
25
|
+
# centimeters
|
26
|
+
def cm
|
27
|
+
self * ::Magick::RVG.dpi / 2.54
|
28
|
+
end
|
29
|
+
# points
|
30
|
+
def pt
|
31
|
+
self * ::Magick::RVG.dpi / 72.0
|
32
|
+
end
|
33
|
+
# picas
|
34
|
+
def pc
|
35
|
+
self * ::Magick::RVG.dpi / 6.0
|
36
|
+
end
|
37
|
+
# percentage of the argument
|
38
|
+
def pct(of)
|
39
|
+
self * Float(of) / 100.0
|
40
|
+
end
|
41
|
+
# the default is deg
|
42
|
+
def deg
|
43
|
+
self
|
44
|
+
end
|
45
|
+
# radians -> degrees
|
46
|
+
def rad
|
47
|
+
self * 180.0 / Math::PI
|
48
|
+
end
|
49
|
+
# grads -> degrees
|
50
|
+
def grad
|
51
|
+
self * 9.0 / 10.0
|
52
|
+
end
|
53
|
+
END_DEFS
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
@dpi = Float(n)
|
58
|
+
return @dpi
|
59
|
+
rescue ArgumentError
|
60
|
+
raise TypeError, "Can't convert `#{n}' to Float"
|
61
|
+
end
|
62
|
+
end # class << self
|
63
|
+
|
64
|
+
end # class RVG
|
65
|
+
end # module Magick
|
66
|
+
|
Binary file
|
metadata
CHANGED
@@ -5,7 +5,7 @@ description: RMagick4J is a JRuby back end to support the RMagick library. It bu
|
|
5
5
|
a Java library called Magick4J that implements ImageMagick and some RMagick native
|
6
6
|
functionality.
|
7
7
|
version: !ruby/object:Gem::Version
|
8
|
-
version: 0.3.
|
8
|
+
version: 0.3.2
|
9
9
|
requirements: []
|
10
10
|
test_files: []
|
11
11
|
bindir: bin
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
extensions: []
|
15
15
|
summary: RMagick4J is a JRuby back end for RMagick.
|
16
16
|
post_install_message:
|
17
|
-
homepage: http://
|
17
|
+
homepage: http://code.google.com/p/rmagick4j/
|
18
18
|
dependencies: []
|
19
19
|
has_rdoc: false
|
20
20
|
required_ruby_version: !ruby/object:Gem::Version::Requirement
|
@@ -30,13 +30,32 @@ name: rmagick4j
|
|
30
30
|
executables: []
|
31
31
|
rdoc_options: []
|
32
32
|
files:
|
33
|
+
- lib
|
33
34
|
- lib/RMagick.jar
|
35
|
+
- lib/RMagick.rb
|
36
|
+
- lib/jhlabs-filters.jar
|
34
37
|
- lib/magick4j.jar
|
35
38
|
- lib/rmagick4j
|
36
39
|
- lib/rmagick4j/rmagick4j.rb
|
40
|
+
- lib/rvg
|
41
|
+
- lib/rvg/clippath.rb
|
42
|
+
- lib/rvg/container.rb
|
43
|
+
- lib/rvg/deep_equal.rb
|
44
|
+
- lib/rvg/describable.rb
|
45
|
+
- lib/rvg/embellishable.rb
|
46
|
+
- lib/rvg/misc.rb
|
47
|
+
- lib/rvg/paint.rb
|
48
|
+
- lib/rvg/pathdata.rb
|
49
|
+
- lib/rvg/rvg.rb
|
50
|
+
- lib/rvg/stretchable.rb
|
51
|
+
- lib/rvg/stylable.rb
|
52
|
+
- lib/rvg/text.rb
|
53
|
+
- lib/rvg/transformable.rb
|
54
|
+
- lib/rvg/units.rb
|
55
|
+
- lib/svgsalamander.jar
|
37
56
|
platform: java
|
38
57
|
rubyforge_project: jruby-extras
|
39
|
-
date: 2007-
|
58
|
+
date: 2007-05-25 07:00:00 +00:00
|
40
59
|
authors:
|
41
60
|
- Tom Palmer
|
42
61
|
extra_rdoc_files: []
|