rainbow_gradient 0.0.3 → 0.0.4

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: e7699028d92d659d49e21553288816158498a387
4
- data.tar.gz: be6e6b282bc5d6466e0f39364aff986052d22c29
3
+ metadata.gz: b6afc3a25da96213fd5439117416ca690e846ea6
4
+ data.tar.gz: a5008ab52fabc12e3c2f0338e7153e473dd810ab
5
5
  SHA512:
6
- metadata.gz: ae2ddb08c5289bc74afadc23536206d3ccb70bb046487ea40466951b1908a3cd15d372bad6f2ad343f5b08c142a90ceaf5bd862d3ca8548c926d2f7fbaf09b5c
7
- data.tar.gz: 64ccff0fb50e6ce08c15e111ea2f24e5e73a83304f7a51c194870672feb1eecb267829b31894af51a384448f4c5a5bb24e7f89e4070e62a8eaf7abd59f0cb07e
6
+ metadata.gz: 2404fe524777e063bdda3efceebd73998581c9d3afcaf409188ae5763ae066f9ee8695bea1be552d425525fda5314a0450cd5d54a526d4124a5049f507b4d48e
7
+ data.tar.gz: b4f34e44069723f2385bee090b16966fadf137e5fd02d6ca81794e91366f51f169d17092adc91597e5101f2882d69762216cbe8813a7f3b6ca0b0ee709db4ab4
@@ -2,10 +2,10 @@ require_relative '../lib/rainbow'
2
2
  require 'pp'
3
3
 
4
4
  first_color = Rainbow::Color.new(ChunkyPNG::Color(255, 221, 23), 0)
5
- second_color = Rainbow::Color.new(ChunkyPNG::Color(255, 221, 23), 80)
5
+ second_color = Rainbow::Color.new(ChunkyPNG::Color(255, 221, 23), 62)
6
6
  color_range1 = Rainbow::ColorRange.new(first_color, second_color, 50)
7
7
 
8
- third_color = Rainbow::Color.new(ChunkyPNG::Color(255, 221, 23), 81)
8
+ third_color = Rainbow::Color.new(ChunkyPNG::Color(255, 221, 23), 63)
9
9
  color_range2 = Rainbow::ColorRange.new(second_color, third_color, 50)
10
10
 
11
11
  fouth_color = Rainbow::Color.new(ChunkyPNG::Color(255, 221, 23), 100)
@@ -28,7 +28,7 @@ args = {
28
28
  opacity_ranges: [opacity_range]
29
29
  }
30
30
  }
31
- gradient = Rainbow::Gradient.new(195, 27, args)
31
+ gradient = Rainbow::Gradient.new(196, 28, args)
32
32
  gradient.save_as_png(filename)
33
33
 
34
34
  `open #{filename}`
Binary file
@@ -7,14 +7,15 @@ module Rainbow
7
7
  attr_reader :tmp_current_x, :tmp_diff_r, :tmp_diff_g, :tmp_diff_b,
8
8
  :tmp_from_color, :tmp_to_color, :tmp_distance_in_pixel
9
9
 
10
- attr_accessor :opacity_ranges
10
+ attr_accessor :opacity_ranges, :previous
11
11
 
12
12
  def initialize(from_color, to_color, mid_point)
13
13
  @from_color = from_color
14
14
  @to_color = to_color
15
15
  @mid_point = mid_point
16
16
 
17
- @current_x = nil
17
+ @current_x = nil
18
+ @previous = nil
18
19
  end
19
20
 
20
21
  def gradient=(gradient)
@@ -59,15 +60,15 @@ module Rainbow
59
60
  from_color.g + (to_color.g - from_color.g) / 2,
60
61
  from_color.b + (to_color.b - from_color.b) / 2)
61
62
 
62
- @width = (gradient.width * (to_color.location - from_color.location) / 100.0).round
63
- @first_width = (@width * mid_point / 100.0).round
63
+ @width = (gradient.width * (to_color.location - from_color.location) / 100.0).ceil
64
+ @first_width = (@width * mid_point / 100.0).ceil
64
65
  @second_width = @width - @first_width
65
66
 
66
- @from_location_in_pixel = (from_color.location * gradient.width / 100.0).round
67
+ @from_location_in_pixel = (from_color.location * gradient.width / 100.0).ceil
67
68
  @mid_location_in_pixel = @from_location_in_pixel + @first_width
68
69
  @to_location_in_pixel = @from_location_in_pixel + @width
69
70
 
70
- @leftover_width = ((100 - to_color.location) * gradient.width / 100.0).round
71
+ @leftover_width = ((100 - to_color.location) * gradient.width / 100.0).ceil
71
72
  end
72
73
 
73
74
  def in_scale_range?
@@ -139,8 +139,11 @@ module Rainbow
139
139
  end
140
140
 
141
141
  def paint_canvas!(canvas)
142
- x_coverred = 0
142
+ x_coverred = 0
143
+ previous_color_range = nil
144
+
143
145
  color_ranges.each_with_index do |color_range, index|
146
+ color_range.previous = previous_color_range
144
147
  color_range.gradient = self
145
148
  color_range.opacity_ranges = opacity_ranges
146
149
 
@@ -151,6 +154,8 @@ module Rainbow
151
154
 
152
155
  # When the last color location is not 100
153
156
  x_coverred += paint_suffix(canvas, color_range, x_coverred) if index + 1 == color_ranges.size
157
+
158
+ previous_color_range = color_range if index != 0
154
159
  end
155
160
  end
156
161
 
@@ -164,9 +169,11 @@ module Rainbow
164
169
  end
165
170
 
166
171
  def paint_body(canvas, color_range, x_coverred)
167
-
168
172
  color_range.width.times do |x|
169
173
  x += x_coverred
174
+
175
+ break if x == width
176
+
170
177
  color_range.current_x = x
171
178
  height.times { |y| canvas[x, y] = color_range.current_color }
172
179
  end
@@ -1,3 +1,3 @@
1
1
  module Rainbow
2
- VERSION = '0.0.3'
2
+ VERSION = '0.0.4'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rainbow_gradient
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sophy Eung