shogi_koma 0.0.2 → 0.0.3
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/NEWS.md +28 -0
- data/lib/shogi_koma/painter.rb +36 -3
- data/lib/shogi_koma/version.rb +1 -1
- data/sample/shogikoma.rb +7 -0
- data/test/test-painter.rb +15 -0
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 08e065ded06c5abbed80e87904b93d531cde1787
|
4
|
+
data.tar.gz: caf3312d2cc5e8f22705c90b329bed7a16fa1fcd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ed620bdbaf3e918b8c1b0c8e72fe5e14b5fab4f1733eb7fd5774d5f20145b4e3ad69bd6f8ab6048486941f32486a5c355292d9087ba6effab5324af96763d82d
|
7
|
+
data.tar.gz: 6e410a3931fde4077e06541af0356be95b0e2dab55cf1b65b49d4095c2eaea2202ad85724a00e5dbb42f88f1debf72fa2784f221925d10b934e6f895c24a7126
|
data/NEWS.md
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
# NEWS
|
2
|
+
|
3
|
+
## 0.0.3: 2013-12-14
|
4
|
+
|
5
|
+
Supported customizing colors!
|
6
|
+
|
7
|
+
### Changes
|
8
|
+
|
9
|
+
* Improvements
|
10
|
+
* Supported customizing colors (body, frame and text).
|
11
|
+
[Patch by Seiichi Yonezawa]
|
12
|
+
|
13
|
+
### Thanks
|
14
|
+
|
15
|
+
* Seiichi Yonezawa
|
16
|
+
|
17
|
+
## 0.0.2: 2013-12-08
|
18
|
+
|
19
|
+
ASCII characters support release!
|
20
|
+
|
21
|
+
### Changes
|
22
|
+
|
23
|
+
* Improvements
|
24
|
+
* Supported ASCII characters.
|
25
|
+
|
26
|
+
## 0.0.1: 2013-12-06
|
27
|
+
|
28
|
+
Initial release!
|
data/lib/shogi_koma/painter.rb
CHANGED
@@ -3,12 +3,43 @@ require "cairo"
|
|
3
3
|
module ShogiKoma
|
4
4
|
class Painter
|
5
5
|
attr_accessor :width, :height, :font
|
6
|
+
attr_reader :body_color, :text_color
|
6
7
|
def initialize
|
7
8
|
@width = 200
|
8
9
|
@height = 200
|
9
10
|
@font = "IPAMincho"
|
11
|
+
set_body_rgb(1, 0.8, 0.2)
|
12
|
+
set_frame_color(:black)
|
13
|
+
set_text_color(:black)
|
10
14
|
end
|
11
15
|
|
16
|
+
def set_body_color(color)
|
17
|
+
@body_color = Cairo::Color.parse(color)
|
18
|
+
end
|
19
|
+
|
20
|
+
def set_body_rgba(r, g, b, a=1.0)
|
21
|
+
@body_color = Cairo::Color.parse([:rgba, r, g, b, a])
|
22
|
+
end
|
23
|
+
alias :set_body_rgb :set_body_rgba
|
24
|
+
|
25
|
+
def set_frame_color(color)
|
26
|
+
@frame_color = Cairo::Color.parse(color)
|
27
|
+
end
|
28
|
+
|
29
|
+
def set_frame_rgba(r, g, b, a=1.0)
|
30
|
+
@frame_color = Cairo::Color.parse([:rgba, r, g, b, a])
|
31
|
+
end
|
32
|
+
alias :set_frame_rgb :set_frame_rgba
|
33
|
+
|
34
|
+
def set_text_color(color)
|
35
|
+
@text_color = Cairo::Color.parse(color)
|
36
|
+
end
|
37
|
+
|
38
|
+
def set_text_rgba(r, g, b, a=1.0)
|
39
|
+
@text_color = Cairo::Color.parse([:rgba, r, g, b, a])
|
40
|
+
end
|
41
|
+
alias :set_text_rgb :set_text_rgba
|
42
|
+
|
12
43
|
def write_to_png(text, output_path)
|
13
44
|
Cairo::ImageSurface.new(:argb32, @width, @height) do |surface|
|
14
45
|
Cairo::Context.new(surface) do |context|
|
@@ -22,7 +53,7 @@ module ShogiKoma
|
|
22
53
|
def draw(context, text)
|
23
54
|
draw_body(context)
|
24
55
|
text = divide(text)
|
25
|
-
|
56
|
+
__send__("draw_text#{text.length}", context, text)
|
26
57
|
end
|
27
58
|
|
28
59
|
def draw_body(context)
|
@@ -33,9 +64,9 @@ module ShogiKoma
|
|
33
64
|
context.line_to(0.9, 0.9)
|
34
65
|
context.line_to(0.1, 0.9)
|
35
66
|
context.close_path
|
36
|
-
context.
|
67
|
+
context.set_source_color(@body_color)
|
37
68
|
context.fill_preserve
|
38
|
-
context.set_source_color(
|
69
|
+
context.set_source_color(@frame_color)
|
39
70
|
context.stroke
|
40
71
|
end
|
41
72
|
|
@@ -59,6 +90,7 @@ module ShogiKoma
|
|
59
90
|
end
|
60
91
|
|
61
92
|
def draw_text1(context, text)
|
93
|
+
context.set_source_color(@text_color)
|
62
94
|
text = text[0] if text.is_a?(Array)
|
63
95
|
context.select_font_face(@font)
|
64
96
|
context.font_size = 0.6
|
@@ -67,6 +99,7 @@ module ShogiKoma
|
|
67
99
|
end
|
68
100
|
|
69
101
|
def draw_text2(context, text)
|
102
|
+
context.set_source_color(@text_color)
|
70
103
|
context.select_font_face(@font)
|
71
104
|
context.font_size = 0.4
|
72
105
|
context.move_to(0.3, 0.49)
|
data/lib/shogi_koma/version.rb
CHANGED
data/sample/shogikoma.rb
CHANGED
@@ -9,3 +9,10 @@ painter.height = 200
|
|
9
9
|
painter.font = "IPAMincho"
|
10
10
|
painter.write_to_png("歩", "shogi_koma-fu1.png")
|
11
11
|
painter.write_to_png("歩兵", "shogi_koma-fu2.png")
|
12
|
+
|
13
|
+
painter.set_text_color(:red)
|
14
|
+
painter.write_to_png("と", "shogi_koma-fu3.png")
|
15
|
+
|
16
|
+
painter.set_body_rgba(0.2, 0.2, 0.9, 0.1)
|
17
|
+
painter.set_frame_color("#CC00FF")
|
18
|
+
painter.write_to_png("と", "shogi_koma-fu4.png")
|
data/test/test-painter.rb
CHANGED
@@ -19,6 +19,21 @@ class PainterTest < Test::Unit::TestCase
|
|
19
19
|
assert_nothing_raised_in_draw("ABC")
|
20
20
|
end
|
21
21
|
|
22
|
+
def test_body_color_with_rgb
|
23
|
+
@painter.set_body_rgb(0.2, 0.2, 0.2)
|
24
|
+
assert_nothing_raised_in_draw("D")
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_text_color_with_name
|
28
|
+
@painter.set_text_color(:deep_pink)
|
29
|
+
assert_nothing_raised_in_draw("E")
|
30
|
+
end
|
31
|
+
|
32
|
+
def test_text_color_with_hex
|
33
|
+
@painter.set_text_color("#ACE")
|
34
|
+
assert_nothing_raised_in_draw("G")
|
35
|
+
end
|
36
|
+
|
22
37
|
private
|
23
38
|
def assert_nothing_raised_in_draw(text)
|
24
39
|
width = 200
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: shogi_koma
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Masafumi Yokoyama
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-12-
|
11
|
+
date: 2013-12-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: cairo
|
@@ -106,6 +106,7 @@ files:
|
|
106
106
|
- .travis.yml
|
107
107
|
- Gemfile
|
108
108
|
- LICENSE.txt
|
109
|
+
- NEWS.md
|
109
110
|
- README.md
|
110
111
|
- Rakefile
|
111
112
|
- lib/shogi_koma.rb
|
@@ -135,11 +136,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
135
136
|
version: '0'
|
136
137
|
requirements: []
|
137
138
|
rubyforge_project:
|
138
|
-
rubygems_version: 2.0.
|
139
|
+
rubygems_version: 2.0.14
|
139
140
|
signing_key:
|
140
141
|
specification_version: 4
|
141
142
|
summary: An image generater for Shogi's pieces
|
142
143
|
test_files:
|
143
144
|
- test/run-test.rb
|
144
145
|
- test/test-painter.rb
|
145
|
-
has_rdoc:
|