skeptick 0.1.1 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG +14 -0
- data/README.md +63 -289
- data/lib/skeptick/command.rb +8 -19
- data/lib/skeptick/convert.rb +65 -82
- data/lib/skeptick/core.rb +1 -7
- data/lib/skeptick/dsl_context.rb +32 -0
- data/lib/skeptick/sugar.rb +13 -7
- data/lib/skeptick/sugar/canvas.rb +8 -0
- data/lib/skeptick/sugar/clone.rb +9 -0
- data/lib/skeptick/sugar/compose.rb +50 -0
- data/lib/skeptick/sugar/delete.rb +9 -0
- data/lib/skeptick/sugar/draw.rb +7 -0
- data/lib/skeptick/sugar/font.rb +7 -0
- data/lib/skeptick/sugar/format.rb +7 -0
- data/lib/skeptick/sugar/geometry.rb +25 -31
- data/lib/skeptick/sugar/resized_image.rb +15 -0
- data/lib/skeptick/sugar/rounded_corners_image.rb +42 -0
- data/lib/skeptick/sugar/swap.rb +12 -0
- data/lib/skeptick/sugar/text.rb +11 -0
- data/lib/skeptick/sugar/torn_paper_image.rb +32 -0
- data/lib/skeptick/sugar/write.rb +8 -0
- data/lib/skeptick/version.rb +1 -1
- data/logo.rb +12 -11
- data/refresh_preview.scpt +1 -1
- data/skeptick.gemspec +1 -0
- data/test/convert_test.rb +128 -33
- data/test/sugar/canvas_test.rb +16 -0
- data/test/sugar/clone_test.rb +41 -0
- data/test/sugar/{composition_test.rb → compose_test.rb} +35 -87
- data/test/sugar/delete_test.rb +41 -0
- data/test/sugar/draw_test.rb +11 -0
- data/test/sugar/font_test.rb +11 -0
- data/test/sugar/format_test.rb +12 -0
- data/test/sugar/{resizing_test.rb → resized_image_test.rb} +5 -5
- data/test/sugar/rounded_corners_image_test.rb +53 -0
- data/test/sugar/swap_test.rb +28 -0
- data/test/sugar/text_test.rb +22 -0
- data/test/sugar/torn_paper_image_test.rb +53 -0
- data/test/sugar/write_test.rb +14 -0
- metadata +57 -34
- data/lib/skeptick/chain.rb +0 -55
- data/lib/skeptick/chain/dsl_context.rb +0 -21
- data/lib/skeptick/convert/dsl_context.rb +0 -27
- data/lib/skeptick/helper.rb +0 -26
- data/lib/skeptick/image.rb +0 -69
- data/lib/skeptick/image/dsl_context.rb +0 -29
- data/lib/skeptick/sugar/composition.rb +0 -55
- data/lib/skeptick/sugar/debugging.rb +0 -12
- data/lib/skeptick/sugar/drawing.rb +0 -32
- data/lib/skeptick/sugar/edges.rb +0 -70
- data/lib/skeptick/sugar/formatting.rb +0 -12
- data/lib/skeptick/sugar/resizing.rb +0 -16
- data/lib/skeptick/sugar/sequence_manipulation.rb +0 -43
- data/test/chain_test.rb +0 -94
- data/test/image_test.rb +0 -145
- data/test/sugar/debugging_test.rb +0 -24
- data/test/sugar/drawing_test.rb +0 -86
- data/test/sugar/edges_test.rb +0 -99
- data/test/sugar/formatting_test.rb +0 -19
- data/test/sugar/sequence_manipulation_test.rb +0 -98
@@ -0,0 +1,41 @@
|
|
1
|
+
require_relative '../test_helper'
|
2
|
+
require 'skeptick/sugar/clone'
|
3
|
+
|
4
|
+
class CloneTest < Skeptick::TestCase
|
5
|
+
include Skeptick
|
6
|
+
|
7
|
+
def test_clone_without_args
|
8
|
+
cmd = convert { clone }
|
9
|
+
assert_equal 'convert +clone miff:-', cmd.to_s
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_clone_with_one_arg
|
13
|
+
cmd = convert { clone(1) }
|
14
|
+
assert_equal 'convert -clone 1 miff:-', cmd.to_s
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_clone_with_two_args
|
18
|
+
cmd = convert { clone(1,3) }
|
19
|
+
assert_equal 'convert -clone 1,3 miff:-', cmd.to_s
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_clone_with_array
|
23
|
+
cmd = convert { clone([1,3]) }
|
24
|
+
assert_equal 'convert -clone 1,3 miff:-', cmd.to_s
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_clone_with_inclusive_range
|
28
|
+
cmd = convert { clone(1..3) }
|
29
|
+
assert_equal 'convert -clone 1-3 miff:-', cmd.to_s
|
30
|
+
end
|
31
|
+
|
32
|
+
def test_clone_with_exclusive_range
|
33
|
+
cmd = convert { clone(1...3) }
|
34
|
+
assert_equal 'convert -clone 1-2 miff:-', cmd.to_s
|
35
|
+
end
|
36
|
+
|
37
|
+
def test_clone_in_nested_convert
|
38
|
+
cmd = convert('foo') { convert { clone; set :bar } }
|
39
|
+
assert_equal 'convert foo ( +clone -bar ) miff:-', cmd.to_s
|
40
|
+
end
|
41
|
+
end
|
@@ -1,11 +1,11 @@
|
|
1
1
|
require_relative '../test_helper'
|
2
|
-
require 'skeptick/sugar/
|
2
|
+
require 'skeptick/sugar/compose'
|
3
3
|
|
4
4
|
# DISCLAIMER
|
5
5
|
# These tests are not examples of proper usage of ImageMagick.
|
6
6
|
# In fact, most of them are entirely invalid. The point is to
|
7
7
|
# test the logic of building strings.
|
8
|
-
class
|
8
|
+
class ComposeTest < Skeptick::TestCase
|
9
9
|
include Skeptick
|
10
10
|
|
11
11
|
def test_compose_with_blending
|
@@ -59,22 +59,22 @@ class CompositionTest < Skeptick::TestCase
|
|
59
59
|
end
|
60
60
|
|
61
61
|
def test_compose_with_ops
|
62
|
-
cmd = compose(:over) {
|
62
|
+
cmd = compose(:over) { set '-foo' }
|
63
63
|
assert_equal 'convert -foo -compose over -composite miff:-', cmd.to_s
|
64
64
|
end
|
65
65
|
|
66
66
|
def test_compose_with_concatenated_ops
|
67
|
-
cmd = compose(:over) {
|
67
|
+
cmd = compose(:over) { set '-foo', 'bar' }
|
68
68
|
assert_equal 'convert -foo bar -compose over -composite miff:-', cmd.to_s
|
69
69
|
end
|
70
70
|
|
71
71
|
def test_compose_with_multiple_ops
|
72
|
-
cmd = compose(:over) {
|
72
|
+
cmd = compose(:over) { set '-foo'; set '+bar' }
|
73
73
|
assert_equal 'convert -foo +bar -compose over -composite miff:-', cmd.to_s
|
74
74
|
end
|
75
75
|
|
76
76
|
def test_compose_with_multiple_concatenated_ops
|
77
|
-
cmd = compose(:over) {
|
77
|
+
cmd = compose(:over) { set '-foo', 'bar'; set '+baz', 'qux' }
|
78
78
|
assert_equal 'convert -foo bar +baz qux -compose over -composite miff:-',
|
79
79
|
cmd.to_s
|
80
80
|
end
|
@@ -82,8 +82,8 @@ class CompositionTest < Skeptick::TestCase
|
|
82
82
|
def test_compose_with_ops_inputs_and_output
|
83
83
|
cmd = compose(:over, 'foo', 'bar', to: 'baz') do
|
84
84
|
image 'qux'
|
85
|
-
|
86
|
-
|
85
|
+
set '+quux'
|
86
|
+
set :corge, 'grault'
|
87
87
|
end
|
88
88
|
|
89
89
|
assert_equal 'convert foo bar qux +quux -corge grault -compose over ' +
|
@@ -92,7 +92,7 @@ class CompositionTest < Skeptick::TestCase
|
|
92
92
|
|
93
93
|
def test_nested_compose
|
94
94
|
cmd = compose(:over, to: 'baz') do
|
95
|
-
compose(:multiply, 'foo') {
|
95
|
+
compose(:multiply, 'foo') { set 'bar' }
|
96
96
|
end
|
97
97
|
|
98
98
|
assert_equal 'convert ( foo bar -compose multiply -composite ) -compose ' +
|
@@ -101,7 +101,7 @@ class CompositionTest < Skeptick::TestCase
|
|
101
101
|
|
102
102
|
def test_nested_compose_ignores_output
|
103
103
|
cmd = compose(:over, to: 'baz') do
|
104
|
-
compose(:multiply, 'foo', to: 'nowhere') {
|
104
|
+
compose(:multiply, 'foo', to: 'nowhere') { set 'bar' }
|
105
105
|
end
|
106
106
|
|
107
107
|
assert_equal 'convert ( foo bar -compose multiply -composite ) -compose ' +
|
@@ -111,12 +111,12 @@ class CompositionTest < Skeptick::TestCase
|
|
111
111
|
def test_multi_image_nested_compose
|
112
112
|
cmd = compose(:over, 'foo', to: 'bar') do
|
113
113
|
compose(:multiply, 'qux') do
|
114
|
-
|
115
|
-
|
114
|
+
set '+asdf'
|
115
|
+
set '+fdsa'
|
116
116
|
end
|
117
117
|
|
118
118
|
image 'bleh'
|
119
|
-
|
119
|
+
set '-resize'
|
120
120
|
end
|
121
121
|
|
122
122
|
assert_equal 'convert foo ( qux +asdf +fdsa -compose multiply ' +
|
@@ -125,14 +125,14 @@ class CompositionTest < Skeptick::TestCase
|
|
125
125
|
|
126
126
|
def test_compose_composition
|
127
127
|
complex_image = compose(:over, 'qux') do
|
128
|
-
|
129
|
-
|
128
|
+
set '+asdf'
|
129
|
+
set '+fdsa'
|
130
130
|
end
|
131
131
|
|
132
132
|
cmd = compose(:multiply, 'foo', to: 'bar') do
|
133
133
|
image complex_image
|
134
134
|
image 'bleh'
|
135
|
-
|
135
|
+
set '-resize'
|
136
136
|
end
|
137
137
|
|
138
138
|
assert_equal 'convert foo ( qux +asdf +fdsa -compose over -composite ) ' +
|
@@ -140,81 +140,29 @@ class CompositionTest < Skeptick::TestCase
|
|
140
140
|
end
|
141
141
|
|
142
142
|
def test_compose_double_nesting_with_composition
|
143
|
-
complex_image = compose(
|
144
|
-
compose(
|
145
|
-
compose(
|
143
|
+
complex_image = compose(:multiply, to: 'nowhere') do
|
144
|
+
compose(:over, to: 'nowhere') do
|
145
|
+
compose(:hardlight) do
|
146
146
|
image 'image1'
|
147
|
-
|
147
|
+
set :option, 'qux'
|
148
148
|
end
|
149
149
|
|
150
150
|
image 'image2'
|
151
|
-
|
151
|
+
set '+option'
|
152
152
|
end
|
153
153
|
end
|
154
154
|
|
155
|
-
cmd = compose(
|
155
|
+
cmd = compose(:screen) do
|
156
156
|
image complex_image
|
157
|
-
image '
|
158
|
-
|
157
|
+
image 'image3'
|
158
|
+
set :option, 'quux'
|
159
159
|
end
|
160
160
|
|
161
|
-
assert_equal 'convert (
|
162
|
-
'
|
163
|
-
'
|
164
|
-
|
165
|
-
|
166
|
-
def test_plus_operator_on_image
|
167
|
-
lhs = image('foo')
|
168
|
-
rhs = image('bar')
|
169
|
-
result = convert(lhs + rhs)
|
170
|
-
|
171
|
-
assert_equal 'convert ( foo bar -compose over -composite ) miff:-',
|
172
|
-
result.to_s
|
173
|
-
end
|
174
|
-
|
175
|
-
def test_minus_operator_on_image
|
176
|
-
lhs = image('foo')
|
177
|
-
rhs = image('bar')
|
178
|
-
result = convert(lhs - rhs)
|
179
|
-
|
180
|
-
assert_equal 'convert ( foo bar -compose dstout -composite ) miff:-',
|
181
|
-
result.to_s
|
182
|
-
end
|
183
|
-
|
184
|
-
def test_multiply_operator_on_image
|
185
|
-
lhs = image('foo')
|
186
|
-
rhs = image('bar')
|
187
|
-
result = convert(lhs * rhs)
|
188
|
-
|
189
|
-
assert_equal 'convert ( foo bar -compose multiply -composite ) miff:-',
|
190
|
-
result.to_s
|
191
|
-
end
|
192
|
-
|
193
|
-
def test_divide_operator_on_image
|
194
|
-
lhs = image('foo')
|
195
|
-
rhs = image('bar')
|
196
|
-
result = convert(lhs / rhs)
|
197
|
-
|
198
|
-
assert_equal 'convert ( foo bar -compose divide -composite ) miff:-',
|
199
|
-
result.to_s
|
200
|
-
end
|
201
|
-
|
202
|
-
def test_and_operator_on_image
|
203
|
-
lhs = image('foo')
|
204
|
-
rhs = image('bar')
|
205
|
-
result = convert(lhs & rhs)
|
206
|
-
|
207
|
-
assert_equal 'convert ( foo bar -alpha Set -compose dstin -composite ) ' +
|
208
|
-
'miff:-', result.to_s
|
209
|
-
end
|
210
|
-
|
211
|
-
def test_or_operator_on_image
|
212
|
-
lhs = image('foo')
|
213
|
-
rhs = image('bar')
|
214
|
-
result = convert(lhs | rhs)
|
215
|
-
|
216
|
-
assert_equal 'convert ( foo bar -compose dstover -composite ) miff:-',
|
217
|
-
result.to_s
|
161
|
+
assert_equal 'convert ( '\
|
162
|
+
'( ( image1 -option qux -compose hardlight -composite ) '\
|
163
|
+
'image2 +option -compose over -composite '\
|
164
|
+
') -compose multiply -composite ) '\
|
165
|
+
'image3 -option quux -compose screen -composite miff:-', cmd.to_s
|
218
166
|
end
|
219
167
|
|
220
168
|
def test_plus_operator_on_convert
|
@@ -222,7 +170,7 @@ class CompositionTest < Skeptick::TestCase
|
|
222
170
|
rhs = convert('bar')
|
223
171
|
result = lhs + rhs
|
224
172
|
|
225
|
-
assert_equal 'convert
|
173
|
+
assert_equal 'convert foo bar -compose over -composite miff:-',
|
226
174
|
result.to_s
|
227
175
|
end
|
228
176
|
|
@@ -231,7 +179,7 @@ class CompositionTest < Skeptick::TestCase
|
|
231
179
|
rhs = convert('bar')
|
232
180
|
result = lhs - rhs
|
233
181
|
|
234
|
-
assert_equal 'convert
|
182
|
+
assert_equal 'convert foo bar -compose dstout -composite miff:-',
|
235
183
|
result.to_s
|
236
184
|
end
|
237
185
|
|
@@ -240,7 +188,7 @@ class CompositionTest < Skeptick::TestCase
|
|
240
188
|
rhs = convert('bar')
|
241
189
|
result = lhs * rhs
|
242
190
|
|
243
|
-
assert_equal 'convert
|
191
|
+
assert_equal 'convert foo bar -compose multiply -composite miff:-',
|
244
192
|
result.to_s
|
245
193
|
end
|
246
194
|
|
@@ -249,7 +197,7 @@ class CompositionTest < Skeptick::TestCase
|
|
249
197
|
rhs = convert('bar')
|
250
198
|
result = lhs / rhs
|
251
199
|
|
252
|
-
assert_equal 'convert
|
200
|
+
assert_equal 'convert foo bar -compose divide -composite miff:-',
|
253
201
|
result.to_s
|
254
202
|
end
|
255
203
|
|
@@ -258,7 +206,7 @@ class CompositionTest < Skeptick::TestCase
|
|
258
206
|
rhs = convert('bar')
|
259
207
|
result = lhs & rhs
|
260
208
|
|
261
|
-
assert_equal 'convert
|
209
|
+
assert_equal 'convert foo bar -alpha Set -compose dstin ' +
|
262
210
|
'-composite miff:-', result.to_s
|
263
211
|
end
|
264
212
|
|
@@ -267,7 +215,7 @@ class CompositionTest < Skeptick::TestCase
|
|
267
215
|
rhs = convert('bar')
|
268
216
|
result = lhs | rhs
|
269
217
|
|
270
|
-
assert_equal 'convert
|
218
|
+
assert_equal 'convert foo bar -compose dstover -composite miff:-',
|
271
219
|
result.to_s
|
272
220
|
end
|
273
221
|
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
require_relative '../test_helper'
|
2
|
+
require 'skeptick/sugar/delete'
|
3
|
+
|
4
|
+
class DeleteTest < Skeptick::TestCase
|
5
|
+
include Skeptick
|
6
|
+
|
7
|
+
def test_delete_without_args
|
8
|
+
cmd = convert { delete }
|
9
|
+
assert_equal 'convert +delete miff:-', cmd.to_s
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_delete_with_one_arg
|
13
|
+
cmd = convert { delete(1) }
|
14
|
+
assert_equal 'convert -delete 1 miff:-', cmd.to_s
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_delete_with_two_args
|
18
|
+
cmd = convert { delete(1,3) }
|
19
|
+
assert_equal 'convert -delete 1,3 miff:-', cmd.to_s
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_delete_with_array
|
23
|
+
cmd = convert { delete([1,3]) }
|
24
|
+
assert_equal 'convert -delete 1,3 miff:-', cmd.to_s
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_delete_with_inclusive_range
|
28
|
+
cmd = convert { delete(1..3) }
|
29
|
+
assert_equal 'convert -delete 1-3 miff:-', cmd.to_s
|
30
|
+
end
|
31
|
+
|
32
|
+
def test_delete_with_exclusive_range
|
33
|
+
cmd = convert { delete(1...3) }
|
34
|
+
assert_equal 'convert -delete 1-2 miff:-', cmd.to_s
|
35
|
+
end
|
36
|
+
|
37
|
+
def test_delete_in_nested_convert
|
38
|
+
cmd = convert('foo') { convert('bar') { delete } }
|
39
|
+
assert_equal 'convert foo ( bar +delete ) miff:-', cmd.to_s
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
require_relative '../test_helper'
|
2
|
+
require 'skeptick/sugar/draw'
|
3
|
+
|
4
|
+
class DrawTest < Skeptick::TestCase
|
5
|
+
include Skeptick
|
6
|
+
|
7
|
+
def test_draw_in_convert
|
8
|
+
cmd = convert { draw 'fill none bezier 1,2 3,4' }
|
9
|
+
assert_equal 'convert -draw fill none bezier 1,2 3,4 miff:-', cmd.to_s
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
require_relative '../test_helper'
|
2
|
+
require 'skeptick/sugar/font'
|
3
|
+
|
4
|
+
class FontTest < Skeptick::TestCase
|
5
|
+
include Skeptick
|
6
|
+
|
7
|
+
def test_font_in_convert
|
8
|
+
cmd = convert { font 'handwriting - dakota Regular' }
|
9
|
+
assert_equal 'convert -font Handwriting---Dakota-Regular miff:-', cmd.to_s
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
require_relative '../test_helper'
|
2
|
+
require 'skeptick/sugar/format'
|
3
|
+
|
4
|
+
class FormatTest < Skeptick::TestCase
|
5
|
+
include Skeptick
|
6
|
+
|
7
|
+
def test_format_in_convert
|
8
|
+
cmd = convert { format "roundrectangle 1,1 %[fx:w], %[fx:h] 5,5" }
|
9
|
+
assert_equal 'convert -format roundrectangle 1,1 %[fx:w], '\
|
10
|
+
'%[fx:h] 5,5 miff:-', cmd.to_s
|
11
|
+
end
|
12
|
+
end
|
@@ -1,22 +1,22 @@
|
|
1
1
|
require_relative '../test_helper'
|
2
|
-
require 'skeptick/sugar/
|
2
|
+
require 'skeptick/sugar/resized_image'
|
3
3
|
|
4
|
-
class
|
4
|
+
class ResizedImageTest < Skeptick::TestCase
|
5
5
|
include Skeptick
|
6
6
|
|
7
|
-
def
|
7
|
+
def test_resized_image_with_geometry_options
|
8
8
|
img = resized_image('foo', width: 200, shrink_only: true)
|
9
9
|
cmd = convert(img)
|
10
10
|
assert_equal 'convert foo[200x>] miff:-', cmd.to_s
|
11
11
|
end
|
12
12
|
|
13
|
-
def
|
13
|
+
def test_resized_image_nested_via_lvar
|
14
14
|
img = resized_image('foo', width: 200, shrink_only: true)
|
15
15
|
cmd = convert { image(img) }
|
16
16
|
assert_equal 'convert foo[200x>] miff:-', cmd.to_s
|
17
17
|
end
|
18
18
|
|
19
|
-
def
|
19
|
+
def test_resized_image_nested_via_block
|
20
20
|
cmd = convert do
|
21
21
|
resized_image('foo', height: 100, shrink_only: true)
|
22
22
|
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
require_relative '../test_helper'
|
2
|
+
require 'skeptick/sugar/rounded_corners_image'
|
3
|
+
|
4
|
+
class RoundedCornersImageTest < Skeptick::TestCase
|
5
|
+
include Skeptick
|
6
|
+
|
7
|
+
def test_rounded_corners_image_without_block_and_radius
|
8
|
+
img = rounded_corners_image('foo', size: '200x300')
|
9
|
+
|
10
|
+
assert_equal 'convert foo ( +clone '\
|
11
|
+
'-draw roundrectangle 1,1 200,300 15,15 ) -compose dstin '\
|
12
|
+
'-composite miff:-', img.to_s
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_rounded_corners_image_with_block_and_radius
|
16
|
+
img = rounded_corners_image(size: '200x300', radius: 20) do
|
17
|
+
image 'tile:granite:'
|
18
|
+
append '-brightness-contrast', '38x-33'
|
19
|
+
end
|
20
|
+
|
21
|
+
assert_equal 'convert ( tile:granite: -brightness-contrast 38x-33 )'\
|
22
|
+
' ( +clone -draw roundrectangle 1,1 '\
|
23
|
+
'200,300 20,20 ) -compose dstin -composite miff:-', img.to_s
|
24
|
+
end
|
25
|
+
|
26
|
+
def test_nested_rounded_corners_image
|
27
|
+
cmd = convert(to: 'bar') do
|
28
|
+
rounded_corners_image('foo', size: '200x300', radius: 5)
|
29
|
+
end
|
30
|
+
|
31
|
+
assert_equal 'convert foo ( +clone '\
|
32
|
+
'-draw roundrectangle 1,1 200,300 5,5 ) -compose '\
|
33
|
+
'dstin -composite bar', cmd.to_s
|
34
|
+
end
|
35
|
+
|
36
|
+
def test_nested_rounded_corners_image_via_lvar_arg
|
37
|
+
img = rounded_corners_image('foo', size: '200x300', radius: 5)
|
38
|
+
cmd = convert(img, to: 'bar')
|
39
|
+
|
40
|
+
assert_equal 'convert foo ( +clone '\
|
41
|
+
'-draw roundrectangle 1,1 200,300 5,5 ) -compose '\
|
42
|
+
'dstin -composite bar', cmd.to_s
|
43
|
+
end
|
44
|
+
|
45
|
+
def test_nested_rounded_corners_image_via_lvar_in_block
|
46
|
+
img = rounded_corners_image('foo', size: '200x300', radius: 5)
|
47
|
+
cmd = convert(to: 'bar') { image(img) }
|
48
|
+
|
49
|
+
assert_equal 'convert foo ( +clone '\
|
50
|
+
'-draw roundrectangle 1,1 200,300 5,5 ) -compose '\
|
51
|
+
'dstin -composite bar', cmd.to_s
|
52
|
+
end
|
53
|
+
end
|