stitchify 0.2.5 → 0.2.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.
- checksums.yaml +4 -4
- data/lib/stitchify.rb +31 -6
- data/lib/stitchify/draw_rasem.rb +3 -2
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 163c7b301bb8c593d7776451c1b6301d779431b9
|
4
|
+
data.tar.gz: 10c75dc399cad95003d8410e17b600dcb3d3a3bb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1265812071e71ab6a4c4a91fb0b7276985114b62d79dd7e20e3e4c0a0760d0f5d6a945dcf8ba086e9842fc941e11ae12811bc8ce0c31ae2aee42216aa8092bf6
|
7
|
+
data.tar.gz: 9d8431825fa940807b0b48bff170701cec914885369a858edfdc4a85546260a422bc644d06230cba02ee3001548093c073cd74dcdc0fa62a746d8f315482eaa8
|
data/lib/stitchify.rb
CHANGED
@@ -27,6 +27,7 @@ class Stitchifier
|
|
27
27
|
]
|
28
28
|
|
29
29
|
attr_accessor :base_pixel_arr,
|
30
|
+
:color_set,
|
30
31
|
:dominant_colors,
|
31
32
|
:img,
|
32
33
|
:img_path,
|
@@ -48,23 +49,27 @@ class Stitchifier
|
|
48
49
|
self.dominant_colors = []
|
49
50
|
self.stitch_map = []
|
50
51
|
self.px = px
|
52
|
+
self.color_set = nil
|
51
53
|
|
52
54
|
unless img_path.empty?
|
53
55
|
make_img
|
54
|
-
|
56
|
+
build_color_set
|
55
57
|
build_pixel_array
|
56
58
|
|
57
|
-
|
58
|
-
d.stitch
|
59
|
+
stitch
|
59
60
|
end
|
60
61
|
end
|
61
62
|
|
63
|
+
def stitch
|
64
|
+
d = DrawRasem.new(self.stitch_map, self.width, self.px, self.color_set)
|
65
|
+
d.stitch
|
66
|
+
end
|
67
|
+
|
62
68
|
def make_img
|
63
69
|
self.img = ImageList.new(img_path).resize_to_fit(width)
|
64
70
|
end
|
65
71
|
|
66
72
|
def set_dominant_colors
|
67
|
-
color_pos = 0
|
68
73
|
colors = black_and_white
|
69
74
|
set_num_colors
|
70
75
|
if self.num_of_colors > 3 && !img_path.empty?
|
@@ -74,13 +79,32 @@ class Stitchifier
|
|
74
79
|
off_colors = build_off_color_arr(main_color)
|
75
80
|
colors = miro_px + off_colors + colors
|
76
81
|
end
|
82
|
+
set_px_shapes(colors)
|
83
|
+
self.dominant_colors = colors.uniq
|
84
|
+
end
|
85
|
+
|
86
|
+
def set_px_shapes(colors)
|
87
|
+
color_pos = 0
|
77
88
|
colors.each do |px|
|
78
89
|
if px.shape.nil?
|
79
90
|
px.shape = FILLABLE_SHAPES[color_pos]
|
80
91
|
color_pos = (color_pos + 1) % FILLABLE_SHAPES.length
|
81
92
|
end
|
82
93
|
end
|
83
|
-
|
94
|
+
end
|
95
|
+
|
96
|
+
def build_color_set(req_colors = [])
|
97
|
+
if req_colors.length == 0
|
98
|
+
set_dominant_colors
|
99
|
+
self.color_set = self.dominant_colors
|
100
|
+
else
|
101
|
+
set_dominant_colors
|
102
|
+
colors = self.dominant_colors
|
103
|
+
colors.slice!(0, req_colors.length)
|
104
|
+
color_map = colors + req_colors.map{ |x| Pixelfy.from_hex(x) }
|
105
|
+
self.color_set = set_px_shapes(color_map)
|
106
|
+
end
|
107
|
+
build_pixel_array
|
84
108
|
end
|
85
109
|
|
86
110
|
def black_and_white
|
@@ -105,7 +129,8 @@ class Stitchifier
|
|
105
129
|
end
|
106
130
|
|
107
131
|
def colorize_pixels
|
108
|
-
self.
|
132
|
+
self.stitch_map = []
|
133
|
+
self.base_pixel_arr.each {|px| self.stitch_map << px.colorize(self.color_set) }
|
109
134
|
end
|
110
135
|
|
111
136
|
def set_num_colors
|
data/lib/stitchify/draw_rasem.rb
CHANGED
@@ -1,11 +1,12 @@
|
|
1
1
|
class DrawRasem
|
2
2
|
|
3
|
-
attr_accessor :px_arr, :width, :px, :pos_x, :pos_y, :height
|
3
|
+
attr_accessor :px_arr, :width, :px, :pos_x, :pos_y, :height, :color_set
|
4
4
|
|
5
|
-
def initialize(px_arr, width=50, px=10)
|
5
|
+
def initialize(px_arr, width=50, px=10, color_set=[])
|
6
6
|
self.px_arr = px_arr
|
7
7
|
self.width = width
|
8
8
|
self.px = px
|
9
|
+
self.color_set = color_set
|
9
10
|
clear_vars
|
10
11
|
end
|
11
12
|
|