honeybii 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5aeb2dec0785ed14c0020b648e35184db6dc0fd0
4
- data.tar.gz: 8be980047f6b3f6467ade5ef60c07053d7923347
3
+ metadata.gz: dd4e80e8eadf36d9a88677631db5f7267b9729db
4
+ data.tar.gz: 8e965783c2a0be9a7e77279c8e6496ae6e0d11b7
5
5
  SHA512:
6
- metadata.gz: 8371437aa6d89deff5ef712986969485031e5da558ed39971def1fead8ea6c26798986a6ca536b57e81dcc22ea5aa239846eea03d235c4cd92a1a606da544534
7
- data.tar.gz: e003e5c01426712b341525f97c0066b7f87a9e2cf9d13d06a120c816a0604dee38bf946963bdd83415e4488752faa46f4ff281b3871a45382832fd61495c9750
6
+ metadata.gz: cc22542706dbb5d825a84430502ba8fc73fb1fff0fab26792bcd84e9cd00aabda122a39d07ba5cdb3024f6e03cb37287f05628bb0819e7f9f924d48532b75d4c
7
+ data.tar.gz: eb1a1003b964f9d24b454567afa0d765c520eb5d7271aaf1afdb41768ee67e0dc49a4bfb790db2762365b411b7e89d6fe404565e266f5c7a82fe4a569fe2e3c8
data/bin/honeybii CHANGED
@@ -6,7 +6,7 @@ require 'honeybii'
6
6
 
7
7
  options = {}
8
8
  option_parser = OptionParser.new do |opts|
9
- opts.banner = 'Usage: honeybii.rb [options]'
9
+ opts.banner = 'Usage: honeybii [options]'
10
10
 
11
11
  opts.on('-i', '--image FILENAME', 'Name of image file to convert (png|gif|jpg)') do |i|
12
12
  options[:image] = i
@@ -32,4 +32,4 @@ end
32
32
  # defaults
33
33
  options[:pixel_size] = 12 unless options[:pixel_size]
34
34
 
35
- puts ShadedImage.new(options[:image], options[:pixel_size]).to_ascii
35
+ puts ShadedAscii.new(options[:image], options[:pixel_size])
@@ -13,7 +13,7 @@ class AsciiImage
13
13
 
14
14
  def to_s
15
15
  unless @ascii.empty?
16
- @ascii.map { |row| row.join }.join("\n")
16
+ @ascii
17
17
  else
18
18
  super
19
19
  end
@@ -0,0 +1,34 @@
1
+ class ShadedAscii < AsciiImage
2
+ def initialize(image_filename, point_size = 12)
3
+ super image_filename, point_size
4
+ @raw = Magick::ImageList.new(image_filename).first
5
+ @shades = ['@', '%', '8', '#', '$', 'V', 'Y', 'x', '*', '=', '+', ':', '~', '-', '.', ' ']
6
+ to_ascii!
7
+ end
8
+
9
+ def grayscale!
10
+ @raw = @raw.quantize(256, Magick::GRAYColorspace)
11
+ end
12
+
13
+ def pixelate!
14
+ columns = @raw.columns / @point_size
15
+ rows = @raw.rows / @point_size
16
+ @raw = @raw.resize_to_fit(columns, rows)
17
+ end
18
+
19
+ def to_ascii!
20
+ grayscale!
21
+ pixelate!
22
+
23
+ @ascii_array = Array.new(@raw.rows).collect do |row|
24
+ Array.new(@raw.columns)
25
+ end
26
+
27
+ @raw.each_pixel do |pixel, col, row|
28
+ index = (((@shades.size - 1) * pixel.intensity).to_f / 65535.to_f).round
29
+ @ascii_array[row][col] = @shades[index]
30
+ end
31
+
32
+ @ascii = @ascii_array.map { |row| row.join }.join("\n")
33
+ end
34
+ end
data/lib/honeybii.rb CHANGED
@@ -1,2 +1,2 @@
1
1
  require 'honeybii/ascii_image'
2
- require 'honeybii/shaded_image'
2
+ require 'honeybii/shaded_ascii'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: honeybii
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jamey DeOrio
@@ -34,7 +34,7 @@ files:
34
34
  - bin/honeybii
35
35
  - lib/honeybii.rb
36
36
  - lib/honeybii/ascii_image.rb
37
- - lib/honeybii/shaded_image.rb
37
+ - lib/honeybii/shaded_ascii.rb
38
38
  homepage: http://honeybii.com
39
39
  licenses:
40
40
  - MIT
@@ -1,49 +0,0 @@
1
- class ShadedImage < AsciiImage
2
- def initialize(image_filename, point_size = 12)
3
- super image_filename, point_size
4
- @raw = Magick::ImageList.new(image_filename).first
5
- @shades = ['@', '%', '8', '#', '$', 'V', 'Y', 'x', '*', '=', '+', ':', '~', '-', '.', ' ']
6
- end
7
-
8
- def grayscale
9
- clone = self.clone
10
- clone.raw = clone.raw.quantize(256, Magick::GRAYColorspace)
11
- return clone
12
- end
13
-
14
- def grayscale!
15
- @raw = @raw.quantize(256, Magick::GRAYColorspace)
16
- end
17
-
18
- def pixelate
19
- columns = @raw.columns / @point_size
20
- rows = @raw.rows / @point_size
21
- clone = self.clone
22
- clone.raw = clone.raw.resize_to_fit(columns, rows)
23
- return clone
24
- end
25
-
26
- def pixelate!
27
- columns = @raw.columns / @point_size
28
- rows = @raw.rows / @point_size
29
- @raw = @raw.resize_to_fit(columns, rows)
30
- end
31
-
32
- def to_ascii
33
- clone = self.clone
34
- clone.grayscale!
35
- clone.pixelate!
36
-
37
- clone.ascii = Array.new(clone.raw.rows).collect do |row|
38
- Array.new(clone.raw.columns)
39
- end
40
-
41
- clone.raw.each_pixel do |pixel, col, row|
42
- index = (((clone.shades.size - 1) * pixel.intensity).to_f / 65535.to_f).round
43
- char = clone.shades[index]
44
- clone.ascii[row][col] = char
45
- end
46
-
47
- return clone
48
- end
49
- end