asciiart 0.0.5 → 0.0.6
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.
- data/README.md +14 -5
- data/bin/asciiart +4 -0
- data/lib/asciiart.rb +29 -6
- data/lib/asciiart/version.rb +1 -1
- metadata +2 -2
data/README.md
CHANGED
@@ -151,16 +151,25 @@ Remote Images
|
|
151
151
|
|
152
152
|
$ asciiart http://www.google.com/images/srpr/logo3w.png
|
153
153
|
|
154
|
+
Output it as HTML
|
155
|
+
|
156
|
+
$ be asciiart -c -f html ~/Ross/cppsource/secret/noopen/sillhere?/turnback/bea-arthur-birthdaysuit.jpg > ~/Desktop/ascii-as-html.html
|
157
|
+
|
158
|
+
_or smaller_
|
159
|
+
|
160
|
+
$ be asciiart -w 50 -c -f html ~/Stephen/boringSQLsnippets/nothingtoseehere/turnback/bea-arthur-with-ross's-head.jpg > ~/Desktop/saturdaynight.html
|
161
|
+
|
154
162
|
Get Help
|
155
163
|
|
156
164
|
$ asciiart -h
|
157
165
|
|
158
166
|
Usage: asciiart [options] <path_or_url>
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
167
|
+
-w, --width WIDTH Width of the finished Ascii Art (Default: 100)
|
168
|
+
-f, --format [text/html] output format (Default: text)
|
169
|
+
-c, --color Switch to use colored terminal output (Default: false)
|
170
|
+
-i, --invert-chars Invert the character map. *Depending on background and image color - this can make the result clearer.*
|
171
|
+
-v, --version Show AsciiArt version
|
172
|
+
-h, --help Show this message
|
164
173
|
|
165
174
|
## Contributing
|
166
175
|
|
data/bin/asciiart
CHANGED
@@ -13,6 +13,10 @@ opt_parser = OptionParser.new do |opts|
|
|
13
13
|
options[:width] = width.to_i
|
14
14
|
end
|
15
15
|
|
16
|
+
opts.on('-f', '--format [text/html]', 'output format (Default: text)') do |format|
|
17
|
+
options[:format] = format
|
18
|
+
end
|
19
|
+
|
16
20
|
opts.on('-c', '--color', 'Switch to use colored terminal output (Default: false)') do
|
17
21
|
options[:color] = true
|
18
22
|
end
|
data/lib/asciiart.rb
CHANGED
@@ -15,7 +15,7 @@ class AsciiArt
|
|
15
15
|
end
|
16
16
|
|
17
17
|
def to_ascii_art(options = {})
|
18
|
-
options = { width: 100, color: false }.merge(options)
|
18
|
+
options = { width: 100, color: false, format: "text" }.merge(options)
|
19
19
|
|
20
20
|
img = Magick::Image.from_blob(@data).first
|
21
21
|
|
@@ -27,8 +27,11 @@ class AsciiArt
|
|
27
27
|
color_image = img.dup if options[:color]
|
28
28
|
img = img.quantize(image_chars.length, Magick::GRAYColorspace).normalize
|
29
29
|
quantum_calc = Magick::QuantumRange / Magick::QuantumPixel.to_i
|
30
|
+
image_chars.map! {|char| char == " " ? " " : char } if options[:format] == "html"
|
31
|
+
|
32
|
+
border = "+#{'-' * width}+#{line_break(options[:format])}"
|
33
|
+
border = html_char(border) if options[:format] == "html"
|
30
34
|
|
31
|
-
border = "+#{'-' * width}+\n"
|
32
35
|
output = border.dup
|
33
36
|
|
34
37
|
img.view(0, 0, width, height) do |view|
|
@@ -38,14 +41,27 @@ class AsciiArt
|
|
38
41
|
|
39
42
|
character = image_chars[view[i][j].red/quantum_calc]
|
40
43
|
|
41
|
-
if options[:
|
42
|
-
|
43
|
-
|
44
|
+
if options[:format] == "html"
|
45
|
+
if (options[:color])
|
46
|
+
|
47
|
+
pix = color_image.pixel_color(j,i)
|
48
|
+
color_string = "color: #{pix.to_color( Magick::AllCompliance,false,8, true)};"
|
49
|
+
else
|
50
|
+
color_string = ""
|
51
|
+
end
|
52
|
+
character = html_char(character, color_string)
|
53
|
+
else
|
54
|
+
# text-format
|
55
|
+
if options[:color]
|
56
|
+
pix = color_image.pixel_color(j,i)
|
57
|
+
character = character.color(unified_rgb_value(pix.red), unified_rgb_value(pix.green), unified_rgb_value(pix.blue))
|
58
|
+
end
|
44
59
|
end
|
45
60
|
|
46
61
|
output << character
|
47
62
|
end
|
48
|
-
|
63
|
+
|
64
|
+
output << "|#{line_break(options[:format])}"
|
49
65
|
end
|
50
66
|
end
|
51
67
|
|
@@ -62,9 +78,16 @@ class AsciiArt
|
|
62
78
|
|
63
79
|
private
|
64
80
|
|
81
|
+
def line_break(format)
|
82
|
+
(format == "text") ? "\n" : "<br/>"
|
83
|
+
end
|
84
|
+
|
65
85
|
def unified_rgb_value(number)
|
66
86
|
(Magick::QuantumDepth == 16) ? (number / 256) : number
|
67
87
|
end
|
68
88
|
|
89
|
+
def html_char(char, additional_style = "")
|
90
|
+
"<span style=\"font-family: 'Lucida Console', Monaco, monospace; #{additional_style}\">#{char}</span>"
|
91
|
+
end
|
69
92
|
end
|
70
93
|
|
data/lib/asciiart/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: asciiart
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2013-
|
13
|
+
date: 2013-11-16 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rmagick
|