imgen 0.1.0 → 0.1.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f07c448ea4a58966a5f72b95db5b578078a2cbc9
4
- data.tar.gz: 9e08b079e25b55b303e3dcccf2b488537e32787a
3
+ metadata.gz: ff5cd4c4bb09e88abc71981897fe8ac541f1f29e
4
+ data.tar.gz: 0a4b3745b1c32f6154b4e790092ae70d3fa691c2
5
5
  SHA512:
6
- metadata.gz: b7cfc5b3dd668ae3ecb431e40c9215a1c225e2c19c6baf45bbffe45c481cf317f5dffcc811f99b4b73371329610d5453de9bbadb34793cf5fe04039f397bec66
7
- data.tar.gz: 692ef3fde9a6b0607a2cba8327d4381bca4e778b677617bd63a9b1be3a6e8b97591ab7196011f207f67150759ba0a1a9b68249f6dec8fc2441f00e095e04fb14
6
+ metadata.gz: 31fc05912932708ffa9524bc2f50af3605a9f80bec59c97ed0f04b4e3eb74a130200bc4913e9ae517b819bae9e2ef4d98310969d634c3dd5cff129b82e32fc97
7
+ data.tar.gz: 415b78a79be7df09f06f2fbcf6acb9f00c8dd9adea0978789c0acb35f1e8c0e520c75a91497f88ea70c74e303c490ee9e1407d334d5de17cdec9a588c47da6ce
data/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # Imgen
2
2
 
3
+ [![Gem Version](https://badge.fury.io/rb/imgen.svg)](https://badge.fury.io/rb/imgen)
4
+
3
5
  Imgen is a quick and simple way to create simple, placeholder-type images. One line can make 1, 5, or 100 PNGs, perfect for testing out any project that needs imagery.
4
6
 
5
7
  ## Installation
@@ -22,13 +24,9 @@ Or install it yourself as:
22
24
 
23
25
  By default, simply running `imgen` will create a single 100x100 PNG, using one of three randomly-selected dominant colors (R, G, or B).
24
26
 
25
- It will look something like the following:
26
-
27
- ![Imgen default red](https://github.com/michaelchadwick/imgen/blob/master/imgen-example-red.png)
28
-
29
- ![Imgen default green](https://github.com/michaelchadwick/imgen/blob/master/imgen-example-green.png)
27
+ The resulting image will look something like one of the following:
30
28
 
31
- ![Imgen default blue](https://github.com/michaelchadwick/imgen/blob/master/imgen-example-blue.png)
29
+ ![Imgen default red](https://github.com/michaelchadwick/imgen/blob/master/image-example-red.png) ![Imgen default green](https://github.com/michaelchadwick/imgen/blob/master/image-example-green.png) ![Imgen default blue](https://github.com/michaelchadwick/imgen/blob/master/image-example-blue.png)
32
30
 
33
31
  You can change width, height, image format, and the quantity of images generated with switches.
34
32
 
data/bin/imgen CHANGED
@@ -14,12 +14,14 @@ def parse_options
14
14
  :directory => 'img',
15
15
  :format => 'png',
16
16
  :quantity => 1,
17
+ :method => :noise,
18
+ :debug => false,
17
19
  :display => false
18
20
  }
19
21
 
20
22
  optparse = OptionParser.new do |opts|
21
23
  opts.banner = "Generate images on the command line\n"
22
- opts.banner += "usage: imgen [-w, --width WIDTH] [-h, --height HEIGHT] [-d, --directory IMG_DIRECTORY] [-f, --format IMG_FORMAT] [-q, --quantity QUANTITY] [--display]\n\n"
24
+ opts.banner += "usage: imgen [-w, --width WIDTH] [-h, --height HEIGHT] [-d, --directory IMG_DIRECTORY] [-f, --format IMG_FORMAT] [-q, --quantity QUANTITY] [-m, --method GEN_METHOD] [--debug] [--display]\n\n"
23
25
 
24
26
  opts.on('-w', '--width WIDTH_OF_IMAGE', Integer, 'Width of image in pixels (Default: 100)') do |w|
25
27
  options[:width] = w.to_i
@@ -41,6 +43,14 @@ def parse_options
41
43
  options[:quantity] = q.to_i
42
44
  end
43
45
 
46
+ opts.on('-m', '--method METHOD', [:noise, :lines], 'Image generation method (Default: noise)') do |m|
47
+ options[:method] = m
48
+ end
49
+
50
+ opts.on('--debug', 'Display pixel debug information') do |debug|
51
+ options[:debug] = true
52
+ end
53
+
44
54
  opts.on('--display', 'Display image using X11 after creation') do |bg|
45
55
  options[:display] = true
46
56
  end
@@ -18,14 +18,45 @@ module Imgen
18
18
 
19
19
  # image processing
20
20
  def make_image(img, options)
21
+ last_pixel = {}
22
+ new_pixel = {}
23
+
21
24
  (0..img.columns).each do |x|
22
25
  (0..img.rows).each do |y|
23
- red = (options[:color_dominant] == :r) ? rand(0..100) : 0
24
- green = (options[:color_dominant] == :g) ? rand(0..100) : 0
25
- blue = (options[:color_dominant] == :b) ? rand(0..100) : 0
26
- alpha = rand(0..100)
27
- img.pixel_color(x,y,"rgba(#{red}%, #{green}%, #{blue}%, #{alpha}%)")
26
+ case options[:method]
27
+ when :lines
28
+ if !last_pixel.empty?
29
+ if last_pixel[:color_dominant] == 100
30
+ new_pixel[options[:color_dominant]] = 0
31
+ elsif last_pixel[:color_dominant] == 0
32
+ new_pixel[options[:color_dominant]] = rand(1..10) + last_pixel[options[:color_dominant]]
33
+ else
34
+ new_pixel[options[:color_dominant]] = rand(-10..10) + last_pixel[options[:color_dominant]]
35
+ end
36
+ else
37
+ new_pixel[:r] = (options[:color_dominant] == :r) ? rand(0..100) : 0
38
+ new_pixel[:g] = (options[:color_dominant] == :g) ? rand(0..100) : 0
39
+ new_pixel[:b] = (options[:color_dominant] == :b) ? rand(0..100) : 0
40
+ new_pixel[:a] = rand(0..100)
41
+ end
42
+ when :noise
43
+ new_pixel[:r] = (options[:color_dominant] == :r) ? rand(0..100) : 0
44
+ new_pixel[:g] = (options[:color_dominant] == :g) ? rand(0..100) : 0
45
+ new_pixel[:b] = (options[:color_dominant] == :b) ? rand(0..100) : 0
46
+ new_pixel[:a] = rand(0..100)
47
+ end
48
+
49
+ img.pixel_color(x,y,"rgba(#{new_pixel[:r]}%, #{new_pixel[:g]}%, #{new_pixel[:b]}%, #{new_pixel[:a]}%)")
50
+ last_pixel = {r: new_pixel[:r], g: new_pixel[:g], b: new_pixel[:b], a: new_pixel[:a]}
51
+
52
+ if options[:debug]
53
+ print "R#{new_pixel[:r].to_s.ljust(3)}"
54
+ print "G#{new_pixel[:g].to_s.ljust(3)}"
55
+ print "B#{new_pixel[:b].to_s.ljust(3)}"
56
+ print "A#{new_pixel[:a].to_s.ljust(3)}| "
57
+ end
28
58
  end
59
+ print "\n" if options[:debug]
29
60
  end
30
61
 
31
62
  img_dir = options[:directory]
@@ -36,7 +67,7 @@ module Imgen
36
67
  end
37
68
 
38
69
  counter = 0
39
- img_uniq = ""
70
+ img_uniq = "_0"
40
71
  filename_path = "#{img_dir}/#{options[:width]}x#{options[:height]}#{img_uniq}.#{img_ext}"
41
72
 
42
73
  until !File.exists?(filename_path)
@@ -49,8 +80,12 @@ module Imgen
49
80
  img.write(filename_path)
50
81
 
51
82
  if options[:display]
52
- puts "displaying #{filename_path} in X11..."
53
- img.display
83
+ begin
84
+ puts "displaying #{filename_path} in X11..."
85
+ img.display
86
+ rescue
87
+ puts "could not display #{filename_path}"
88
+ end
54
89
  end
55
90
  end
56
91
 
@@ -1,3 +1,3 @@
1
1
  module Imgen
2
- VERSION = '0.1.0'
2
+ VERSION = '0.1.1'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: imgen
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Chadwick
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-09-23 00:00:00.000000000 Z
11
+ date: 2016-09-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rmagick
@@ -124,7 +124,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
124
124
  version: '0'
125
125
  requirements: []
126
126
  rubyforge_project:
127
- rubygems_version: 2.6.6
127
+ rubygems_version: 2.6.7
128
128
  signing_key:
129
129
  specification_version: 4
130
130
  summary: Create images from scratch