rmagick 5.4.4 → 6.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.devcontainer/ImageMagick6/devcontainer.json +1 -1
- data/.devcontainer/devcontainer.json +1 -1
- data/.github/workflows/ci.yml +41 -31
- data/.gitignore +1 -0
- data/.rubocop.yml +36 -9
- data/.rubocop_todo.yml +369 -187
- data/CHANGELOG.md +77 -0
- data/Gemfile +14 -0
- data/README.md +3 -3
- data/Rakefile +12 -1
- data/before_install_linux.sh +1 -11
- data/before_install_osx.sh +5 -7
- data/ext/RMagick/extconf.rb +58 -68
- data/ext/RMagick/rmagick.h +7 -12
- data/ext/RMagick/rmdraw.cpp +10 -20
- data/ext/RMagick/rmfill.cpp +4 -4
- data/ext/RMagick/rmilist.cpp +10 -2
- data/ext/RMagick/rmimage.cpp +342 -344
- data/ext/RMagick/rminfo.cpp +22 -21
- data/ext/RMagick/rmkinfo.cpp +5 -18
- data/ext/RMagick/rmmain.cpp +42 -91
- data/ext/RMagick/rmmontage.cpp +5 -5
- data/ext/RMagick/rmpixel.cpp +3 -3
- data/ext/RMagick/rmutil.cpp +58 -89
- data/lib/rmagick/version.rb +3 -3
- data/lib/rmagick.rb +1 -1
- data/lib/rmagick_internal.rb +111 -103
- data/lib/rvg/container.rb +3 -3
- data/lib/rvg/embellishable.rb +7 -3
- data/lib/rvg/misc.rb +15 -15
- data/lib/rvg/rvg.rb +6 -6
- data/lib/rvg/stretchable.rb +2 -2
- data/lib/rvg/stylable.rb +2 -2
- data/lib/rvg/transformable.rb +1 -1
- data/lib/rvg/units.rb +1 -0
- data/rmagick.gemspec +2 -15
- data/sig/rmagick/_draw_common_methods.rbs +64 -0
- data/sig/rmagick/_image_common_methods.rbs +387 -0
- data/sig/rmagick/draw.rbs +38 -0
- data/sig/rmagick/draw_attribute.rbs +28 -0
- data/sig/rmagick/enum.rbs +820 -0
- data/sig/rmagick/error.rbs +11 -0
- data/sig/rmagick/fill.rbs +21 -0
- data/sig/rmagick/geometry.rbs +14 -0
- data/sig/rmagick/image.rbs +196 -0
- data/sig/rmagick/image_list.rbs +183 -0
- data/sig/rmagick/iptc.rbs +101 -0
- data/sig/rmagick/kernel_info.rbs +12 -0
- data/sig/rmagick/optional_method_arguments.rbs +10 -0
- data/sig/rmagick/pixel.rbs +46 -0
- data/sig/rmagick/struct.rbs +90 -0
- data/sig/rmagick.rbs +43 -0
- data/sig/rvg/clippath.rbs +34 -0
- data/sig/rvg/container.rbs +78 -0
- data/sig/rvg/deep_equal.rbs +48 -0
- data/sig/rvg/describable.rbs +30 -0
- data/sig/rvg/embellishable.rbs +226 -0
- data/sig/rvg/misc.rbs +145 -0
- data/sig/rvg/paint.rbs +55 -0
- data/sig/rvg/pathdata.rbs +77 -0
- data/sig/rvg/rvg.rbs +125 -0
- data/sig/rvg/stretchable.rbs +56 -0
- data/sig/rvg/stylable.rbs +66 -0
- data/sig/rvg/text.rbs +118 -0
- data/sig/rvg/transformable.rbs +59 -0
- data/sig/rvg/units.rbs +33 -0
- metadata +38 -134
data/sig/rmagick.rbs
ADDED
@@ -0,0 +1,43 @@
|
|
1
|
+
module Magick
|
2
|
+
# A real number, ie not a `Complex`.
|
3
|
+
type magick_real = Integer | Float | Rational | _ToF
|
4
|
+
# A percentage, a real number or a string in the form "NN%"
|
5
|
+
type magick_percentage = magick_real | String
|
6
|
+
|
7
|
+
type magick_image = Image | ImageList
|
8
|
+
|
9
|
+
type magick_color = Pixel | string
|
10
|
+
|
11
|
+
type magick_fill = GradientFill | HatchFill | SolidFill | TextureFill | _Fill
|
12
|
+
|
13
|
+
interface _Fill
|
14
|
+
def fill: (magick_image image_obj) -> void
|
15
|
+
end
|
16
|
+
|
17
|
+
VERSION: String
|
18
|
+
MIN_RUBY_VERSION: String
|
19
|
+
MIN_IM_VERSION: String
|
20
|
+
|
21
|
+
QuantumRange: Integer
|
22
|
+
MAGICKCORE_QUANTUM_DEPTH: Integer
|
23
|
+
OpaqueAlpha: Integer
|
24
|
+
TransparentAlpha: Integer
|
25
|
+
|
26
|
+
IMAGEMAGICK_VERSION: String
|
27
|
+
Magick_version: String
|
28
|
+
Long_version: String
|
29
|
+
Magick_features: String
|
30
|
+
|
31
|
+
def self.formats: () -> Hash[String, String]
|
32
|
+
| () { (String, String) -> void } -> self
|
33
|
+
def self.colors: () { (Color) -> void } -> self
|
34
|
+
| () -> Array[Color]
|
35
|
+
def self.fonts: () { (Font) -> void } -> self
|
36
|
+
| () -> Array[Font]
|
37
|
+
def self.init_formats: () -> Hash[String, String]
|
38
|
+
def self.limit_resource: (interned resource) -> Integer
|
39
|
+
| (interned resource, int limit) -> Integer
|
40
|
+
def self.set_cache_threshold: (int threshold) -> self
|
41
|
+
def self.set_log_event_mask: (*string args) -> self
|
42
|
+
def self.set_log_format: (string format) -> self
|
43
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
# -
|
2
|
+
# $Id: clippath.rb,v 1.5 2009/02/28 23:52:13 rmagick Exp $
|
3
|
+
# Copyright (C) 2009 Timothy P. Hunter
|
4
|
+
# +
|
5
|
+
module Magick
|
6
|
+
class RVG
|
7
|
+
class ClipPath
|
8
|
+
@clip_path_units: string
|
9
|
+
@content: Content
|
10
|
+
|
11
|
+
include ShapeConstructors
|
12
|
+
include UseConstructors
|
13
|
+
include TextConstructors
|
14
|
+
include Describable
|
15
|
+
include Stylable
|
16
|
+
include Duplicatable
|
17
|
+
|
18
|
+
# Create a clipping path. Within the block create an outline
|
19
|
+
# from one or more paths, basic shapes, text objects, or +use+.
|
20
|
+
# Everything drawn within the outline will be displayed.
|
21
|
+
# Anything drawn outside the outline will not.
|
22
|
+
#
|
23
|
+
# If the clipping path contains a +use+, it
|
24
|
+
# must directly reference path, basic shape, or text objects.
|
25
|
+
#
|
26
|
+
# Attach the clipping path to an object with the :clip_path style.
|
27
|
+
def initialize: (?string clip_path_units) -> void
|
28
|
+
| (?string clip_path_units) { (ClipPath) -> void } -> void
|
29
|
+
|
30
|
+
# @private
|
31
|
+
def add_primitives: (Utility::GraphicContext gc, untyped _style) -> void
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,78 @@
|
|
1
|
+
# -
|
2
|
+
# $Id: container.rb,v 1.5 2009/02/28 23:52:13 rmagick Exp $
|
3
|
+
# Copyright (C) 2009 Timothy P. Hunter
|
4
|
+
# +
|
5
|
+
module Magick
|
6
|
+
class RVG
|
7
|
+
# Content is simply an Array with a deep_copy method.
|
8
|
+
# When unit-testing, it also has a deep_equal method.
|
9
|
+
# @private
|
10
|
+
class Content < Array[untyped]
|
11
|
+
include _Duplicatable
|
12
|
+
end
|
13
|
+
|
14
|
+
# Define a collection of shapes, text, etc. that can be reused.
|
15
|
+
# Group objects are _containers_. That is, styles and transforms defined
|
16
|
+
# on the group are used by contained objects such as shapes, text, and
|
17
|
+
# nested groups unless overridden by a nested container or the object itself.
|
18
|
+
# Groups can be reused with the RVG::UseConstructors#use method.
|
19
|
+
# Create groups within
|
20
|
+
# containers with the RVG::StructureConstructors#g method.
|
21
|
+
#
|
22
|
+
# Example:
|
23
|
+
# # All elements in the group will be translated by 50 in the
|
24
|
+
# # x-direction and 10 in the y-direction.
|
25
|
+
# rvg.g.translate(50, 10).styles(:stroke=>'red',:fill=>'none') do |grp|
|
26
|
+
# # The line will be red.
|
27
|
+
# grp.line(10,10, 20,20)
|
28
|
+
# # The circle will be blue.
|
29
|
+
# grp.circle(10, 20, 20).styles(:stroke=>'blue')
|
30
|
+
# end
|
31
|
+
class Group
|
32
|
+
@content: Content
|
33
|
+
|
34
|
+
include Stylable
|
35
|
+
include Transformable
|
36
|
+
include Embellishable
|
37
|
+
include Describable
|
38
|
+
include Duplicatable
|
39
|
+
|
40
|
+
def initialize: () -> void
|
41
|
+
| () { (Group) -> void } -> void
|
42
|
+
|
43
|
+
# @private
|
44
|
+
def add_primitives: (Utility::GraphicContext gc) -> void
|
45
|
+
|
46
|
+
# Translate container according to #use arguments
|
47
|
+
# @private
|
48
|
+
def ref: (magick_real x, magick_real y, untyped _width, untyped _height) -> void
|
49
|
+
|
50
|
+
# Append an arbitrary object to the group's content. Called
|
51
|
+
# by #use to insert a non-container object into a group.
|
52
|
+
# @private
|
53
|
+
def <<: (_Duplicatable obj) -> void
|
54
|
+
end
|
55
|
+
|
56
|
+
# A Use object allows the re-use of RVG and RVG::Group
|
57
|
+
# objects within a container. Create a Use object with the
|
58
|
+
# RVG::UseConstructors#use method.
|
59
|
+
class Use
|
60
|
+
@element: Group
|
61
|
+
|
62
|
+
include Stylable
|
63
|
+
include Transformable
|
64
|
+
include Duplicatable
|
65
|
+
|
66
|
+
# In a container, Use objects are created indirectly via the
|
67
|
+
# RVG::UseConstructors#use method.
|
68
|
+
# The +x+ and +y+ arguments
|
69
|
+
# can be used to specify an additional translation for
|
70
|
+
# the group. The +width+ and +height+ arguments specify
|
71
|
+
# a width and height for referenced RVG objects.
|
72
|
+
def initialize: (_Duplicatable element, ?magick_real x, ?magick_real y, ?magick_real? width, ?magick_real? height) -> void
|
73
|
+
|
74
|
+
# @private
|
75
|
+
def add_primitives: (Utility::GraphicContext gc) -> void
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
module Magick
|
2
|
+
class RVG
|
3
|
+
interface _DeepEqual
|
4
|
+
def deep_equal: (untyped other) -> bool
|
5
|
+
end
|
6
|
+
class PathData
|
7
|
+
include _DeepEqual
|
8
|
+
end
|
9
|
+
|
10
|
+
class Styles
|
11
|
+
include _DeepEqual
|
12
|
+
end
|
13
|
+
|
14
|
+
class Transforms
|
15
|
+
include _DeepEqual
|
16
|
+
end
|
17
|
+
|
18
|
+
class Shape
|
19
|
+
include _DeepEqual
|
20
|
+
end
|
21
|
+
|
22
|
+
class TextBase
|
23
|
+
include _DeepEqual
|
24
|
+
end
|
25
|
+
|
26
|
+
class Image
|
27
|
+
include _DeepEqual
|
28
|
+
end
|
29
|
+
|
30
|
+
class Group
|
31
|
+
include _DeepEqual
|
32
|
+
end
|
33
|
+
|
34
|
+
class Content
|
35
|
+
include _DeepEqual
|
36
|
+
end
|
37
|
+
|
38
|
+
class Use
|
39
|
+
include _DeepEqual
|
40
|
+
end
|
41
|
+
|
42
|
+
class ClipPath
|
43
|
+
include _DeepEqual
|
44
|
+
end
|
45
|
+
|
46
|
+
include _DeepEqual
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module Magick
|
2
|
+
class RVG
|
3
|
+
# -
|
4
|
+
# Corresponds to SVG's Description.class
|
5
|
+
# +
|
6
|
+
# This module defines a number of metadata attributes.
|
7
|
+
module Describable
|
8
|
+
# Sets the object description
|
9
|
+
attr_writer desc: interned
|
10
|
+
|
11
|
+
# Sets the object title
|
12
|
+
attr_writer title: interned
|
13
|
+
|
14
|
+
# Sets the object metadata
|
15
|
+
attr_writer metadata: interned
|
16
|
+
|
17
|
+
# Returns the title of this object. The RVG object title is stored as
|
18
|
+
# the 'title' property on the image
|
19
|
+
def title: () -> String
|
20
|
+
|
21
|
+
# Returns the description of this object. The RVG object description is
|
22
|
+
# stored as the 'desc' property on the image
|
23
|
+
def desc: () -> String
|
24
|
+
|
25
|
+
# Returns additional metadata of this object. The RVG object metadata
|
26
|
+
# are stored as the 'metadata' property on the image
|
27
|
+
def metadata: () -> String
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,226 @@
|
|
1
|
+
module Magick
|
2
|
+
class RVG
|
3
|
+
# Parent class of Circle, Ellipse, Text, etc.
|
4
|
+
# @private
|
5
|
+
class Shape
|
6
|
+
include Stylable
|
7
|
+
include Transformable
|
8
|
+
include Duplicatable
|
9
|
+
|
10
|
+
# Each shape can have its own set of transforms and styles.
|
11
|
+
def add_primitives: (Utility::GraphicContext gc) -> void
|
12
|
+
end
|
13
|
+
|
14
|
+
class Circle < Shape
|
15
|
+
@primitive: Symbol
|
16
|
+
@args: Array[Float]
|
17
|
+
|
18
|
+
# Define a circle with radius +r+ and centered at [<tt>cx</tt>, <tt>cy</tt>].
|
19
|
+
# Use the RVG::ShapeConstructors#circle method to create Circle objects in a container.
|
20
|
+
def initialize: (magick_real r, ?magick_real cx, ?magick_real cy) -> void
|
21
|
+
end
|
22
|
+
|
23
|
+
class Ellipse < Shape
|
24
|
+
@primitive: Symbol
|
25
|
+
@args: Array[Integer | Float]
|
26
|
+
|
27
|
+
# Define an ellipse with a center at [<tt>cx</tt>, <tt>cy</tt>], a horizontal radius +rx+
|
28
|
+
# and a vertical radius +ry+.
|
29
|
+
# Use the RVG::ShapeConstructors#ellipse method to create Ellipse objects in a container.
|
30
|
+
def initialize: (magick_real rx, magick_real ry, ?magick_real cx, ?magick_real cy) -> void
|
31
|
+
end
|
32
|
+
|
33
|
+
class Line < Shape
|
34
|
+
@primitive: Symbol
|
35
|
+
@args: Array[Integer | Float]
|
36
|
+
|
37
|
+
# Define a line from [<tt>x1</tt>, <tt>y1</tt>] to [<tt>x2</tt>, <tt>y2</tt>].
|
38
|
+
# Use the RVG::ShapeConstructors#line method to create Line objects in a container.
|
39
|
+
def initialize: (?magick_real x1, ?magick_real y1, ?magick_real x2, ?magick_real y2) -> void
|
40
|
+
end
|
41
|
+
|
42
|
+
class Path < Shape
|
43
|
+
@primitive: Symbol
|
44
|
+
@args: Array[String]
|
45
|
+
|
46
|
+
# Define an SVG path. The argument can be either a path string
|
47
|
+
# or a PathData object.
|
48
|
+
# Use the RVG::ShapeConstructors#path method to create Path objects in a container.
|
49
|
+
def initialize: (interned path) -> void
|
50
|
+
end
|
51
|
+
|
52
|
+
class Rect < Shape
|
53
|
+
@primitive: Symbol
|
54
|
+
@args: Array[Float]
|
55
|
+
|
56
|
+
# Define a width x height rectangle. The upper-left corner is at [<tt>x</tt>, <tt>y</tt>].
|
57
|
+
# If either <tt>width</tt> or <tt>height</tt> is 0, the rectangle is not rendered.
|
58
|
+
# Use the RVG::ShapeConstructors#rect method to create Rect objects in a container.
|
59
|
+
def initialize: (magick_real width, magick_real height, ?magick_real x, ?magick_real y) -> void
|
60
|
+
|
61
|
+
# Specify optional rounded corners for a rectangle. The arguments
|
62
|
+
# are the x- and y-axis radii. If y is omitted it defaults to x.
|
63
|
+
def round: (magick_real rx, ?magick_real? ry) -> self
|
64
|
+
end
|
65
|
+
|
66
|
+
class PolyShape < Shape
|
67
|
+
def polypoints: (Array[magick_real] points) -> Array[Float?]
|
68
|
+
end
|
69
|
+
|
70
|
+
class Polygon < PolyShape
|
71
|
+
@primitive: Symbol
|
72
|
+
@args: Array[Float]
|
73
|
+
|
74
|
+
# Draws a polygon. The arguments are [<tt>x</tt>, <tt>y</tt>] pairs that
|
75
|
+
# define the points that make up the polygon. At least two
|
76
|
+
# points must be specified. If the last point is not the
|
77
|
+
# same as the first, adds an additional point to close
|
78
|
+
# the polygon.
|
79
|
+
# Use the RVG::ShapeConstructors#polygon method to create Polygon objects in a container.
|
80
|
+
def initialize: (*magick_real points) -> void
|
81
|
+
end
|
82
|
+
|
83
|
+
class Polyline < PolyShape
|
84
|
+
@primitive: Symbol
|
85
|
+
@args: Array[Float]
|
86
|
+
|
87
|
+
# Draws a polyline. The arguments are [<tt>x</tt>, <tt>y</tt>] pairs that
|
88
|
+
# define the points that make up the polyline. At least two
|
89
|
+
# points must be specified.
|
90
|
+
# Use the RVG::ShapeConstructors#polyline method to create Polyline objects in a container.
|
91
|
+
def initialize: (*magick_real points) -> void
|
92
|
+
end
|
93
|
+
|
94
|
+
class Image
|
95
|
+
@align: String
|
96
|
+
@vbx_width: Integer
|
97
|
+
@vbx_height: Integer
|
98
|
+
@meet_or_slice: String
|
99
|
+
@image: Magick::Image
|
100
|
+
@x: Float
|
101
|
+
@y: Float
|
102
|
+
@width: Float
|
103
|
+
@height: Float
|
104
|
+
|
105
|
+
include Stylable
|
106
|
+
include Transformable
|
107
|
+
include Describable
|
108
|
+
include PreserveAspectRatio
|
109
|
+
include Duplicatable
|
110
|
+
|
111
|
+
private
|
112
|
+
|
113
|
+
def align_to_viewport: (real scale) -> [Numeric?, Numeric?]
|
114
|
+
def add_composite_primitive: (Utility::GraphicContext gc) -> void
|
115
|
+
def init_viewbox: () -> void
|
116
|
+
|
117
|
+
public
|
118
|
+
|
119
|
+
# Composite a raster image in the viewport defined by [x,y] and
|
120
|
+
# +width+ and +height+.
|
121
|
+
# Use the RVG::ImageConstructors#image method to create Text objects in a container.
|
122
|
+
def initialize: (Magick::Image image, ?magick_real? width, ?magick_real? height, ?magick_real x, ?magick_real y) -> void
|
123
|
+
|
124
|
+
# @private
|
125
|
+
def add_primitives: (Utility::GraphicContext gc) -> void
|
126
|
+
end
|
127
|
+
|
128
|
+
# Methods that construct basic shapes within a container
|
129
|
+
module ShapeConstructors
|
130
|
+
# Draws a circle whose center is [<tt>cx</tt>, <tt>cy</tt>] and radius is +r+.
|
131
|
+
def circle: (magick_real r, ?magick_real cx, ?magick_real cy) -> Circle
|
132
|
+
|
133
|
+
# Draws an ellipse whose center is [<tt>cx</tt>, <tt>cy</tt>] and having
|
134
|
+
# a horizontal radius +rx+ and vertical radius +ry+.
|
135
|
+
def ellipse: (magick_real rx, magick_real ry, ?magick_real cx, ?magick_real cy) -> Ellipse
|
136
|
+
|
137
|
+
# Draws a line from [<tt>x1</tt>, <tt>y1</tt>] to [<tt>x2</tt>, <tt>y2</tt>].
|
138
|
+
def line: (?magick_real x1, ?magick_real y1, ?magick_real x2, ?magick_real y2) -> Line
|
139
|
+
|
140
|
+
# Draws a path defined by an SVG path string or a PathData
|
141
|
+
# object.
|
142
|
+
def path: (interned path) -> Path
|
143
|
+
|
144
|
+
# Draws a rectangle whose upper-left corner is [<tt>x</tt>, <tt>y</tt>] and
|
145
|
+
# with the specified +width+ and +height+. Unless otherwise
|
146
|
+
# specified the rectangle has square corners. Returns a
|
147
|
+
# Rectangle object.
|
148
|
+
#
|
149
|
+
# Draw a rectangle with rounded corners by calling the #round
|
150
|
+
# method on the Rectangle object. <tt>rx</tt> and <tt>ry</tt> are
|
151
|
+
# the corner radii in the x- and y-directions. For example:
|
152
|
+
# canvas.rect(width, height, x, y).round(8, 6)
|
153
|
+
# If <tt>ry</tt> is omitted it defaults to <tt>rx</tt>.
|
154
|
+
def rect: (magick_real width, magick_real height, ?magick_real x, ?magick_real y) -> Rect
|
155
|
+
|
156
|
+
# Draws a polygon. The arguments are [<tt>x</tt>, <tt>y</tt>] pairs that
|
157
|
+
# define the points that make up the polygon. At least two
|
158
|
+
# points must be specified. If the last point is not the
|
159
|
+
# same as the first, adds an additional point to close
|
160
|
+
# the polygon.
|
161
|
+
def polygon: (*magick_real points) -> Polygon
|
162
|
+
|
163
|
+
# Draws a polyline. The arguments are [<tt>x</tt>, <tt>y</tt>] pairs that
|
164
|
+
# define the points that make up the polyline. At least two
|
165
|
+
# points must be specified.
|
166
|
+
def polyline: (*magick_real points) -> Polyline
|
167
|
+
end
|
168
|
+
|
169
|
+
# Methods that reference ("use") other drawable objects within a container
|
170
|
+
module UseConstructors
|
171
|
+
# Reference an object to be inserted into the container's
|
172
|
+
# content. [<tt>x</tt>,<tt>y</tt>] is the offset from the upper-left
|
173
|
+
# corner. If the argument is an RVG or Image object and +width+ and +height+
|
174
|
+
# are specified, these values will override the +width+ and +height+
|
175
|
+
# attributes on the argument.
|
176
|
+
def use: (_Duplicatable obj, ?magick_real x, ?magick_real y, ?magick_real? width, ?magick_real? height) -> Use
|
177
|
+
end
|
178
|
+
|
179
|
+
# Methods that construct container objects within a container
|
180
|
+
module StructureConstructors
|
181
|
+
# Establishes a new viewport. [<tt>x</tt>, <tt>y</tt>] is the coordinate of the
|
182
|
+
# upper-left corner within the containing viewport. This is a
|
183
|
+
# _container_ method. Styles and
|
184
|
+
# transforms specified on this object will be used by objects
|
185
|
+
# contained within, unless overridden by an inner container or
|
186
|
+
# the contained object itself.
|
187
|
+
def rvg: (magick_real cols, magick_real rows, ?magick_real x, ?magick_real y) -> RVG
|
188
|
+
| (magick_real cols, magick_real rows, ?magick_real x, ?magick_real y) { (RVG) -> void } -> RVG
|
189
|
+
|
190
|
+
# Defines a group.
|
191
|
+
#
|
192
|
+
# This method constructs a new
|
193
|
+
# Group _container_ object. The styles and
|
194
|
+
# transforms specified on this object will be used by objects
|
195
|
+
# contained within, unless overridden by an inner container or
|
196
|
+
# the contained object itself.
|
197
|
+
# Define grouped elements by calling RVG::Embellishable
|
198
|
+
# methods within the associated block.
|
199
|
+
def g: () -> Group
|
200
|
+
| { (Group) -> void } -> Group
|
201
|
+
end
|
202
|
+
|
203
|
+
# Methods that construct raster image objects within a container
|
204
|
+
module ImageConstructors
|
205
|
+
# Composite a raster image at [<tt>x</tt>,<tt>y</tt>]
|
206
|
+
# in a viewport of the specified <tt>width</tt> and <tt>height</tt>.
|
207
|
+
# If not specified, the width and height are the width and height
|
208
|
+
# of the image. Use the RVG::PreserveAspectRatio#preserve_aspect_ratio method to
|
209
|
+
# control the placement and scaling of the image within the
|
210
|
+
# viewport. By default, the image is scaled to fit inside the
|
211
|
+
# viewport and centered within the viewport.
|
212
|
+
def image: (Magick::Image image, ?magick_real? width, ?magick_real? height, ?magick_real x, ?magick_real y) -> Image
|
213
|
+
end
|
214
|
+
|
215
|
+
# Methods that create shapes, text, and other drawable objects
|
216
|
+
# within container objects such as ::Magick::RVG and
|
217
|
+
# ::Magick::RVG::Group
|
218
|
+
module Embellishable
|
219
|
+
include StructureConstructors
|
220
|
+
include ShapeConstructors
|
221
|
+
include TextConstructors
|
222
|
+
include UseConstructors
|
223
|
+
include ImageConstructors
|
224
|
+
end
|
225
|
+
end
|
226
|
+
end
|
data/sig/rvg/misc.rbs
ADDED
@@ -0,0 +1,145 @@
|
|
1
|
+
# $Id: misc.rb,v 1.17 2010/03/21 01:43:01 baror Exp $
|
2
|
+
# Copyright (C) 2009 Timothy P. Hunter
|
3
|
+
module Magick
|
4
|
+
class RVG
|
5
|
+
# This is a standard deep_copy method that is used in most classes.
|
6
|
+
# Thanks to Robert Klemme.
|
7
|
+
module Duplicatable
|
8
|
+
include _Duplicatable
|
9
|
+
end
|
10
|
+
|
11
|
+
# Convert an array of method arguments to Float objects. If any
|
12
|
+
# cannot be converted, raise ArgumentError and issue a message.
|
13
|
+
def self.fmsg: (*untyped args) -> String
|
14
|
+
|
15
|
+
def self.convert_to_float: (*(magick_real | Symbol) args) -> Array[Float?]
|
16
|
+
def self.convert_one_to_float: (magick_real arg) -> Float
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
module Magick
|
21
|
+
class RVG
|
22
|
+
class Utility
|
23
|
+
class TextStrategy
|
24
|
+
@ctx: GraphicContext
|
25
|
+
|
26
|
+
def initialize: (GraphicContext context) -> void
|
27
|
+
def enquote: (String text) -> String
|
28
|
+
def glyph_metrics: (Integer | Float glyph_orientation, string glyph) -> [Integer | Float, Integer | Float]
|
29
|
+
def text_rel_coords: (string text) -> [Array[Integer | Float], Array[Integer | Float]]
|
30
|
+
def shift_baseline: (Integer | Float glyph_orientation, string glyph) -> (Integer | Float)
|
31
|
+
def render_glyph: (Integer | Float glyph_orientation, magick_real x, magick_real y, String glyph) -> void
|
32
|
+
end
|
33
|
+
|
34
|
+
class LRTextStrategy < TextStrategy
|
35
|
+
@word_space: Integer | Float
|
36
|
+
|
37
|
+
def get_word_spacing: () -> [Integer | Float, 0]
|
38
|
+
def get_letter_spacing: (string glyph) -> [Integer | Float, Integer | Float]
|
39
|
+
def render: (Integer | Float x, Integer | Float y, string text) -> [Integer | Float, 0]
|
40
|
+
end
|
41
|
+
|
42
|
+
class RLTextStrategy < TextStrategy
|
43
|
+
def render: (untyped _x, untyped _y, untyped _text) -> untyped
|
44
|
+
end
|
45
|
+
|
46
|
+
class TBTextStrategy < TextStrategy
|
47
|
+
@word_space: Integer | Float
|
48
|
+
|
49
|
+
def get_word_spacing: () -> [0, Integer | Float]
|
50
|
+
def get_letter_spacing: (string glyph) -> [Integer | Float, Integer | Float]
|
51
|
+
def render: (Integer | Float x, Integer | Float y, string text) -> [0, Integer | Float]
|
52
|
+
end
|
53
|
+
|
54
|
+
# Handle "easy" text
|
55
|
+
class DefaultTextStrategy < TextStrategy
|
56
|
+
def render: (Integer | Float x, Integer | Float y, String text) -> [(Integer | Float)?, 0]
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
module Magick
|
63
|
+
class RVG
|
64
|
+
class Utility
|
65
|
+
class TextAttributes
|
66
|
+
def initialize: () -> void
|
67
|
+
def push: () -> void
|
68
|
+
def pop: () -> void
|
69
|
+
def set_affine: (real sx, real rx, real ry, real sy, real tx, real ty) -> void
|
70
|
+
def affine: () -> Magick::AffineMatrix
|
71
|
+
def baseline_shift: () -> Symbol
|
72
|
+
def baseline_shift=: (interned | real value) -> Symbol
|
73
|
+
def text_anchor: () -> Symbol
|
74
|
+
def text_anchor=: (Symbol anchor) -> Symbol
|
75
|
+
def glyph_orientation_vertical: () -> (Integer | Float)
|
76
|
+
def glyph_orientation_vertical=: (Integer | Float angle) -> (Integer | Float)
|
77
|
+
def glyph_orientation_horizontal: () -> (Integer | Float)
|
78
|
+
def glyph_orientation_horizontal=: (Integer | Float angle) -> (Integer | Float)
|
79
|
+
def letter_spacing: () -> (Integer | Float)
|
80
|
+
def letter_spacing=: (Integer | Float value) -> (Integer | Float)
|
81
|
+
def non_default?: () -> bool
|
82
|
+
def word_spacing: () -> (Integer | Float)
|
83
|
+
def word_spacing=: (Integer | Float value) -> (Integer | Float)
|
84
|
+
def writing_mode: () -> String
|
85
|
+
def writing_mode=: (String mode) -> String
|
86
|
+
end
|
87
|
+
|
88
|
+
class GraphicContext
|
89
|
+
@rx: Integer | Float
|
90
|
+
@sx: Integer | Float
|
91
|
+
@tx: Integer | Float
|
92
|
+
@gc: Magick::Draw
|
93
|
+
@shadow: Array[Magick::Draw]
|
94
|
+
@text_attrs: TextAttributes
|
95
|
+
@ry: Integer | Float
|
96
|
+
@sy: Integer | Float
|
97
|
+
@ty: Integer | Float
|
98
|
+
|
99
|
+
# The methods of Magick::Draw class can be called via method_missing
|
100
|
+
include Magick::_DrawCommonMethods
|
101
|
+
|
102
|
+
attr_reader gc: Magick::Draw
|
103
|
+
attr_reader text_attrs: TextAttributes
|
104
|
+
|
105
|
+
private
|
106
|
+
|
107
|
+
def init_matrix: () -> void
|
108
|
+
def concat_matrix: () -> void
|
109
|
+
|
110
|
+
public
|
111
|
+
|
112
|
+
def self.degrees_to_radians: (real deg) -> Float
|
113
|
+
|
114
|
+
def initialize: () -> void
|
115
|
+
def affine: (magick_real sx, magick_real rx, magick_real ry, magick_real sy, magick_real tx, magick_real ty) -> nil
|
116
|
+
| ...
|
117
|
+
def baseline_shift: (String | real value) -> nil
|
118
|
+
def font: (string name) -> nil
|
119
|
+
def font_family: (string name) -> nil
|
120
|
+
def font_size: (magick_real points) -> nil
|
121
|
+
def font_stretch: (interned stretch) -> nil
|
122
|
+
def font_style: (interned style) -> nil
|
123
|
+
def font_weight: (interned | int weight) -> nil
|
124
|
+
def glyph_orientation_horizontal: (magick_real deg) -> nil
|
125
|
+
def glyph_orientation_vertical: (magick_real deg) -> nil
|
126
|
+
def inspect: () -> String
|
127
|
+
def letter_spacing: (magick_real value) -> nil
|
128
|
+
def push: () -> nil
|
129
|
+
def pop: () -> nil
|
130
|
+
def rotate: (magick_real degrees) -> nil
|
131
|
+
def scale: (magick_real sx, magick_real sy) -> nil
|
132
|
+
def shadow: () -> Magick::Draw?
|
133
|
+
def skewX: (magick_real degrees) -> nil
|
134
|
+
def skewY: (magick_real degrees) -> nil
|
135
|
+
def stroke_width: (magick_real width) -> nil
|
136
|
+
def text: (magick_real x, magick_real y, string text) -> void
|
137
|
+
def text_anchor: (interned anchor) -> nil
|
138
|
+
def text_decoration: (interned decoration) -> nil
|
139
|
+
def translate: (magick_real tx, magick_real ty) -> nil
|
140
|
+
def word_spacing: (magick_real value) -> nil
|
141
|
+
def writing_mode: (String mode) -> nil
|
142
|
+
end
|
143
|
+
end
|
144
|
+
end
|
145
|
+
end
|
data/sig/rvg/paint.rbs
ADDED
@@ -0,0 +1,55 @@
|
|
1
|
+
module Magick
|
2
|
+
class RVG
|
3
|
+
class Pattern
|
4
|
+
@width: Float
|
5
|
+
@height: Float
|
6
|
+
@x: Float
|
7
|
+
@y: Float
|
8
|
+
@content: Content
|
9
|
+
|
10
|
+
include StructureConstructors
|
11
|
+
include UseConstructors
|
12
|
+
include ShapeConstructors
|
13
|
+
include TextConstructors
|
14
|
+
include ImageConstructors
|
15
|
+
include Stretchable
|
16
|
+
include Duplicatable
|
17
|
+
include Stylable
|
18
|
+
|
19
|
+
# Return upper-left corner, width, height of viewport in user coordinates.
|
20
|
+
# Usually these are the values specified when the Pattern object is
|
21
|
+
# created, but they can be changed by a call to the viewbox method.
|
22
|
+
attr_reader x: Float
|
23
|
+
|
24
|
+
# Return upper-left corner, width, height of viewport in user coordinates.
|
25
|
+
# Usually these are the values specified when the Pattern object is
|
26
|
+
# created, but they can be changed by a call to the viewbox method.
|
27
|
+
attr_reader y: Float
|
28
|
+
|
29
|
+
# Return upper-left corner, width, height of viewport in user coordinates.
|
30
|
+
# Usually these are the values specified when the Pattern object is
|
31
|
+
# created, but they can be changed by a call to the viewbox method.
|
32
|
+
attr_reader width: Float
|
33
|
+
|
34
|
+
# Return upper-left corner, width, height of viewport in user coordinates.
|
35
|
+
# Usually these are the values specified when the Pattern object is
|
36
|
+
# created, but they can be changed by a call to the viewbox method.
|
37
|
+
attr_reader height: Float
|
38
|
+
|
39
|
+
# Create a pattern that can be used with the :fill or :stroke styles.
|
40
|
+
# The +width+ and +height+ arguments define the viewport.
|
41
|
+
# The pattern will be repeated at <tt>x+m*width</tt> and <tt>y+n*height</tt>
|
42
|
+
# offsets.
|
43
|
+
#
|
44
|
+
# Define the pattern in the block.
|
45
|
+
# The pattern can be composed of shapes (rectangle, circles, etc.), text,
|
46
|
+
# raster images and container objects. You can include graphic objects by
|
47
|
+
# referring to them with #use.
|
48
|
+
def initialize: (?magick_real width, ?magick_real height, ?magick_real x, ?magick_real y) -> void
|
49
|
+
| (?magick_real width, ?magick_real height, ?magick_real x, ?magick_real y) { (Pattern) -> void } -> void
|
50
|
+
|
51
|
+
# @private
|
52
|
+
def add_primitives: (Utility::GraphicContext gc, interned style) -> void
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|