imagetooth 0.1.0 → 0.2.0

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.
data/lib/image_tooth.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/ruby
2
2
  ##########################################################################
3
- # Copyright (C) 2007 Ramos, Gastón - ramos.gaston@gmail.com
3
+ # Copyright (C) 2007 Ramos, Gaston - ramos.gaston@gmail.com
4
4
  #
5
5
  # This program is free software; you can redistribute it and/or modify
6
6
  # it under the terms of the GNU General Public License as published by
@@ -39,6 +39,10 @@ class ImageTooth
39
39
  @@colors.keys
40
40
  end
41
41
 
42
+
43
+ # Generate the base tooth image, with all faces in white color.
44
+ # This are store in root_path/base_path.png
45
+
42
46
  def graph_base file = @file_name_base
43
47
  background = Image.new(25, 35)
44
48
  gc = Draw.new
@@ -54,6 +58,19 @@ class ImageTooth
54
58
  background.write( "#{root_path}/#{file}" )
55
59
  end
56
60
 
61
+ # Paints the faces of the tooth image on hash colors based.
62
+ # The tooth's filename represents the faces painted,
63
+ # The filename's characters are:
64
+ # * w - White
65
+ # * g - Green
66
+ # * b - Blue
67
+ # * n - Black
68
+ # * r - Red
69
+ # * t - To extract
70
+ # * x - Extracted
71
+ # and are ordered, begining on the upper face of the
72
+ # the tooth and moving clockwise ending on the center face.
73
+ # Example: wrrgw.png
57
74
  def paint hash_faces, name_file
58
75
  # FIXME
59
76
  self.graph_base
@@ -88,8 +105,30 @@ class ImageTooth
88
105
 
89
106
  gc.draw(tooth)
90
107
  tooth.write("#{self.root_path}/#{name_file}")
108
+ File.delete("#{self.root_path}/#{@file_name_base}")
91
109
  end
92
110
 
111
+ def paint_extract color, filename
112
+ self.graph_base
113
+
114
+ tooth = Magick::Image.read("#{@root_path}/#{@file_name_base}").first
115
+ gc = Draw.new
116
+
117
+ x = 4
118
+ y = 10
119
+ gc.stroke(color)
120
+ gc.stroke_width(3)
121
+ gc.line(x, y, x+19, y+15)
122
+ gc.line(x + 18, y, x, y+16)
123
+
124
+ gc.draw(tooth)
125
+ tooth.write("#{self.root_path}/#{filename}#{@extension}")
126
+ File.delete("#{self.root_path}/#{@file_name_base}")
127
+ end
128
+
129
+ # Generates a hash based on tooth's file name, where keys are the tooth's
130
+ # faces and value is the colour to painted.
131
+
93
132
  def file_name2hash_faces file_name
94
133
  desc = file_name.split('.').first
95
134
  hash = Hash.new
@@ -101,23 +140,55 @@ class ImageTooth
101
140
  hash
102
141
  end
103
142
 
143
+ # Generates all tooth's images in a folder structure like this:
144
+ # b/ w/ n/ r/ g/
145
+ #
146
+ # * b/ - Blue (those wich it's top face is blue)
147
+ # * w/ - White (those wich it's top face is white)
148
+ # * n/ - Black (those wich it's top face is Black)
149
+ # * g/ - Green (those wich it's top face is Green)
150
+ # * t/ - To extrate (this will be extracted)
151
+ # * x/ - Extracted (this was extracted)
104
152
  def gen_all
105
153
  root_path_aux = self.root_path
106
154
  self.permut.each{|i|
107
155
  self.root_path = "#{root_path_aux}/#{i[0].chr}"
108
156
  self.paint_img i
109
157
  }
158
+
159
+ #Generate the 2 extractions marcs
160
+ self.root_path = "#{root_path_aux}/t"
161
+ self.paint2extract
162
+ self.root_path = "#{root_path_aux}/x"
163
+
164
+ self.paint_extracted
165
+
110
166
  self.root_path = root_path_aux
111
167
  end
112
168
 
113
169
  def method_missing(method_name, *args)
114
- if method_name.to_s =~ /paint_img/
115
- self.paint(file_name2hash_faces(args[0]), args[0])
170
+
171
+ case method_name.to_s
172
+ when /paint_img/
173
+ case args[0]
174
+ when /^ttttt/
175
+ self.paint2extract
176
+ when /^xxxxx/
177
+ self.paint_extracted
178
+ else
179
+ self.paint(file_name2hash_faces(args[0]), args[0])
180
+ end
181
+ when /paint2extract/
182
+ self.paint_extract 'blue', 'ttttt'
183
+ when /paint_extracted/
184
+ self.paint_extract 'red', 'xxxxx'
116
185
  else
117
186
  super.method_missing
118
187
  end
188
+
119
189
  end
120
190
 
191
+ # Generates all permutations tooth's filenames.
121
192
  def permut
122
193
  @@colors.keys.permut(5).collect{ |v| v.join('') + @extension}
123
194
  end
@@ -126,12 +197,15 @@ class ImageTooth
126
197
  @@colors[char_color]
127
198
  end
128
199
 
200
+ # Create all folders ones for each color and 2 more for extractions (x/ and t/)
129
201
  def create_folders
130
202
  #FIXME
131
203
  Dir.mkdir(@root_path) if not File.exist?(@root_path)
132
204
  ImageTooth.chars_colors.each { |f|
133
205
  Dir.mkdir("#{@root_path}/#{f}") if not File.exist?("#{@root_path}/#{f}")
134
206
  }
207
+ Dir.mkdir("#{@root_path}/t")
208
+ Dir.mkdir("#{@root_path}/x")
135
209
  end
136
210
 
137
211
  end
data/spec/wrrgw.png ADDED
Binary file
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.4
3
3
  specification_version: 1
4
4
  name: imagetooth
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.1.0
7
- date: 2007-07-27 00:00:00 -04:00
6
+ version: 0.2.0
7
+ date: 2007-08-23 00:00:00 -04:00
8
8
  summary: This library allows to generate images of teeth for odontograms with tooth faces painted in a color (red, green, blue, white or black for example). This is very usefull for dental applications..
9
9
  require_paths:
10
10
  - lib
@@ -17,7 +17,7 @@ description: This library allows to generate images of teeth for odontograms wit
17
17
  autorequire: image_tooth
18
18
  default_executable: imagetooth
19
19
  bindir: bin
20
- has_rdoc: false
20
+ has_rdoc: true
21
21
  required_ruby_version: !ruby/object:Gem::Version::Requirement
22
22
  requirements:
23
23
  - - ">="
@@ -59,12 +59,40 @@ files:
59
59
  - lib/array_adds.rb
60
60
  - bin
61
61
  - bin/imagetooth
62
+ - TODO
62
63
  - images
63
64
  - spec
64
65
  - spec/array_spec.rb
65
66
  - spec/image_tooth_spec.rb
67
+ - spec/wrrgw.png
66
68
  - imagetooth.gemspec
67
- - imagetooth-0.0.5.gem
69
+ - LICENSE
70
+ - doc
71
+ - doc/rdoc-style.css
72
+ - doc/files
73
+ - doc/files/lib
74
+ - doc/files/lib/image_tooth_rb.html
75
+ - doc/classes
76
+ - doc/classes/ImageTooth.src
77
+ - doc/classes/ImageTooth.src/M000001.html
78
+ - doc/classes/ImageTooth.src/M000002.html
79
+ - doc/classes/ImageTooth.src/M000003.html
80
+ - doc/classes/ImageTooth.src/M000004.html
81
+ - doc/classes/ImageTooth.src/M000005.html
82
+ - doc/classes/ImageTooth.src/M000006.html
83
+ - doc/classes/ImageTooth.src/M000007.html
84
+ - doc/classes/ImageTooth.src/M000008.html
85
+ - doc/classes/ImageTooth.src/M000009.html
86
+ - doc/classes/ImageTooth.src/M000010.html
87
+ - doc/classes/ImageTooth.src/M000011.html
88
+ - doc/classes/ImageTooth.src/M000012.html
89
+ - doc/classes/ImageTooth.html
90
+ - doc/fr_file_index.html
91
+ - doc/fr_class_index.html
92
+ - doc/fr_method_index.html
93
+ - doc/index.html
94
+ - doc/created.rid
95
+ - README~
68
96
  test_files: []
69
97
 
70
98
  rdoc_options: []
metadata.gz.sig CHANGED
Binary file
data/imagetooth-0.0.5.gem DELETED
Binary file