chunky_text 0.2.2 → 0.2.3

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: 4a26c4a249e72debe6b641e822e8a8ec208fd959
4
- data.tar.gz: 4b57b64b85f70946a9399b791481cea6561787f4
3
+ metadata.gz: 6e08e6ded889fec73755acdc341cf92e87f50671
4
+ data.tar.gz: 810b0fb070c89862fee828382719983cb704ec86
5
5
  SHA512:
6
- metadata.gz: 0ee93e6f9f8a312632cc77eb9c4fab4b65b89bd25f839dcf6c36adee4a03486f11ebc1d457022550277ca7b9e55f6fd82b04e2d1fb8136e36321d0e11d415b94
7
- data.tar.gz: 9aa8d8e489f6887f93ef954234ef5c40bfb1f1c9983cc29dee665e75cb910434ab3d72d18e2c0c578be7577ae785224aadbb8a7fb642b9537d67b85e475d8ddb
6
+ metadata.gz: 770c50074946452524fb81376ec8ee7c7c83461a1ea80b668171f270d3bf799694ea052dcc9b2d96adfd487156e888dbbd7031c81eb2ebdf276dd723502c951d
7
+ data.tar.gz: 0b9cb21151f8d9c670cad118166fba1c901052dabcb1fbe40cf62524147772468b6f86865e39a009694d5674c700f6a21ed485e088b504fb97123d139ae89808
data/chunky_text.gemspec CHANGED
@@ -4,7 +4,7 @@ Gem::Specification.new do |s|
4
4
  s.description = File.read(File.join(File.dirname(__FILE__), 'README.md'))
5
5
  s.license = "MIT"
6
6
  s.requirements= ['chunky_png gem must be installed.']
7
- s.version = "0.2.2"
7
+ s.version = "0.2.3"
8
8
  s.author = "Marco Bagnaresi"
9
9
  s.email = "info@mbcraft.it"
10
10
  s.homepage = "http://www.mbcraft.it/products/chunky_text.php"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chunky_text
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marco Bagnaresi
@@ -78,11 +78,8 @@ files:
78
78
  - README.md
79
79
  - chunky_text.gemspec
80
80
  - chunky_text.rb
81
- - chunky_text.rb~
82
81
  - font/default_font.rb
83
- - font/default_font.rb~
84
82
  - font_metrics.rb
85
- - font_metrics.rb~
86
83
  homepage: http://www.mbcraft.it/products/chunky_text.php
87
84
  licenses:
88
85
  - MIT
data/chunky_text.rb~ DELETED
@@ -1,21 +0,0 @@
1
-
2
- require './chunky_text/font_metrics'
3
-
4
- module ChunkyText
5
-
6
- class Writer
7
-
8
- def initialize(img,font_name)
9
- @img = img
10
- @font_metrics = ChunkyText::FontMetrics.new(font_name)
11
- end
12
-
13
- def write(text,x,y,char_spacing,color)
14
- caret_x = x
15
- text.chars.each do |ch|
16
- caret_x+= @font_metrics.write_char(@img,caret_x,y,ch,color) + char_spacing
17
- end
18
- end
19
- end
20
-
21
- end
@@ -1,132 +0,0 @@
1
-
2
- module ChunkyText::Font
3
-
4
- class DefaultFont
5
-
6
- DESCRIPTION = "Default font provided with chunky_text.";
7
-
8
- MIN_WIDTH = 10
9
- MAX_WIDTH = 100
10
- MIN_HEIGHT = 10
11
- MAX_HEIGHT = 100
12
-
13
- FONT_DATA = {
14
- '1' => [[[81.0,81.0],[23.0,81.0],],[[52.0,82.0],[50.0,23.0],[22.0,43.0],],],
15
- '2' => [[[81.0,81.0],[21.0,81.0],[63.0,57.0],[78.0,42.0],[79.0,31.0],[64.0,23.0],[42.0,22.0],[23.0,32.0],],],
16
- '3' => [[[39.0,34.0],[47.0,28.0],[56.0,24.0],[68.0,24.0],[78.0,33.0],[79.0,41.0],[76.0,47.0],[66.0,52.0],[57.0,52.0],[67.0,57.0],[73.0,66.0],[73.0,72.0],[69.0,78.0],[60.0,80.0],[47.0,80.0],[38.0,71.0],],],
17
- '4' => [[[28.0,23.0],[28.0,74.0],[80.0,72.0],],[[51.0,88.0],[54.0,58.0],],],
18
- '5' => [[[78.0,24.0],[25.0,23.0],[23.0,42.0],[48.0,45.0],[67.0,54.0],[71.0,67.0],[64.0,77.0],[53.0,81.0],[25.0,80.0],],],
19
- '6' => [[[68.0,23.0],[44.0,26.0],[24.0,37.0],[22.0,54.0],[27.0,72.0],[36.0,81.0],[49.0,81.0],[60.0,81.0],[69.0,74.0],[75.0,62.0],[63.0,51.0],[44.0,47.0],[30.0,56.0],[26.0,62.0],],],
20
- '7' => [[[36.0,80.0],[78.0,24.0],[28.0,28.0],],[[44.0,51.0],[71.0,55.0],],],
21
- '8' => [[[50.0,50.0],[37.0,41.0],[28.0,34.0],[36.0,25.0],[51.0,23.0],[65.0,30.0],[71.0,40.0],[50.0,53.0],[31.0,71.0],[34.0,82.0],[46.0,82.0],[59.0,82.0],[69.0,77.0],[67.0,66.0],[53.0,55.0],],],
22
- '9' => [[[59.0,50.0],[51.0,52.0],[35.0,50.0],[29.0,40.0],[34.0,27.0],[45.0,22.0],[61.0,25.0],[68.0,37.0],[66.0,52.0],[61.0,60.0],[54.0,73.0],[46.0,78.0],[34.0,78.0],[25.0,65.0],],],
23
- '0' => [[[51.0,82.0],[44.0,79.0],[35.0,74.0],[24.0,65.0],[20.0,53.0],[23.0,39.0],[30.0,30.0],[42.0,24.0],[52.0,22.0],[64.0,26.0],[75.0,34.0],[78.0,46.0],[76.0,59.0],[72.0,70.0],[67.0,78.0],[53.0,83.0],],],
24
- 'a' => [[[50.0,81.0],[42.0,80.0],[35.0,73.0],[37.0,68.0],[42.0,63.0],[49.0,60.0],[56.0,64.0],[61.0,72.0],[57.0,78.0],[51.0,81.0],],[[36.0,48.0],[41.0,46.0],[51.0,42.0],[57.0,47.0],[62.0,63.0],[62.0,70.0],[64.0,77.0],[69.0,79.0],[72.0,77.0],],[[211.0,181.0],],],
25
- 'b' => [[[40.0,22.0],[41.0,82.0],],[[42.0,50.0],[53.0,50.0],[60.0,54.0],[64.0,68.0],[55.0,79.0],[41.0,82.0],],[],],
26
- 'c' => [[[58.0,43.0],[50.0,42.0],[38.0,51.0],[36.0,57.0],[37.0,67.0],[39.0,73.0],[45.0,78.0],[60.0,79.0],],],
27
- 'd' => [[[59.0,82.0],[58.0,21.0],],[[59.0,81.0],[50.0,79.0],[46.0,78.0],[42.0,76.0],[39.0,70.0],[39.0,61.0],[41.0,57.0],[47.0,55.0],[54.0,55.0],[58.0,55.0],],],
28
- 'e' => [[[39.0,61.0],[64.0,61.0],[65.0,59.0],[63.0,55.0],[61.0,52.0],[54.0,46.0],[44.0,46.0],[41.0,52.0],[37.0,60.0],[38.0,69.0],[43.0,76.0],[47.0,77.0],[55.0,78.0],[60.0,78.0],[63.0,74.0],],],
29
- 'f' => [[[42.0,82.0],[43.0,75.0],[45.0,69.0],[45.0,61.0],[45.0,53.0],[45.0,44.0],[46.0,34.0],[47.0,25.0],[53.0,21.0],[60.0,24.0],],[[39.0,52.0],[43.0,56.0],[52.0,53.0],],[],],
30
- 'g' => [[[62.0,64.0],[61.0,70.0],[55.0,78.0],[50.0,81.0],[46.0,81.0],[42.0,77.0],[37.0,65.0],[39.0,57.0],[47.0,52.0],[54.0,53.0],[61.0,60.0],[64.0,67.0],],[[63.0,52.0],[63.0,59.0],[63.0,66.0],[63.0,76.0],[63.0,87.0],[62.0,91.0],[56.0,97.0],[45.0,97.0],[40.0,94.0],[38.0,91.0],],],
31
- 'h' => [[[43.0,80.0],[43.0,22.0],],[[45.0,55.0],[50.0,57.0],[59.0,57.0],[64.0,62.0],[65.0,71.0],[65.0,80.0],],[],],
32
- 'i' => [[[43.0,82.0],[57.0,82.0],],[[50.0,84.0],[50.0,52.0],],[[44.0,55.0],[57.0,54.0],],[[54.0,44.0],[50.0,43.0],[49.0,43.0],[47.0,40.0],[50.0,37.0],[54.0,38.0],[55.0,42.0],],[],],
33
- 'j' => [[[54.0,49.0],[68.0,51.0],],[[62.0,52.0],[62.0,59.0],[60.0,67.0],[58.0,77.0],[55.0,82.0],[50.0,87.0],[43.0,92.0],[37.0,90.0],],[[63.0,43.0],[60.0,41.0],[59.0,37.0],[63.0,38.0],[64.0,41.0],],],
34
- 'k' => [[[42.0,81.0],[42.0,44.0],],[[44.0,62.0],[55.0,50.0],],[[44.0,62.0],[60.0,80.0],],],
35
- 'l' => [[[54.0,36.0],[54.0,73.0],[56.0,79.0],[61.0,81.0],],],
36
- 'm' => [[[35.0,81.0],[35.0,45.0],],[[36.0,56.0],[41.0,51.0],[51.0,49.0],[54.0,56.0],[54.0,69.0],[55.0,80.0],],[[55.0,56.0],[62.0,52.0],[69.0,52.0],[76.0,60.0],[76.0,80.0],],[],],
37
- 'n' => [[[40.0,81.0],[39.0,44.0],],[[40.0,57.0],[47.0,54.0],[54.0,51.0],[63.0,57.0],[66.0,65.0],[66.0,80.0],],],
38
- 'o' => [[[49.0,80.0],[45.0,80.0],[38.0,74.0],[34.0,71.0],[32.0,65.0],[34.0,58.0],[41.0,55.0],[50.0,54.0],[57.0,56.0],[64.0,67.0],[63.0,72.0],[57.0,80.0],[48.0,81.0],],],
39
- 'p' => [[[42.0,99.0],[42.0,44.0],],[[43.0,51.0],[51.0,51.0],[62.0,51.0],[68.0,58.0],[69.0,66.0],[65.0,73.0],[56.0,79.0],[42.0,79.0],],],
40
- 'q' => [[[61.0,47.0],[61.0,98.0],],[[61.0,53.0],[49.0,52.0],[40.0,55.0],[36.0,63.0],[37.0,71.0],[42.0,76.0],[46.0,79.0],[61.0,81.0],],],
41
- 'r' => [[[38.0,80.0],[37.0,43.0],],[[38.0,52.0],[45.0,48.0],[55.0,48.0],[62.0,51.0],[65.0,57.0],],],
42
- 's' => [[[62.0,51.0],[58.0,48.0],[50.0,44.0],[42.0,43.0],[37.0,48.0],[36.0,56.0],[39.0,61.0],[46.0,64.0],[50.0,65.0],[56.0,66.0],[60.0,77.0],[52.0,81.0],[44.0,81.0],[35.0,75.0],],],
43
- 't' => [[[42.0,32.0],[42.0,38.0],[42.0,49.0],[42.0,66.0],[46.0,75.0],[52.0,79.0],[60.0,80.0],[63.0,75.0],],[[37.0,43.0],[49.0,43.0],],],
44
- 'u' => [[[30.0,41.0],[32.0,52.0],[33.0,61.0],[36.0,75.0],[42.0,78.0],[50.0,80.0],[62.0,77.0],[63.0,71.0],[64.0,60.0],[64.0,51.0],[67.0,43.0],[68.0,81.0],],],
45
- 'v' => [[[31.0,44.0],[49.0,80.0],[64.0,45.0],],],
46
- 'w' => [[[26.0,45.0],[44.0,79.0],[58.0,46.0],],[[41.0,48.0],[63.0,79.0],[76.0,50.0],],],
47
- 'x' => [[[35.0,82.0],[65.0,46.0],],[[35.0,47.0],[64.0,82.0],],],
48
- 'y' => [[[37.0,98.0],[45.0,99.0],[54.0,97.0],[57.0,92.0],[61.0,84.0],[64.0,71.0],[66.0,56.0],[69.0,44.0],],[[63.0,74.0],[53.0,73.0],[40.0,55.0],[38.0,49.0],],],
49
- 'z' => [[[34.0,44.0],[68.0,45.0],[38.0,81.0],[66.0,81.0],],[[47.0,61.0],[61.0,63.0],],],
50
- 'A' => [[[21.0,81.0],[50.0,22.0],[80.0,82.0],],[[37.0,54.0],[66.0,54.0],],],
51
- 'B' => [[[24.0,81.0],[26.0,22.0],[49.0,22.0],[67.0,31.0],[70.0,43.0],[66.0,52.0],[28.0,53.0],[60.0,56.0],[68.0,63.0],[69.0,74.0],[64.0,82.0],[25.0,83.0],],],
52
- 'C' => [[[69.0,31.0],[57.0,23.0],[33.0,22.0],[25.0,32.0],[21.0,46.0],[21.0,70.0],[32.0,77.0],[44.0,82.0],[58.0,80.0],[69.0,68.0],],],
53
- 'D' => [[[26.0,81.0],[27.0,23.0],[47.0,24.0],[65.0,34.0],[71.0,47.0],[70.0,57.0],[65.0,70.0],[52.0,79.0],[28.0,81.0],],],
54
- 'E' => [[[74.0,23.0],[27.0,22.0],[30.0,81.0],[72.0,82.0],],[[30.0,54.0],[47.0,54.0],],],
55
- 'F' => [[[30.0,81.0],[29.0,23.0],[69.0,24.0],],[[31.0,51.0],[45.0,51.0],],],
56
- 'G' => [[[67.0,28.0],[49.0,22.0],[30.0,23.0],[22.0,38.0],[21.0,51.0],[24.0,71.0],[36.0,78.0],[47.0,81.0],[61.0,79.0],[64.0,70.0],[63.0,58.0],[43.0,60.0],],],
57
- 'H' => [[[26.0,81.0],[27.0,22.0],],[[73.0,82.0],[71.0,22.0],],[[28.0,51.0],[73.0,52.0],],],
58
- 'I' => [[[38.0,22.0],[60.0,22.0],],[[42.0,82.0],[56.0,82.0],],[[50.0,84.0],[49.0,24.0],],],
59
- 'J' => [[[31.0,23.0],[69.0,22.0],],[[51.0,24.0],[50.0,65.0],[46.0,74.0],[37.0,80.0],[27.0,74.0],[20.0,61.0],],],
60
- 'K' => [[[28.0,82.0],[29.0,21.0],],[[29.0,54.0],[58.0,25.0],],[[30.0,53.0],[61.0,82.0],],],
61
- 'L' => [[[27.0,23.0],[26.0,82.0],[75.0,83.0],],],
62
- 'M' => [[[22.0,82.0],[22.0,22.0],[50.0,44.0],[79.0,23.0],[80.0,82.0],],],
63
- 'N' => [[[26.0,82.0],[25.0,21.0],[73.0,81.0],[73.0,24.0],],],
64
- 'O' => [[[45.0,82.0],[34.0,76.0],[22.0,60.0],[22.0,36.0],[36.0,22.0],[52.0,21.0],[66.0,25.0],[77.0,39.0],[80.0,51.0],[79.0,66.0],[72.0,79.0],[58.0,84.0],[46.0,83.0],],],
65
- 'P' => [[[28.0,81.0],[28.0,23.0],[53.0,25.0],[68.0,33.0],[71.0,44.0],[60.0,50.0],[47.0,54.0],[29.0,54.0],],],
66
- 'Q' => [[[80.0,53.0],[77.0,65.0],[63.0,73.0],[47.0,80.0],[35.0,80.0],[28.0,72.0],[22.0,57.0],[21.0,43.0],[26.0,32.0],[46.0,25.0],[63.0,23.0],[70.0,32.0],[79.0,51.0],],[[75.0,80.0],[60.0,62.0],],],
67
- 'R' => [[[26.0,81.0],[26.0,21.0],[57.0,23.0],[69.0,34.0],[70.0,44.0],[64.0,54.0],[28.0,56.0],[67.0,81.0],],],
68
- 'S' => [[[70.0,22.0],[33.0,24.0],[24.0,35.0],[24.0,43.0],[32.0,50.0],[45.0,52.0],[59.0,53.0],[69.0,61.0],[74.0,70.0],[68.0,79.0],[53.0,82.0],[24.0,82.0],],],
69
- 'T' => [[[50.0,21.0],[53.0,81.0],],[[22.0,23.0],[80.0,23.0],],],
70
- 'U' => [[[22.0,23.0],[22.0,61.0],[31.0,74.0],[43.0,79.0],[57.0,81.0],[69.0,77.0],[76.0,69.0],[79.0,60.0],[79.0,23.0],],],
71
- 'V' => [[[21.0,21.0],[52.0,81.0],[80.0,23.0],],],
72
- 'W' => [[[21.0,20.0],[39.0,80.0],[60.0,22.0],],[[40.0,23.0],[61.0,80.0],[79.0,23.0],],],
73
- 'X' => [[[25.0,21.0],[75.0,81.0],],[[30.0,81.0],[73.0,22.0],],],
74
- 'Y' => [[[27.0,82.0],[75.0,22.0],],[[55.0,50.0],[25.0,21.0],],],
75
- 'Z' => [[[24.0,21.0],[78.0,22.0],[27.0,81.0],[76.0,81.0],],],
76
- '!' => [[[49.0,23.0],[51.0,66.0],],[[48.0,80.0],[56.0,75.0],],[[56.0,80.0],[49.0,75.0],],],
77
- '"' => [[[34.0,23.0],[35.0,39.0],[43.0,24.0],],[[55.0,24.0],[55.0,37.0],[65.0,23.0],],],
78
- '£' => [[[66.0,24.0],[42.0,24.0],[34.0,31.0],[34.0,72.0],[27.0,81.0],[70.0,81.0],],[[28.0,51.0],[49.0,52.0],],],
79
- '$' => [[[66.0,29.0],[56.0,24.0],[41.0,21.0],[31.0,27.0],[25.0,38.0],[26.0,48.0],[35.0,52.0],[45.0,52.0],[55.0,54.0],[63.0,60.0],[63.0,65.0],[62.0,73.0],[51.0,78.0],[41.0,80.0],[30.0,81.0],[22.0,74.0],],[[41.0,85.0],[38.0,20.0],],[[48.0,84.0],[47.0,20.0],],],
80
- '%' => [[[24.0,81.0],[75.0,21.0],],[[42.0,37.0],[34.0,37.0],[27.0,34.0],[27.0,27.0],[35.0,22.0],[42.0,25.0],[46.0,33.0],[42.0,38.0],],[[65.0,76.0],[54.0,77.0],[51.0,70.0],[55.0,63.0],[63.0,60.0],[68.0,65.0],[70.0,70.0],[66.0,76.0],],],
81
- '&' => [[[66.0,75.0],[35.0,42.0],[30.0,30.0],[37.0,19.0],[54.0,21.0],[62.0,27.0],[58.0,39.0],[50.0,48.0],[31.0,60.0],[24.0,70.0],[30.0,78.0],[47.0,81.0],[56.0,79.0],[68.0,57.0],],],
82
- '/' => [[[27.0,80.0],[70.0,22.0],],],
83
- '(' => [[[57.0,19.0],[43.0,26.0],[36.0,35.0],[29.0,47.0],[29.0,59.0],[36.0,71.0],[45.0,77.0],[58.0,85.0],],],
84
- ')' => [[[36.0,16.0],[48.0,26.0],[57.0,31.0],[63.0,54.0],[59.0,65.0],[53.0,76.0],[38.0,90.0],],],
85
- '=' => [[[21.0,39.0],[80.0,39.0],],[[22.0,57.0],[80.0,58.0],],],
86
- '?' => [[[45.0,81.0],[53.0,76.0],],[[53.0,84.0],[45.0,74.0],],[[50.0,68.0],[49.0,61.0],[51.0,57.0],[59.0,50.0],[65.0,44.0],[65.0,36.0],[58.0,26.0],[53.0,22.0],[40.0,22.0],[33.0,28.0],[31.0,33.0],[34.0,38.0],[38.0,40.0],],],
87
- '\'' => [[[49.0,22.0],[49.0,40.0],[44.0,23.0],],],
88
- '^' => [[[34.0,36.0],[51.0,23.0],[67.0,38.0],],],
89
- 'ì' => [[[49.0,81.0],[47.0,37.0],],[[52.0,30.0],[41.0,15.0],],],
90
- '>' => [[[23.0,25.0],[81.0,50.0],[23.0,64.0],],],
91
- '<' => [[[80.0,29.0],[21.0,49.0],[80.0,63.0],],],
92
- ';' => [[[46.0,34.0],[40.0,29.0],[40.0,21.0],[47.0,20.0],[53.0,23.0],[54.0,29.0],[47.0,34.0],],[[48.0,44.0],[49.0,54.0],[50.0,66.0],[43.0,78.0],[33.0,88.0],],],
93
- ',' => [[[49.0,55.0],[47.0,72.0],[40.0,90.0],[33.0,91.0],],],
94
- ':' => [[[44.0,29.0],[51.0,37.0],],[[43.0,38.0],[51.0,31.0],],[[43.0,75.0],[49.0,68.0],],[[51.0,76.0],[42.0,68.0],],],
95
- '.' => [[[46.0,81.0],[54.0,75.0],],[[54.0,83.0],[47.0,75.0],],],
96
- '-' => [[[23.0,48.0],[80.0,51.0],],],
97
- '_' => [[[21.0,81.0],[81.0,81.0],],],
98
- '+' => [[[22.0,51.0],[82.0,52.0],],[[49.0,23.0],[50.0,81.0],],],
99
- '*' => [[[22.0,49.0],[80.0,51.0],],[[50.0,81.0],[49.0,22.0],],[[71.0,72.0],[33.0,34.0],],[[31.0,69.0],[64.0,34.0],],],
100
- '|' => [[[49.0,82.0],[48.0,22.0],],],
101
- '\\' => [[[29.0,21.0],[71.0,82.0],],],
102
- '[' => [[[63.0,21.0],[36.0,20.0],[39.0,82.0],[64.0,82.0],],],
103
- ']' => [[[36.0,21.0],[62.0,22.0],[61.0,82.0],[39.0,82.0],],],
104
- '{' => [[[64.0,22.0],[54.0,24.0],[49.0,26.0],[47.0,34.0],[49.0,43.0],[47.0,51.0],[36.0,53.0],[45.0,56.0],[48.0,60.0],[48.0,70.0],[45.0,75.0],[46.0,81.0],[50.0,84.0],[60.0,84.0],],],
105
- '}' => [[[43.0,23.0],[49.0,24.0],[55.0,27.0],[58.0,33.0],[56.0,44.0],[58.0,48.0],[63.0,49.0],[69.0,51.0],[59.0,54.0],[55.0,58.0],[58.0,64.0],[60.0,72.0],[54.0,81.0],[47.0,84.0],[41.0,84.0],],],
106
- '@' => [[[61.0,62.0],[58.0,66.0],[49.0,72.0],[40.0,69.0],[36.0,63.0],[35.0,51.0],[39.0,44.0],[50.0,43.0],[58.0,48.0],[62.0,61.0],],[[61.0,40.0],[62.0,53.0],[62.0,62.0],[62.0,68.0],[65.0,71.0],[68.0,73.0],[72.0,70.0],[72.0,65.0],[72.0,55.0],[72.0,48.0],[70.0,39.0],[64.0,29.0],[57.0,26.0],[45.0,24.0],[38.0,27.0],[27.0,33.0],[24.0,42.0],[24.0,56.0],[27.0,70.0],[33.0,75.0],[42.0,79.0],[54.0,80.0],[64.0,81.0],[76.0,76.0],],],
107
- '#' => [[[21.0,39.0],[82.0,43.0],],[[23.0,56.0],[81.0,59.0],],[[42.0,81.0],[44.0,22.0],],[[63.0,81.0],[64.0,21.0],],],
108
- 'ç' => [[[67.0,26.0],[60.0,23.0],[37.0,24.0],[24.0,27.0],[18.0,42.0],[19.0,58.0],[24.0,66.0],[38.0,68.0],[46.0,70.0],[61.0,68.0],[68.0,67.0],],[[37.0,70.0],[48.0,74.0],[54.0,77.0],[51.0,82.0],[41.0,83.0],[36.0,84.0],],],
109
- '°' => [[[46.0,38.0],[39.0,36.0],[36.0,31.0],[37.0,26.0],[45.0,20.0],[52.0,22.0],[56.0,27.0],[57.0,33.0],[53.0,36.0],[47.0,39.0],],],
110
- '§' => [[[58.0,17.0],[48.0,22.0],[41.0,26.0],[41.0,33.0],[46.0,39.0],[50.0,43.0],[56.0,47.0],[59.0,55.0],[57.0,62.0],[47.0,66.0],[40.0,65.0],[37.0,62.0],[37.0,56.0],[40.0,50.0],[48.0,44.0],],[[48.0,67.0],[56.0,72.0],[59.0,76.0],[59.0,82.0],[54.0,87.0],[44.0,88.0],[38.0,91.0],],],
111
- '€' => [[[72.0,36.0],[67.0,31.0],[58.0,27.0],[47.0,29.0],[38.0,33.0],[29.0,42.0],[30.0,65.0],[34.0,73.0],[43.0,78.0],[52.0,79.0],[61.0,80.0],[69.0,74.0],[73.0,70.0],],[[22.0,59.0],[51.0,59.0],],[[22.0,48.0],[49.0,49.0],],],
112
- '`' => [[[54.0,41.0],[40.0,22.0],],],
113
- '~' => [[[22.0,54.0],[28.0,47.0],[35.0,44.0],[43.0,43.0],[51.0,49.0],[56.0,56.0],[60.0,61.0],[69.0,63.0],[75.0,59.0],[80.0,53.0],],],
114
- 'ñ' => [[[34.0,81.0],[35.0,42.0],],[[36.0,54.0],[43.0,49.0],[50.0,45.0],[61.0,45.0],[69.0,53.0],[70.0,82.0],],[[35.0,32.0],[38.0,29.0],[42.0,28.0],[52.0,33.0],[53.0,34.0],[56.0,37.0],[60.0,36.0],[66.0,32.0],[69.0,30.0],],],
115
- 'é' => [[[63.0,66.0],[59.0,73.0],[50.0,79.0],[43.0,79.0],[37.0,73.0],[32.0,65.0],[29.0,52.0],[31.0,43.0],[41.0,40.0],[54.0,40.0],[63.0,47.0],[64.0,53.0],[30.0,54.0],],[[42.0,31.0],[56.0,22.0],],],
116
- 'è' => [[[62.0,69.0],[59.0,75.0],[52.0,80.0],[47.0,80.0],[41.0,80.0],[35.0,74.0],[30.0,66.0],[31.0,59.0],[34.0,50.0],[40.0,44.0],[51.0,41.0],[59.0,46.0],[63.0,55.0],[33.0,54.0],],[[55.0,35.0],[39.0,25.0],],],
117
- 'ò' => [[[55.0,80.0],[50.0,80.0],[42.0,79.0],[34.0,70.0],[31.0,64.0],[31.0,56.0],[38.0,46.0],[52.0,45.0],[69.0,62.0],[67.0,71.0],[60.0,79.0],[50.0,80.0],],[[59.0,35.0],[37.0,22.0],],],
118
- 'à' => [[[33.0,46.0],[39.0,43.0],[46.0,43.0],[55.0,42.0],[63.0,57.0],[62.0,66.0],[60.0,75.0],[64.0,79.0],[71.0,81.0],],[[61.0,69.0],[59.0,73.0],[53.0,77.0],[48.0,80.0],[40.0,80.0],[38.0,80.0],[33.0,74.0],[33.0,68.0],[41.0,62.0],[51.0,61.0],[57.0,66.0],[62.0,69.0],],[[55.0,32.0],[38.0,23.0],],],
119
- 'ù' => [[[33.0,44.0],[33.0,52.0],[35.0,63.0],[40.0,72.0],[44.0,78.0],[49.0,79.0],[54.0,80.0],[61.0,77.0],[64.0,72.0],[67.0,62.0],[68.0,47.0],],[[68.0,80.0],[68.0,53.0],],[[60.0,40.0],[41.0,25.0],],],
120
- 'ì' => [[[48.0,81.0],[47.0,42.0],],[[55.0,35.0],[41.0,26.0],],],
121
- 'É' => [[[79.0,28.0],[21.0,28.0],[21.0,80.0],[76.0,81.0],],[[21.0,52.0],[49.0,55.0],],[[30.0,22.0],[63.0,7.0],],],
122
- 'È' => [[[79.0,31.0],[20.0,32.0],[22.0,80.0],[80.0,82.0],],[[23.0,54.0],[48.0,56.0],],[[62.0,25.0],[36.0,7.0],],],
123
- 'Ò' => [[[51.0,80.0],[41.0,77.0],[26.0,64.0],[24.0,56.0],[26.0,43.0],[36.0,34.0],[55.0,28.0],[67.0,34.0],[73.0,44.0],[75.0,55.0],[70.0,77.0],[50.0,82.0],],[[62.0,24.0],[36.0,8.0],],],
124
- 'À' => [[[26.0,82.0],[51.0,25.0],[70.0,81.0],],[[40.0,56.0],[62.0,56.0],],[[63.0,23.0],[34.0,6.0],],],
125
- 'Ù' => [[[27.0,30.0],[28.0,42.0],[27.0,60.0],[35.0,74.0],[48.0,81.0],[58.0,82.0],[70.0,76.0],[73.0,65.0],[73.0,39.0],[74.0,30.0],],[[61.0,28.0],[38.0,7.0],],],
126
- ' ' => [],
127
-
128
- }
129
-
130
- end
131
-
132
- end
data/font_metrics.rb~ DELETED
@@ -1,122 +0,0 @@
1
-
2
- require 'chunky_png'
3
-
4
- module ChunkyText
5
-
6
- class FontMetrics
7
-
8
- def initialize(font_name)
9
- file = './chunky_text/font/'+font_name+'.rb'
10
- require file
11
-
12
- @font_class_name = font_name.split('_').map do |token|
13
- token.capitalize
14
- end.join
15
- @metrics = {}
16
- @font_class = eval("ChunkyText::Font::"+@font_class_name,TOPLEVEL_BINDING)
17
- @font_instance = @font_class.new
18
-
19
- calculate
20
-
21
- end
22
-
23
- def calculate
24
-
25
- font_data = @font_class::FONT_DATA
26
-
27
- font_data.each do |ix,char_def|
28
- char_metrics = {}
29
-
30
- min_x = @font_class::MAX_WIDTH*2
31
- max_x = -@font_class::MAX_WIDTH
32
- min_y = @font_class::MAX_HEIGHT*2
33
- max_y = -@font_class::MAX_HEIGHT
34
-
35
- char_def.each do |poly|
36
- poly.each do |point|
37
- px = point[0]
38
- py = point[1]
39
- if (px>max_x)
40
- max_x = px
41
- end
42
- if (px<min_x)
43
- min_x = px
44
- end
45
- if (py>max_y)
46
- max_y = py
47
- end
48
- if (py<min_y)
49
- min_y = py
50
- end
51
- end
52
- end
53
-
54
- if (max_x-min_x<0)
55
- width = @font_class::MAX_WIDTH/2
56
- else
57
- if (max_x-min_x>@font_class::MIN_WIDTH)
58
- width = max_x-min_x
59
- else
60
- width = @font_class::MIN_WIDTH
61
- end
62
- end
63
-
64
- if (max_y-min_y<0)
65
- height = @font_class::MAX_HEIGHT
66
- else
67
- if (max_y-min_y>@font_class::MIN_HEIGHT)
68
- height = max_y-min_y
69
- else
70
- height = @font_class::MIN_HEIGHT
71
- end
72
- end
73
-
74
- char_metrics[:min_x] = min_x
75
- char_metrics[:max_x] = max_x
76
- char_metrics[:min_y] = min_y
77
- char_metrics[:max_y] = max_y
78
- char_metrics[:width] = width
79
- char_metrics[:height] = height
80
-
81
- @metrics[ix] = char_metrics
82
- end
83
- end
84
-
85
- def char_metrics(ch)
86
- @metrics[ch]
87
- end
88
-
89
- def write_line(p_old,p_cur,img,min_x,min_y,color)
90
- x0 = p_old[0]-min_x
91
- y0 = p_old[1]-min_y
92
- x1 = p_cur[0]-min_x
93
- y1 = p_cur[1]-min_y
94
- img.line(x0.to_i,y0.to_i,x1.to_i,y1.to_i,color)
95
- end
96
-
97
- def write_char(img,x,y,ch,color)
98
- metrics = char_metrics(ch)
99
-
100
- char_data = @font_class::FONT_DATA[ch]
101
-
102
- char_data.each do |poly|
103
- p_cur = nil
104
- p_old = nil
105
- poly.each do |point|
106
- p_old = p_cur
107
- p_cur = point
108
- write_line(p_old,p_cur,img,metrics[:min_x]-x,metrics[:min_y]-y+metrics[:height],color) unless (p_old.nil? || p_cur.nil?)
109
- end
110
- end
111
- metrics[:width]
112
- end
113
-
114
- def dump
115
- @metrics.each do |key,value|
116
- print key+" ==> W:"+value[:width].to_s+" H:"+value[:height].to_s+"\n"
117
- end
118
- end
119
-
120
- end
121
-
122
- end