shattered_machine 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -1
- data/.yardoc/checksums +8 -8
- data/.yardoc/object_types +0 -0
- data/.yardoc/objects/root.dat +0 -0
- data/doc/ShatteredMachine.html +13 -2
- data/doc/ShatteredMachine/Brush.html +1 -1
- data/doc/ShatteredMachine/ChangeByte.html +1 -1
- data/doc/ShatteredMachine/Converter.html +1 -1
- data/doc/ShatteredMachine/Defect.html +1 -1
- data/doc/ShatteredMachine/Exchange.html +25 -9
- data/doc/ShatteredMachine/Glitcher.html +1 -1
- data/doc/ShatteredMachine/Io.html +1 -1
- data/doc/ShatteredMachine/Io/Paths.html +1 -1
- data/doc/ShatteredMachine/PixelSorter.html +4 -4
- data/doc/ShatteredMachine/RustyEngine.html +12 -1
- data/doc/ShatteredMachine/Sampler.html +2 -2
- data/doc/ShatteredMachine/Slim.html +2 -2
- data/doc/ShatteredMachine/Transpose.html +25 -9
- data/doc/ShatteredMachine/WrongFilter.html +1 -1
- data/doc/_index.html +1 -1
- data/doc/index.html +1 -1
- data/doc/top-level-namespace.html +1 -1
- data/lib/rusty_engine/rusty_engine.rb +6 -2
- data/lib/shattered_machine.rb +4 -2
- data/lib/shattered_machine/exchange.rb +3 -2
- data/lib/shattered_machine/pixel_sorter.rb +3 -3
- data/lib/shattered_machine/sampler.rb +3 -3
- data/lib/shattered_machine/slim.rb +1 -1
- data/lib/shattered_machine/transpose.rb +15 -8
- data/lib/shattered_machine/wrong_filter.rb +1 -1
- data/shattered_machine.gemspec +2 -2
- data/spec/brush_spec.rb +0 -3
- data/spec/change_byte_spec.rb +0 -1
- data/spec/converter_spec.rb +0 -1
- data/spec/defect_spec.rb +0 -1
- data/spec/exchange_spec.rb +0 -1
- data/spec/glitcher_spec.rb +0 -1
- data/spec/io_spec.rb +0 -1
- data/spec/lib/rusty_engine_spec.rb +0 -1
- data/spec/pixel_sorter_spec.rb +0 -1
- data/spec/slim_spec.rb +0 -1
- data/spec/spec_helper.rb +2 -35
- data/spec/transpose_spec.rb +0 -1
- data/spec/wrong_filter_spec.rb +0 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 270e23322ce44e6a921c93d0b88dbeb982b4eb28b37a2f33ac3abe38b32e6dad
|
4
|
+
data.tar.gz: 3b1804b2f89d4f930841858d90b45a9de764d864038cdcf8c6b82c26d98196e4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3c7af5d305304c1fff124c87e770a82bc9b1ca1851eb595e3d4ba413a7355117815a7310a9614dc118815d0751c172e14f3f07014713329c2008b8f0dcc07773
|
7
|
+
data.tar.gz: 02c3e621bcb430b1dde66fb232af088f70a26a564d3d761db8a92c7a606f04f6aad16fceb5811ee0d74050e61aa8f960639168d23ca0f3c6887b71d7ee6f5a47
|
data/.gitignore
CHANGED
data/.yardoc/checksums
CHANGED
@@ -1,14 +1,14 @@
|
|
1
|
-
lib/shattered_machine.rb
|
1
|
+
lib/shattered_machine.rb e5d8db3b105d5d0409ff7211617ea36044986a0a
|
2
2
|
lib/shattered_machine/io.rb 02fface2a883b962a3c27ffba497af8aad184993
|
3
|
-
lib/shattered_machine/slim.rb
|
3
|
+
lib/shattered_machine/slim.rb 1f0def79e7f6631d6b9b239d5d11f512d761815f
|
4
4
|
lib/shattered_machine/brush.rb d0c27748daffefd4b40ecee2feff395d1dd3a1da
|
5
5
|
lib/shattered_machine/defect.rb b2402bad054d51847fd3b83d597014e8e97a2fe8
|
6
|
-
lib/rusty_engine/rusty_engine.rb
|
7
|
-
lib/shattered_machine/sampler.rb
|
8
|
-
lib/shattered_machine/exchange.rb
|
6
|
+
lib/rusty_engine/rusty_engine.rb 530c6563814f0c230f14606e96468962d2ae88c3
|
7
|
+
lib/shattered_machine/sampler.rb 51823b7678fd9da8868a2c6e847727b2d51d24b3
|
8
|
+
lib/shattered_machine/exchange.rb d230bc77bb9dfc34ea89e55892a6a33ec028d4b6
|
9
9
|
lib/shattered_machine/glitcher.rb 071744286d68720fe47d7dfae2e033fdcff1cf69
|
10
10
|
lib/shattered_machine/converter.rb da5eeda73917386592612d0834a7c4d4467d5df2
|
11
|
-
lib/shattered_machine/transpose.rb
|
11
|
+
lib/shattered_machine/transpose.rb 412ae07a4bf92dd8ba7383bce7558b85ad369e6a
|
12
12
|
lib/shattered_machine/change_byte.rb 445fc0f28fe02eaf83e711e1d616862128a86be4
|
13
|
-
lib/shattered_machine/pixel_sorter.rb
|
14
|
-
lib/shattered_machine/wrong_filter.rb
|
13
|
+
lib/shattered_machine/pixel_sorter.rb 8670ff9c56a769797654ebd41f358ce48cd72962
|
14
|
+
lib/shattered_machine/wrong_filter.rb a71a6b72cd152d3106e266e4736369cff7fdb6b1
|
data/.yardoc/object_types
CHANGED
Binary file
|
data/.yardoc/objects/root.dat
CHANGED
Binary file
|
data/doc/ShatteredMachine.html
CHANGED
@@ -85,7 +85,18 @@
|
|
85
85
|
|
86
86
|
</div>
|
87
87
|
|
88
|
-
<h2>
|
88
|
+
<h2>Overview</h2><div class="docstring">
|
89
|
+
<div class="discussion">
|
90
|
+
|
91
|
+
<p>main file for ShatteredMachine gem</p>
|
92
|
+
|
93
|
+
|
94
|
+
</div>
|
95
|
+
</div>
|
96
|
+
<div class="tags">
|
97
|
+
|
98
|
+
|
99
|
+
</div><h2>Defined Under Namespace</h2>
|
89
100
|
<p class="children">
|
90
101
|
|
91
102
|
|
@@ -125,7 +136,7 @@
|
|
125
136
|
</div>
|
126
137
|
|
127
138
|
<div id="footer">
|
128
|
-
Generated on Sun May 23
|
139
|
+
Generated on Sun May 23 18:36:58 2021 by
|
129
140
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
130
141
|
0.9.26 (ruby-2.6.6).
|
131
142
|
</div>
|
@@ -365,7 +365,7 @@
|
|
365
365
|
</div>
|
366
366
|
|
367
367
|
<div id="footer">
|
368
|
-
Generated on Sun May 23
|
368
|
+
Generated on Sun May 23 18:36:58 2021 by
|
369
369
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
370
370
|
0.9.26 (ruby-2.6.6).
|
371
371
|
</div>
|
@@ -357,7 +357,7 @@
|
|
357
357
|
</div>
|
358
358
|
|
359
359
|
<div id="footer">
|
360
|
-
Generated on Sun May 23
|
360
|
+
Generated on Sun May 23 18:36:58 2021 by
|
361
361
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
362
362
|
0.9.26 (ruby-2.6.6).
|
363
363
|
</div>
|
@@ -317,7 +317,7 @@
|
|
317
317
|
</div>
|
318
318
|
|
319
319
|
<div id="footer">
|
320
|
-
Generated on Sun May 23
|
320
|
+
Generated on Sun May 23 18:36:58 2021 by
|
321
321
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
322
322
|
0.9.26 (ruby-2.6.6).
|
323
323
|
</div>
|
@@ -359,7 +359,7 @@
|
|
359
359
|
</div>
|
360
360
|
|
361
361
|
<div id="footer">
|
362
|
-
Generated on Sun May 23
|
362
|
+
Generated on Sun May 23 18:36:58 2021 by
|
363
363
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
364
364
|
0.9.26 (ruby-2.6.6).
|
365
365
|
</div>
|
@@ -111,6 +111,22 @@
|
|
111
111
|
|
112
112
|
|
113
113
|
</div>
|
114
|
+
|
115
|
+
<h2>
|
116
|
+
Constant Summary
|
117
|
+
<small><a href="#" class="constants_summary_toggle">collapse</a></small>
|
118
|
+
</h2>
|
119
|
+
|
120
|
+
<dl class="constants">
|
121
|
+
|
122
|
+
<dt id="ALL_FILTERS-constant" class="">ALL_FILTERS =
|
123
|
+
|
124
|
+
</dt>
|
125
|
+
<dd><pre class="code"><span class='qwords_beg'>%w[</span><span class='tstring_content'>none</span><span class='words_sep'> </span><span class='tstring_content'>sub</span><span class='words_sep'> </span><span class='tstring_content'>up</span><span class='words_sep'> </span><span class='tstring_content'>average</span><span class='words_sep'> </span><span class='tstring_content'>paeth</span><span class='tstring_end'>]</span></span><span class='period'>.</span><span class='id identifier rubyid_freeze'>freeze</span></pre></dd>
|
126
|
+
|
127
|
+
</dl>
|
128
|
+
|
129
|
+
|
114
130
|
|
115
131
|
|
116
132
|
|
@@ -229,15 +245,15 @@
|
|
229
245
|
<pre class="lines">
|
230
246
|
|
231
247
|
|
232
|
-
8
|
233
|
-
9
|
234
248
|
10
|
235
249
|
11
|
236
250
|
12
|
237
|
-
13
|
251
|
+
13
|
252
|
+
14
|
253
|
+
15</pre>
|
238
254
|
</td>
|
239
255
|
<td>
|
240
|
-
<pre class="code"><span class="info file"># File 'lib/shattered_machine/exchange.rb', line
|
256
|
+
<pre class="code"><span class="info file"># File 'lib/shattered_machine/exchange.rb', line 10</span>
|
241
257
|
|
242
258
|
<span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
|
243
259
|
<span class='ivar'>@filter</span> <span class='op'>=</span> <span class='id identifier rubyid_define_filter'>define_filter</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:filter</span><span class='rbracket'>]</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>average</span><span class='tstring_end'>'</span></span>
|
@@ -337,15 +353,15 @@
|
|
337
353
|
<pre class="lines">
|
338
354
|
|
339
355
|
|
340
|
-
18
|
341
|
-
19
|
342
356
|
20
|
343
357
|
21
|
344
358
|
22
|
345
|
-
23
|
359
|
+
23
|
360
|
+
24
|
361
|
+
25</pre>
|
346
362
|
</td>
|
347
363
|
<td>
|
348
|
-
<pre class="code"><span class="info file"># File 'lib/shattered_machine/exchange.rb', line
|
364
|
+
<pre class="code"><span class="info file"># File 'lib/shattered_machine/exchange.rb', line 20</span>
|
349
365
|
|
350
366
|
<span class='kw'>def</span> <span class='id identifier rubyid_call'>call</span><span class='lparen'>(</span><span class='id identifier rubyid_input_image'>input_image</span><span class='comma'>,</span> <span class='id identifier rubyid_output_image'>output_image</span><span class='rparen'>)</span>
|
351
367
|
<span class='const'>PNGlitch</span><span class='period'>.</span><span class='id identifier rubyid_open'>open</span><span class='lparen'>(</span><span class='id identifier rubyid_input_image'>input_image</span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_png'>png</span><span class='op'>|</span>
|
@@ -363,7 +379,7 @@
|
|
363
379
|
</div>
|
364
380
|
|
365
381
|
<div id="footer">
|
366
|
-
Generated on Sun May 23
|
382
|
+
Generated on Sun May 23 18:36:58 2021 by
|
367
383
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
368
384
|
0.9.26 (ruby-2.6.6).
|
369
385
|
</div>
|
@@ -355,7 +355,7 @@
|
|
355
355
|
</div>
|
356
356
|
|
357
357
|
<div id="footer">
|
358
|
-
Generated on Sun May 23
|
358
|
+
Generated on Sun May 23 18:36:58 2021 by
|
359
359
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
360
360
|
0.9.26 (ruby-2.6.6).
|
361
361
|
</div>
|
@@ -559,7 +559,7 @@
|
|
559
559
|
</div>
|
560
560
|
|
561
561
|
<div id="footer">
|
562
|
-
Generated on Sun May 23
|
562
|
+
Generated on Sun May 23 18:36:58 2021 by
|
563
563
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
564
564
|
0.9.26 (ruby-2.6.6).
|
565
565
|
</div>
|
@@ -300,7 +300,7 @@
|
|
300
300
|
</div>
|
301
301
|
|
302
302
|
<div id="footer">
|
303
|
-
Generated on Sun May 23
|
303
|
+
Generated on Sun May 23 18:36:58 2021 by
|
304
304
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
305
305
|
0.9.26 (ruby-2.6.6).
|
306
306
|
</div>
|
@@ -251,8 +251,8 @@
|
|
251
251
|
<span class='ivar'>@detection_min</span> <span class='op'>=</span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:detection_min</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>45</span><span class='tstring_end'>'</span></span>
|
252
252
|
<span class='ivar'>@detection_max</span> <span class='op'>=</span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:detection_max</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>60</span><span class='tstring_end'>'</span></span>
|
253
253
|
<span class='ivar'>@multiple_ranges</span> <span class='op'>=</span> <span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:multiple_ranges</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='kw'>false</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
|
254
|
-
<span class='ivar'>@
|
255
|
-
<span class='ivar'>@
|
254
|
+
<span class='ivar'>@detection_min_two</span> <span class='op'>=</span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:detection_min_two</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>75</span><span class='tstring_end'>'</span></span>
|
255
|
+
<span class='ivar'>@detection_max_two</span> <span class='op'>=</span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:detection_max_two</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>90</span><span class='tstring_end'>'</span></span>
|
256
256
|
<span class='ivar'>@sorting_by</span> <span class='op'>=</span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:sorting_by</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='symbol'>:hue</span>
|
257
257
|
<span class='kw'>end</span></pre>
|
258
258
|
</td>
|
@@ -359,7 +359,7 @@
|
|
359
359
|
<span class='kw'>def</span> <span class='id identifier rubyid_call'>call</span><span class='lparen'>(</span><span class='id identifier rubyid_input_image'>input_image</span><span class='comma'>,</span> <span class='id identifier rubyid_output_image'>output_image</span><span class='rparen'>)</span>
|
360
360
|
<span class='const'><span class='object_link'><a href="RustyEngine.html" title="ShatteredMachine::RustyEngine (module)">RustyEngine</a></span></span><span class='period'>.</span><span class='id identifier rubyid_sort'>sort</span><span class='lparen'>(</span><span class='id identifier rubyid_input_image'>input_image</span><span class='comma'>,</span> <span class='id identifier rubyid_output_image'>output_image</span><span class='comma'>,</span> <span class='id identifier rubyid_rust_formatted_direction'>rust_formatted_direction</span><span class='comma'>,</span> <span class='ivar'>@smart_sorting</span><span class='comma'>,</span>
|
361
361
|
<span class='id identifier rubyid_rust_formatted_detection_type'>rust_formatted_detection_type</span><span class='comma'>,</span> <span class='ivar'>@detection_min</span><span class='comma'>,</span> <span class='ivar'>@detection_max</span><span class='comma'>,</span> <span class='ivar'>@multiple_ranges</span><span class='comma'>,</span>
|
362
|
-
<span class='ivar'>@
|
362
|
+
<span class='ivar'>@detection_min_two</span><span class='comma'>,</span> <span class='ivar'>@detection_max_two</span><span class='comma'>,</span> <span class='id identifier rubyid_rust_formatted_sorting_by'>rust_formatted_sorting_by</span><span class='rparen'>)</span>
|
363
363
|
<span class='kw'>end</span></pre>
|
364
364
|
</td>
|
365
365
|
</tr>
|
@@ -371,7 +371,7 @@
|
|
371
371
|
</div>
|
372
372
|
|
373
373
|
<div id="footer">
|
374
|
-
Generated on Sun May 23
|
374
|
+
Generated on Sun May 23 18:36:58 2021 by
|
375
375
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
376
376
|
0.9.26 (ruby-2.6.6).
|
377
377
|
</div>
|
@@ -88,8 +88,19 @@
|
|
88
88
|
|
89
89
|
</div>
|
90
90
|
|
91
|
+
<h2>Overview</h2><div class="docstring">
|
92
|
+
<div class="discussion">
|
93
|
+
|
94
|
+
<p>Add the following functions from the <a href="https://framagit.org/Radoteur/rusty_engine" target="_parent" title="Optional Rusty Engine">Optional Rusty Engine</a> using FFI : convert, brush, slim, sort.</p>
|
91
95
|
|
92
96
|
|
97
|
+
</div>
|
98
|
+
</div>
|
99
|
+
<div class="tags">
|
100
|
+
|
101
|
+
|
102
|
+
</div>
|
103
|
+
|
93
104
|
|
94
105
|
|
95
106
|
|
@@ -101,7 +112,7 @@
|
|
101
112
|
</div>
|
102
113
|
|
103
114
|
<div id="footer">
|
104
|
-
Generated on Sun May 23
|
115
|
+
Generated on Sun May 23 18:36:58 2021 by
|
105
116
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
106
117
|
0.9.26 (ruby-2.6.6).
|
107
118
|
</div>
|
@@ -137,7 +137,7 @@
|
|
137
137
|
<dt id="ALL_ALGORITHMS-constant" class="">ALL_ALGORITHMS =
|
138
138
|
|
139
139
|
</dt>
|
140
|
-
<dd><pre class="code"><span class='qwords_beg'>%w[</span><span class='tstring_content'>exchange</span><span class='words_sep'> </span><span class='tstring_content'>transpose</span><span class='words_sep'> </span><span class='tstring_content'>wrong_filter</span><span class='words_sep'> </span><span class='tstring_content'>slim</span><span class='words_sep'> </span><span class='tstring_content'>brus</span><span class='words_sep'> </span><span class='tstring_content'>change_byte</span><span class='words_sep'> </span><span class='tstring_content'>defect</span><span class='tstring_end'>]</span></span></pre></dd>
|
140
|
+
<dd><pre class="code"><span class='qwords_beg'>%w[</span><span class='tstring_content'>exchange</span><span class='words_sep'> </span><span class='tstring_content'>transpose</span><span class='words_sep'> </span><span class='tstring_content'>wrong_filter</span><span class='words_sep'> </span><span class='tstring_content'>slim</span><span class='words_sep'> </span><span class='tstring_content'>brus</span><span class='words_sep'> </span><span class='tstring_content'>change_byte</span><span class='words_sep'> </span><span class='tstring_content'>defect</span><span class='tstring_end'>]</span></span><span class='period'>.</span><span class='id identifier rubyid_freeze'>freeze</span></pre></dd>
|
141
141
|
|
142
142
|
</dl>
|
143
143
|
|
@@ -351,7 +351,7 @@
|
|
351
351
|
</div>
|
352
352
|
|
353
353
|
<div id="footer">
|
354
|
-
Generated on Sun May 23
|
354
|
+
Generated on Sun May 23 18:36:58 2021 by
|
355
355
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
356
356
|
0.9.26 (ruby-2.6.6).
|
357
357
|
</div>
|
@@ -122,7 +122,7 @@
|
|
122
122
|
<dt id="ALL_COLORS-constant" class="">ALL_COLORS =
|
123
123
|
|
124
124
|
</dt>
|
125
|
-
<dd><pre class="code"><span class='qsymbols_beg'>%i
|
125
|
+
<dd><pre class="code"><span class='qsymbols_beg'>%i[</span><span class='tstring_content'>white</span><span class='words_sep'> </span><span class='tstring_content'>black</span><span class='words_sep'> </span><span class='tstring_content'>grey</span><span class='words_sep'> </span><span class='tstring_content'>red</span><span class='words_sep'> </span><span class='tstring_content'>green</span><span class='words_sep'> </span><span class='tstring_content'>blue</span><span class='words_sep'> </span><span class='tstring_content'>cyan</span><span class='words_sep'> </span><span class='tstring_content'>yellow</span><span class='words_sep'> </span><span class='tstring_content'>magenta</span><span class='tstring_end'>]</span></span><span class='period'>.</span><span class='id identifier rubyid_freeze'>freeze</span></pre></dd>
|
126
126
|
|
127
127
|
</dl>
|
128
128
|
|
@@ -379,7 +379,7 @@
|
|
379
379
|
</div>
|
380
380
|
|
381
381
|
<div id="footer">
|
382
|
-
Generated on Sun May 23
|
382
|
+
Generated on Sun May 23 18:36:58 2021 by
|
383
383
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
384
384
|
0.9.26 (ruby-2.6.6).
|
385
385
|
</div>
|
@@ -111,6 +111,22 @@
|
|
111
111
|
|
112
112
|
|
113
113
|
</div>
|
114
|
+
|
115
|
+
<h2>
|
116
|
+
Constant Summary
|
117
|
+
<small><a href="#" class="constants_summary_toggle">collapse</a></small>
|
118
|
+
</h2>
|
119
|
+
|
120
|
+
<dl class="constants">
|
121
|
+
|
122
|
+
<dt id="ALL_FILTERS-constant" class="">ALL_FILTERS =
|
123
|
+
|
124
|
+
</dt>
|
125
|
+
<dd><pre class="code"><span class='qwords_beg'>%w[</span><span class='tstring_content'>none</span><span class='words_sep'> </span><span class='tstring_content'>sub</span><span class='words_sep'> </span><span class='tstring_content'>up</span><span class='words_sep'> </span><span class='tstring_content'>average</span><span class='words_sep'> </span><span class='tstring_content'>paeth</span><span class='tstring_end'>]</span></span><span class='period'>.</span><span class='id identifier rubyid_freeze'>freeze</span></pre></dd>
|
126
|
+
|
127
|
+
</dl>
|
128
|
+
|
129
|
+
|
114
130
|
|
115
131
|
|
116
132
|
|
@@ -229,13 +245,13 @@
|
|
229
245
|
<pre class="lines">
|
230
246
|
|
231
247
|
|
232
|
-
8
|
233
|
-
9
|
234
248
|
10
|
235
|
-
11
|
249
|
+
11
|
250
|
+
12
|
251
|
+
13</pre>
|
236
252
|
</td>
|
237
253
|
<td>
|
238
|
-
<pre class="code"><span class="info file"># File 'lib/shattered_machine/transpose.rb', line
|
254
|
+
<pre class="code"><span class="info file"># File 'lib/shattered_machine/transpose.rb', line 10</span>
|
239
255
|
|
240
256
|
<span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
|
241
257
|
<span class='ivar'>@filter</span> <span class='op'>=</span> <span class='id identifier rubyid_define_filter'>define_filter</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:filter</span><span class='rbracket'>]</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>average</span><span class='tstring_end'>'</span></span>
|
@@ -333,15 +349,15 @@
|
|
333
349
|
<pre class="lines">
|
334
350
|
|
335
351
|
|
336
|
-
16
|
337
|
-
17
|
338
352
|
18
|
339
353
|
19
|
340
354
|
20
|
341
|
-
21
|
355
|
+
21
|
356
|
+
22
|
357
|
+
23</pre>
|
342
358
|
</td>
|
343
359
|
<td>
|
344
|
-
<pre class="code"><span class="info file"># File 'lib/shattered_machine/transpose.rb', line
|
360
|
+
<pre class="code"><span class="info file"># File 'lib/shattered_machine/transpose.rb', line 18</span>
|
345
361
|
|
346
362
|
<span class='kw'>def</span> <span class='id identifier rubyid_call'>call</span><span class='lparen'>(</span><span class='id identifier rubyid_input_image'>input_image</span><span class='comma'>,</span> <span class='id identifier rubyid_output_image'>output_image</span><span class='rparen'>)</span>
|
347
363
|
<span class='const'>PNGlitch</span><span class='period'>.</span><span class='id identifier rubyid_open'>open</span><span class='lparen'>(</span><span class='id identifier rubyid_input_image'>input_image</span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_png'>png</span><span class='op'>|</span>
|
@@ -359,7 +375,7 @@
|
|
359
375
|
</div>
|
360
376
|
|
361
377
|
<div id="footer">
|
362
|
-
Generated on Sun May 23
|
378
|
+
Generated on Sun May 23 18:36:58 2021 by
|
363
379
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
364
380
|
0.9.26 (ruby-2.6.6).
|
365
381
|
</div>
|
@@ -357,7 +357,7 @@
|
|
357
357
|
</div>
|
358
358
|
|
359
359
|
<div id="footer">
|
360
|
-
Generated on Sun May 23
|
360
|
+
Generated on Sun May 23 18:36:58 2021 by
|
361
361
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
362
362
|
0.9.26 (ruby-2.6.6).
|
363
363
|
</div>
|
data/doc/_index.html
CHANGED
@@ -278,7 +278,7 @@
|
|
278
278
|
</div>
|
279
279
|
|
280
280
|
<div id="footer">
|
281
|
-
Generated on Sun May 23
|
281
|
+
Generated on Sun May 23 18:36:58 2021 by
|
282
282
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
283
283
|
0.9.26 (ruby-2.6.6).
|
284
284
|
</div>
|
data/doc/index.html
CHANGED
@@ -113,7 +113,7 @@ To install the needed dependencies you need to install the <a href="https://www.
|
|
113
113
|
</div></div>
|
114
114
|
|
115
115
|
<div id="footer">
|
116
|
-
Generated on Sun May 23
|
116
|
+
Generated on Sun May 23 18:36:58 2021 by
|
117
117
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
118
118
|
0.9.26 (ruby-2.6.6).
|
119
119
|
</div>
|
@@ -100,7 +100,7 @@
|
|
100
100
|
</div>
|
101
101
|
|
102
102
|
<div id="footer">
|
103
|
-
Generated on Sun May 23
|
103
|
+
Generated on Sun May 23 18:36:58 2021 by
|
104
104
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
105
105
|
0.9.26 (ruby-2.6.6).
|
106
106
|
</div>
|
@@ -3,6 +3,8 @@
|
|
3
3
|
require 'ffi'
|
4
4
|
|
5
5
|
module ShatteredMachine
|
6
|
+
# Add the following functions from the {https://framagit.org/Radoteur/rusty_engine Optional Rusty Engine} using FFI :
|
7
|
+
# convert, brush, slim, sort.
|
6
8
|
module RustyEngine
|
7
9
|
extend FFI::Library
|
8
10
|
lib_name = "librusty_engine.#{FFI::Platform::LIBSUFFIX}"
|
@@ -25,7 +27,8 @@ module ShatteredMachine
|
|
25
27
|
# 4 -> right_to_left
|
26
28
|
attach_function :slim, %i[string string string string string string string], :void, { blocking: true }
|
27
29
|
|
28
|
-
# Params : input, output, direction, smart_sorting, detection_type, min, max, multiple_range, min_2, max_2,
|
30
|
+
# Params : input, output, direction, smart_sorting, detection_type, min, max, multiple_range, min_2, max_2,
|
31
|
+
# sorting_by
|
29
32
|
# directions : 0 -> up_to_down
|
30
33
|
# 1 -> down_to_up
|
31
34
|
# 2 -> left_to_right
|
@@ -34,6 +37,7 @@ module ShatteredMachine
|
|
34
37
|
# 1 -> colors
|
35
38
|
# sorting_by : 0 -> hue
|
36
39
|
# 1 -> saturation
|
37
|
-
attach_function :sort, %i[string string string string string string string string string string string],
|
40
|
+
attach_function :sort, %i[string string string string string string string string string string string],
|
41
|
+
:void, { blocking: true }
|
38
42
|
end
|
39
43
|
end
|
data/lib/shattered_machine.rb
CHANGED
@@ -1,10 +1,12 @@
|
|
1
|
-
#
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
2
3
|
require 'shattered_machine/converter'
|
3
4
|
require 'shattered_machine/glitcher'
|
4
5
|
require 'shattered_machine/io'
|
5
6
|
|
7
|
+
# main file for ShatteredMachine gem
|
6
8
|
module ShatteredMachine
|
7
|
-
VERSION = '0.0.
|
9
|
+
VERSION = '0.0.2'
|
8
10
|
|
9
11
|
class << self
|
10
12
|
end
|
@@ -4,6 +4,8 @@ require 'pnglitch'
|
|
4
4
|
module ShatteredMachine
|
5
5
|
# Use the exchange algorithm from pnglitch on a given png image.
|
6
6
|
class Exchange
|
7
|
+
ALL_FILTERS = %w[none sub up average paeth].freeze
|
8
|
+
|
7
9
|
# @param options [Hash] options for exchange algorithm
|
8
10
|
def initialize(options = {})
|
9
11
|
@filter = define_filter(options[:filter]) || 'average'
|
@@ -27,8 +29,7 @@ module ShatteredMachine
|
|
27
29
|
def define_filter(filter_from_options)
|
28
30
|
return filter_from_options unless filter_from_options == 'random'
|
29
31
|
|
30
|
-
|
31
|
-
available_filters[rand(5)]
|
32
|
+
ALL_FILTERS[rand(5)]
|
32
33
|
end
|
33
34
|
|
34
35
|
def give_me_a_letter(index = rand(26))
|
@@ -14,8 +14,8 @@ module ShatteredMachine
|
|
14
14
|
@detection_min = options[:detection_min] || '45'
|
15
15
|
@detection_max = options[:detection_max] || '60'
|
16
16
|
@multiple_ranges = (options[:multiple_ranges] || false).to_s
|
17
|
-
@
|
18
|
-
@
|
17
|
+
@detection_min_two = options[:detection_min_two] || '75'
|
18
|
+
@detection_max_two = options[:detection_max_two] || '90'
|
19
19
|
@sorting_by = options[:sorting_by] || :hue
|
20
20
|
end
|
21
21
|
|
@@ -25,7 +25,7 @@ module ShatteredMachine
|
|
25
25
|
def call(input_image, output_image)
|
26
26
|
RustyEngine.sort(input_image, output_image, rust_formatted_direction, @smart_sorting,
|
27
27
|
rust_formatted_detection_type, @detection_min, @detection_max, @multiple_ranges,
|
28
|
-
@
|
28
|
+
@detection_min_two, @detection_max_two, rust_formatted_sorting_by)
|
29
29
|
end
|
30
30
|
|
31
31
|
private
|
@@ -8,7 +8,7 @@ module ShatteredMachine
|
|
8
8
|
FILTERS = %w[none sub up average paeth].freeze
|
9
9
|
SLIM_DIRECTION = %w[up_to_down down_to_up left_to_right right_to_left].freeze
|
10
10
|
BRUSH_DIRECTION = %w[vertical vertical_inverted horizontal horizontal_inverted].freeze
|
11
|
-
ALL_ALGORITHMS = %w[exchange transpose wrong_filter slim brus change_byte defect]
|
11
|
+
ALL_ALGORITHMS = %w[exchange transpose wrong_filter slim brus change_byte defect].freeze
|
12
12
|
|
13
13
|
# @param io [ShatteredMachine::Io] Io containing paths for images to sample
|
14
14
|
# @param options [Hash] options for specifying which
|
@@ -84,7 +84,7 @@ module ShatteredMachine
|
|
84
84
|
def sample_change_byte
|
85
85
|
return unless @algorithms_to_sample.include? 'change_byte'
|
86
86
|
|
87
|
-
update_io(
|
87
|
+
update_io('change_byte')
|
88
88
|
change_byte_options = { algorithm: 'change_byte' }
|
89
89
|
Glitcher.new('ChangeByte', @io, change_byte_options).call
|
90
90
|
end
|
@@ -92,7 +92,7 @@ module ShatteredMachine
|
|
92
92
|
def sample_defect
|
93
93
|
return unless @algorithms_to_sample.include? 'defect'
|
94
94
|
|
95
|
-
update_io(
|
95
|
+
update_io('defect')
|
96
96
|
defect_options = { random: true, iterations: 10 }
|
97
97
|
Glitcher.new('Defect', @io, defect_options).call
|
98
98
|
end
|
@@ -6,7 +6,7 @@ module ShatteredMachine
|
|
6
6
|
# Repeat pixels of a given png image.
|
7
7
|
# The logic for the pixel sorter come from the Rusty Engine.
|
8
8
|
class Slim
|
9
|
-
ALL_COLORS = %i
|
9
|
+
ALL_COLORS = %i[white black grey red green blue cyan yellow magenta].freeze
|
10
10
|
|
11
11
|
# @param options [Hash] options for slim algorithm
|
12
12
|
def initialize(options = {})
|
@@ -4,6 +4,8 @@ require 'pnglitch'
|
|
4
4
|
module ShatteredMachine
|
5
5
|
# Use the transpose algorithm from pnglitch on a given png image.
|
6
6
|
class Transpose
|
7
|
+
ALL_FILTERS = %w[none sub up average paeth].freeze
|
8
|
+
|
7
9
|
# @param options [Hash] options for transpose algorithm
|
8
10
|
def initialize(options = {})
|
9
11
|
@filter = define_filter(options[:filter]) || 'average'
|
@@ -25,8 +27,7 @@ module ShatteredMachine
|
|
25
27
|
def define_filter(filter_from_options)
|
26
28
|
return filter_from_options unless filter_from_options == 'random'
|
27
29
|
|
28
|
-
|
29
|
-
available_filters[rand(5)]
|
30
|
+
ALL_FILTERS[rand(5)]
|
30
31
|
end
|
31
32
|
|
32
33
|
def filtered_glitch(png, custom_filter)
|
@@ -39,12 +40,18 @@ module ShatteredMachine
|
|
39
40
|
end
|
40
41
|
|
41
42
|
def transpose_data(data)
|
42
|
-
|
43
|
-
if @transpose_force == 'half'
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
43
|
+
quarter_image_size = data.size / 4
|
44
|
+
return half_transpose(data, quarter_image_size) if @transpose_force == 'half'
|
45
|
+
|
46
|
+
full_transpose(data, quarter_image_size)
|
47
|
+
end
|
48
|
+
|
49
|
+
def half_transpose(data, qis)
|
50
|
+
data[0, qis] + data[qis * 2, qis] + data[qis * 1, qis] + data[qis * 3..]
|
51
|
+
end
|
52
|
+
|
53
|
+
def full_transpose(data, qis)
|
54
|
+
data[qis * 2, qis] + data[0, qis] + data[qis * 3..] + data[qis * 1, qis]
|
48
55
|
end
|
49
56
|
end
|
50
57
|
end
|
data/shattered_machine.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = 'shattered_machine'
|
3
|
-
s.version = '0.0.
|
3
|
+
s.version = '0.0.2'
|
4
4
|
s.summary = 'Shattered Machine core engine'
|
5
5
|
s.description = 'Shattered Machine is an easy way to glitch PNG images using different algorithms'
|
6
6
|
s.authors = ['Flo Girardo']
|
@@ -9,7 +9,7 @@ Gem::Specification.new do |s|
|
|
9
9
|
s.test_files = ['spec']
|
10
10
|
s.require_paths = ['lib']
|
11
11
|
s.homepage =
|
12
|
-
'https://
|
12
|
+
'https://framagit.org/Radoteur/shattered-machine'
|
13
13
|
s.license = 'MIT'
|
14
14
|
s.add_development_dependency('rspec', '~> 3')
|
15
15
|
s.add_development_dependency('yard', '~> 0.9')
|
data/spec/brush_spec.rb
CHANGED
data/spec/change_byte_spec.rb
CHANGED
data/spec/converter_spec.rb
CHANGED
data/spec/defect_spec.rb
CHANGED
data/spec/exchange_spec.rb
CHANGED
data/spec/glitcher_spec.rb
CHANGED
data/spec/io_spec.rb
CHANGED
data/spec/pixel_sorter_spec.rb
CHANGED
data/spec/slim_spec.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
@@ -1,47 +1,14 @@
|
|
1
|
-
#
|
2
|
-
|
3
|
-
# The generated `.rspec` file contains `--require spec_helper` which will cause
|
4
|
-
# this file to always be loaded, without a need to explicitly require it in any
|
5
|
-
# files.
|
6
|
-
#
|
7
|
-
# Given that it is always loaded, you are encouraged to keep this file as
|
8
|
-
# light-weight as possible. Requiring heavyweight dependencies from this file
|
9
|
-
# will add to the boot time of your test suite on EVERY test run, even for an
|
10
|
-
# individual file that may not need all of that loaded. Instead, consider making
|
11
|
-
# a separate helper file that requires the additional dependencies and performs
|
12
|
-
# the additional setup, and require it from the spec files that actually need
|
13
|
-
# it.
|
14
|
-
#
|
15
|
-
# See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
16
3
|
RSpec.configure do |config|
|
17
|
-
# rspec-expectations config goes here. You can use an alternate
|
18
|
-
# assertion/expectation library such as wrong or the stdlib/minitest
|
19
|
-
# assertions if you prefer.
|
20
4
|
config.expect_with :rspec do |expectations|
|
21
|
-
# This option will default to `true` in RSpec 4. It makes the `description`
|
22
|
-
# and `failure_message` of custom matchers include text for helper methods
|
23
|
-
# defined using `chain`, e.g.:
|
24
|
-
# be_bigger_than(2).and_smaller_than(4).description
|
25
|
-
# # => "be bigger than 2 and smaller than 4"
|
26
|
-
# ...rather than:
|
27
|
-
# # => "be bigger than 2"
|
28
5
|
expectations.include_chain_clauses_in_custom_matcher_descriptions = true
|
29
6
|
end
|
30
7
|
|
31
|
-
# rspec-mocks config goes here. You can use an alternate test double
|
32
|
-
# library (such as bogus or mocha) by changing the `mock_with` option here.
|
33
8
|
config.mock_with :rspec do |mocks|
|
34
|
-
# Prevents you from mocking or stubbing a method that does not exist on
|
35
|
-
# a real object. This is generally recommended, and will default to
|
36
|
-
# `true` in RSpec 4.
|
37
9
|
mocks.verify_partial_doubles = true
|
38
10
|
end
|
39
11
|
|
40
|
-
# This option will default to `:apply_to_host_groups` in RSpec 4 (and will
|
41
|
-
# have no way to turn it off -- the option exists only for backwards
|
42
|
-
# compatibility in RSpec 3). It causes shared context metadata to be
|
43
|
-
# inherited by the metadata hash of host groups and examples, rather than
|
44
|
-
# triggering implicit auto-inclusion in groups with matching metadata.
|
45
12
|
config.shared_context_metadata_behavior = :apply_to_host_groups
|
46
13
|
|
47
14
|
$LOAD_PATH.unshift File.expand_path('..', __dir__)
|
data/spec/transpose_spec.rb
CHANGED
data/spec/wrong_filter_spec.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: shattered_machine
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Flo Girardo
|
@@ -121,7 +121,7 @@ files:
|
|
121
121
|
- spec/spec_helper.rb
|
122
122
|
- spec/transpose_spec.rb
|
123
123
|
- spec/wrong_filter_spec.rb
|
124
|
-
homepage: https://
|
124
|
+
homepage: https://framagit.org/Radoteur/shattered-machine
|
125
125
|
licenses:
|
126
126
|
- MIT
|
127
127
|
metadata: {}
|