shattered_machine 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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: {}
|