ansify 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (5) hide show
  1. data/README.md +27 -0
  2. data/Rakefile +10 -0
  3. data/ansify.gemspec +19 -0
  4. data/bin/ansify +45 -0
  5. metadata +49 -0
data/README.md ADDED
@@ -0,0 +1,27 @@
1
+ ansify
2
+ ======
3
+
4
+ A command-line tool to convert PNG images to ANSI escape codes.
5
+
6
+ Installation
7
+ ------------
8
+
9
+ sudo gem install ansify
10
+
11
+ Usage
12
+ -----
13
+
14
+ > ansify --help
15
+ ansify v0.0.1
16
+ Options:
17
+ --file, -f <s>: PNG file to convert
18
+ --resize, -r <i>: Resize image in % [1, 99]
19
+ --nearest, -n: Resize using nearest neighbor sampling instead of bilinear sampling
20
+ --version, -v: Print version and exit
21
+ --help, -h: Show this message
22
+
23
+ Todo
24
+ ----
25
+
26
+ * Add file output
27
+ * Handle resampling to higher resolution
data/Rakefile ADDED
@@ -0,0 +1,10 @@
1
+ require 'rake'
2
+
3
+ # Build ansify gem
4
+ desc "build ansify gem"
5
+ task :build do
6
+ sh "gem build ansify.gemspec"
7
+ end
8
+
9
+ task :default => :build
10
+
data/ansify.gemspec ADDED
@@ -0,0 +1,19 @@
1
+ Gem::Specification.new do |s|
2
+ s.name = 'ansify'
3
+ s.version = '0.0.1'
4
+ s.date = '2012-02-08'
5
+ s.summary = "Covert PNG images to ANSI escape codes"
6
+ s.description = "A command-line tool to convert PNG images to ANSI escape codes."
7
+ s.authors = ["Enric Ruiz"]
8
+ s.email = 'enric.ruizmartinez@gmail.com'
9
+ s.homepage = 'https://github.com/enricruiz/ansify'
10
+
11
+ s.executables = ["ansify"]
12
+
13
+ s.files = %w[
14
+ README.md
15
+ Rakefile
16
+ bin/ansify
17
+ ansify.gemspec
18
+ ]
19
+ end
data/bin/ansify ADDED
@@ -0,0 +1,45 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'chunky_png'
4
+ require 'rainbow'
5
+ require 'trollop'
6
+
7
+ VERSION = "0.0.1"
8
+
9
+ options = Trollop::options do
10
+ version "ansify v#{VERSION}"
11
+
12
+ opt :file, "PNG file to convert", :type => String
13
+ opt :resize, "Resize image in % [1, 99]", :type => :int
14
+ opt :nearest, "Resize using nearest neighbor sampling instead of bilinear sampling"
15
+ end
16
+
17
+ Trollop::die :file, "must exist" unless File.exist?(options[:file]) if options[:file]
18
+ Trollop::die :resize, "> 0 and < 100" unless (1..99).include? options[:resize] if options[:resize]
19
+
20
+ image = ChunkyPNG::Image.from_file(options[:file])
21
+
22
+ if options[:resize]
23
+ w = image.dimension.width - (image.dimension.width * options[:resize] / 100)
24
+ h = image.dimension.height - (image.dimension.height * options[:resize] / 100)
25
+
26
+ if options[:nearest]
27
+ image = image.resample_nearest_neighbor(w, h)
28
+ elsif
29
+ image = image.resample_bilinear(w, h)
30
+ end
31
+ end
32
+
33
+ (0..image.dimension.height - 1).each do |y|
34
+ (0..image.dimension.width - 1).each do |x|
35
+ pixel = image[x, y]
36
+ r = ChunkyPNG::Color.r(pixel)
37
+ g = ChunkyPNG::Color.g(pixel)
38
+ b = ChunkyPNG::Color.b(pixel)
39
+ a = ChunkyPNG::Color.a(pixel)
40
+
41
+ print a > 128 ? " ".background(r, g, b) : " "
42
+ end
43
+ print "\n"
44
+ end
45
+
metadata ADDED
@@ -0,0 +1,49 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ansify
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Enric Ruiz
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-02-08 00:00:00.000000000Z
13
+ dependencies: []
14
+ description: A command-line tool to convert PNG images to ANSI escape codes.
15
+ email: enric.ruizmartinez@gmail.com
16
+ executables:
17
+ - ansify
18
+ extensions: []
19
+ extra_rdoc_files: []
20
+ files:
21
+ - README.md
22
+ - Rakefile
23
+ - bin/ansify
24
+ - ansify.gemspec
25
+ homepage: https://github.com/enricruiz/ansify
26
+ licenses: []
27
+ post_install_message:
28
+ rdoc_options: []
29
+ require_paths:
30
+ - lib
31
+ required_ruby_version: !ruby/object:Gem::Requirement
32
+ none: false
33
+ requirements:
34
+ - - ! '>='
35
+ - !ruby/object:Gem::Version
36
+ version: '0'
37
+ required_rubygems_version: !ruby/object:Gem::Requirement
38
+ none: false
39
+ requirements:
40
+ - - ! '>='
41
+ - !ruby/object:Gem::Version
42
+ version: '0'
43
+ requirements: []
44
+ rubyforge_project:
45
+ rubygems_version: 1.8.15
46
+ signing_key:
47
+ specification_version: 3
48
+ summary: Covert PNG images to ANSI escape codes
49
+ test_files: []