pixelflut 0.0.13 → 0.2.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 +4 -4
- data/.gitignore +0 -1
- data/README.md +15 -77
- data/bin/pxf +58 -22
- data/bin/pxf-info +26 -49
- data/gems.rb +1 -1
- data/lib/pixelflut.rb +55 -6
- data/lib/pixelflut/image.rb +32 -0
- data/lib/pixelflut/sender.rb +29 -0
- data/lib/pixelflut/version.rb +3 -1
- data/pixelflut.gemspec +18 -25
- data/rakefile.rb +5 -3
- metadata +38 -45
- data/TODO.md +0 -11
- data/bin/pxf-convert +0 -55
- data/bin/pxf-generate +0 -35
- data/bin/pxf-help +0 -23
- data/bin/pxf-send +0 -44
- data/bin/pxf-server +0 -64
- data/bin/pxf-version +0 -17
- data/lib/pixelflut/app.rb +0 -81
- data/lib/pixelflut/canvas.rb +0 -4
- data/lib/pixelflut/canvas/base.rb +0 -99
- data/lib/pixelflut/canvas/buffered.rb +0 -27
- data/lib/pixelflut/canvas/streamed.rb +0 -20
- data/lib/pixelflut/client.rb +0 -35
- data/lib/pixelflut/client/socket.rb +0 -93
- data/lib/pixelflut/converter.rb +0 -53
- data/lib/pixelflut/server.rb +0 -58
- data/lib/pixelflut/server/configuration.rb +0 -26
- data/lib/pixelflut/server/connection.rb +0 -98
- data/lib/pixelflut/text_image.rb +0 -89
data/lib/pixelflut/text_image.rb
DELETED
@@ -1,89 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Pixelflut
|
4
|
-
class TextImage
|
5
|
-
attr_reader :columns, :rows, :to_blob, :changes
|
6
|
-
|
7
|
-
def initialize(width, height)
|
8
|
-
@columns, @rows = width, height
|
9
|
-
@row_inc = width * 4
|
10
|
-
clear
|
11
|
-
end
|
12
|
-
|
13
|
-
alias width columns
|
14
|
-
alias height rows
|
15
|
-
|
16
|
-
def clear
|
17
|
-
@to_blob = Black * (@columns * @rows)
|
18
|
-
@changes = 1
|
19
|
-
end
|
20
|
-
|
21
|
-
def changed
|
22
|
-
@changes = 0
|
23
|
-
self
|
24
|
-
end
|
25
|
-
|
26
|
-
# def [](x, y)
|
27
|
-
# @@to_blob[(4 * (x + @columns * y)) % @data.size, 4].bytes.map! do |b|
|
28
|
-
# b = b.to_s(16)
|
29
|
-
# b = '0' + b if b.size == 1
|
30
|
-
# b
|
31
|
-
# end.join
|
32
|
-
# end
|
33
|
-
|
34
|
-
def []=(x, y, rrggbbaa)
|
35
|
-
@to_blob[(4 * (x + @columns * y)) % @to_blob.size, 4] = as_color(rrggbbaa)
|
36
|
-
@changes += 1
|
37
|
-
end
|
38
|
-
|
39
|
-
def draw_rect(x1, y1, x2, y2, rrggbbaa)
|
40
|
-
x1, x2 = x2, x1 if x1 > x2
|
41
|
-
y1, y2 = y2, y1 if y1 > y2
|
42
|
-
color = as_color(rrggbbaa)
|
43
|
-
pos = (4 * (x1 + @columns * y1)) % @to_blob.size
|
44
|
-
pattern = color * (x2 - x1 + 1)
|
45
|
-
(y2 - y1 + 1).times do
|
46
|
-
@to_blob[pos, pattern.size] = pattern
|
47
|
-
pos += @row_inc
|
48
|
-
end
|
49
|
-
@changes += 1
|
50
|
-
end
|
51
|
-
|
52
|
-
private
|
53
|
-
|
54
|
-
ZZ = 0.chr.freeze
|
55
|
-
FF = 0xff.chr.freeze
|
56
|
-
Black = (ZZ + ZZ + ZZ + FF).freeze
|
57
|
-
|
58
|
-
def as_color(rrggbbaa)
|
59
|
-
case rrggbbaa.size
|
60
|
-
when 3 # RGB
|
61
|
-
(rrggbbaa[0] * 2).to_i(16).chr +
|
62
|
-
(rrggbbaa[1] * 2).to_i(16).chr +
|
63
|
-
(rrggbbaa[2] * 2).to_i(16).chr +
|
64
|
-
FF
|
65
|
-
when 4 # RGBA
|
66
|
-
(rrggbbaa[0] * 2).to_i(16).chr +
|
67
|
-
(rrggbbaa[1] * 2).to_i(16).chr +
|
68
|
-
(rrggbbaa[2] * 2).to_i(16).chr +
|
69
|
-
(rrggbbaa[3] * 2).to_i(16).chr
|
70
|
-
when 6 # RRGGBB
|
71
|
-
(rrggbbaa[0, 2]).to_i(16).chr +
|
72
|
-
(rrggbbaa[2, 2]).to_i(16).chr +
|
73
|
-
(rrggbbaa[4, 2]).to_i(16).chr +
|
74
|
-
FF
|
75
|
-
when 8 # RRGGBBAA
|
76
|
-
(rrggbbaa[0, 2]).to_i(16).chr +
|
77
|
-
(rrggbbaa[2, 2]).to_i(16).chr +
|
78
|
-
(rrggbbaa[4, 2]).to_i(16).chr +
|
79
|
-
(rrggbbaa[6, 2]).to_i(16).chr
|
80
|
-
else
|
81
|
-
Black
|
82
|
-
end
|
83
|
-
end
|
84
|
-
|
85
|
-
# def pos(x, y)
|
86
|
-
# (4 * (x + @columns * y)) % @data.size
|
87
|
-
# end
|
88
|
-
end
|
89
|
-
end
|