tileup 0.1.1 → 0.1.2
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/tileup.rb +14 -15
- metadata +1 -1
data/lib/tileup.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'ostruct'
|
2
|
-
require '
|
2
|
+
require 'RMagick'
|
3
|
+
require 'fileutils'
|
3
4
|
|
4
5
|
module TileUp
|
5
6
|
|
@@ -15,11 +16,13 @@ module TileUp
|
|
15
16
|
verbose: false
|
16
17
|
}
|
17
18
|
@options = OpenStruct.new(default_options.merge(options))
|
19
|
+
@options.tile_width = @options.tile_width.to_i unless !@options.tile_width.respond_to? :to_i
|
20
|
+
@options.tile_height = @options.tile_height.to_i unless !@options.tile_height.respond_to? :to_i
|
18
21
|
@extension = image_filename.split(".").last
|
19
22
|
@filename_prefix = @options.filename_prefix
|
20
23
|
|
21
24
|
begin
|
22
|
-
@image = Magick::Image::read(image_filename).first
|
25
|
+
@image = Magick::Image::read(image_filename).first
|
23
26
|
rescue Magick::ImageMagickError => e
|
24
27
|
puts "Could not open image #{image_filename}."
|
25
28
|
exit
|
@@ -61,17 +64,17 @@ module TileUp
|
|
61
64
|
output_dir: File.join(@options.output_dir, zoom_name.to_s),
|
62
65
|
scale: scale
|
63
66
|
}
|
64
|
-
end
|
67
|
+
end
|
65
68
|
end
|
66
69
|
|
67
70
|
# run through tasks list
|
68
71
|
tasks.each do |task|
|
69
72
|
image = @image
|
70
73
|
image_path = File.join(task[:output_dir], @filename_prefix)
|
71
|
-
if task[:scale] != 1.0
|
74
|
+
if task[:scale] != 1.0
|
72
75
|
# if scale required, scale image
|
73
76
|
begin
|
74
|
-
image = @image.scale(task[:scale])
|
77
|
+
image = @image.scale(task[:scale])
|
75
78
|
rescue RuntimeError => e
|
76
79
|
message = "Failed to scale image, are you sure the original image "\
|
77
80
|
"is large enough to scale down this far (#{scale}) with this "\
|
@@ -91,19 +94,15 @@ module TileUp
|
|
91
94
|
end
|
92
95
|
|
93
96
|
def make_path(directory_path)
|
94
|
-
|
95
|
-
parts.each_index do |i|
|
96
|
-
upto = parts[0..i].join(File::SEPARATOR)
|
97
|
-
Dir::mkdir(upto) unless Dir::exists?(upto)
|
98
|
-
end
|
97
|
+
FileUtils.mkdir_p directory_path
|
99
98
|
end
|
100
99
|
|
101
100
|
def make_tiles(image, filename_prefix, tile_width, tile_height)
|
102
101
|
# find image width and height
|
103
|
-
# then find out how many tiles we'll get out of
|
102
|
+
# then find out how many tiles we'll get out of
|
104
103
|
# the image, then use that for the xy offset in crop.
|
105
|
-
num_columns = image.columns/tile_width
|
106
|
-
num_rows = image.rows/tile_height
|
104
|
+
num_columns = (image.columns/tile_width.to_f).ceil
|
105
|
+
num_rows = (image.rows/tile_height.to_f).ceil
|
107
106
|
x,y,column,row = 0,0,0,0
|
108
107
|
crops = []
|
109
108
|
|
@@ -136,7 +135,7 @@ module TileUp
|
|
136
135
|
ci = nil
|
137
136
|
end
|
138
137
|
end
|
139
|
-
|
138
|
+
|
140
139
|
end
|
141
140
|
|
142
|
-
end
|
141
|
+
end
|