tileup 0.1.2 → 0.1.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.
Files changed (3) hide show
  1. data/bin/tileup +10 -8
  2. data/lib/tileup.rb +10 -0
  3. metadata +2 -2
data/bin/tileup CHANGED
@@ -20,13 +20,15 @@ options = {
20
20
  }
21
21
 
22
22
  OptionParser.new do |o|
23
- o.on('--in=input_file', " Required input file, your large image to tile up") { |input_filename| options[:input_filename] = input_filename }
24
- o.on('--prefix=map_tile', "Prefix to append to tile files, e.g. --prefix=my_tile => my_tile_[XN]_[YN].png") { |prefix| options[:filename_prefix] = prefix }
25
- o.on('--tile-width=256', "Tile width, should normally equal tile height") { |width| options[:tile_width] = width }
26
- o.on('--tile-height=256', "Tile height, should normally equal tile width") { |height| options[:tile_height] = height }
27
- o.on('--auto-zoom=', Integer, "Automatically scale input image N times, must be a number"){ |zooms| options[:auto_zoom_levels] = zooms }
28
- o.on('--output-dir=', "Output directory (will be created if it doesn't exist)") { |output_dir| options[:output_dir] = output_dir }
29
- o.on('-v', '--verbose', "Enable verbose logging") { |verbose| options[:verbose] = true }
23
+ o.on('--in=input_file', " Required input file, your large image to tile up.") { |input_filename| options[:input_filename] = input_filename }
24
+ o.on('--prefix=map_tile', "Prefix to append to tile files, e.g. --prefix=my_tile => my_tile_[XN]_[YN].png.") { |prefix| options[:filename_prefix] = prefix }
25
+ o.on('--tile-width=256', "Tile width, should normally equal tile height.") { |width| options[:tile_width] = width }
26
+ o.on('--tile-height=256', "Tile height, should normally equal tile width.") { |height| options[:tile_height] = height }
27
+ o.on('--auto-zoom=', Integer, "Automatically scale input image N times, must be a number."){ |zooms| options[:auto_zoom_levels] = zooms }
28
+ o.on('--output-dir=', "Output directory (will be created if it doesn't exist).") { |output_dir| options[:output_dir] = output_dir }
29
+ o.on('--dont-extend-incomplete-tiles',
30
+ "Do not extend edge tiles if they do not fill an entire tile_width x tile_height. By default tileup will extend tiles to tile_width x tile_height if required.") {|e|options[:extend_incomplete_tiles] = false}
31
+ o.on('-v', '--verbose', "Enable verbose logging.") { |verbose| options[:verbose] = true }
30
32
  o.on('-h', '--help', "You're looking at it.") { puts o; exit }
31
33
  begin
32
34
  o.parse!
@@ -41,4 +43,4 @@ if options[:input_filename].nil?
41
43
  exit 1
42
44
  end
43
45
 
44
- TileUp::Tiler.new(options[:input_filename], options)
46
+ TileUp::Tiler.new(options[:input_filename], options)
@@ -13,6 +13,7 @@ module TileUp
13
13
  tile_height: 256,
14
14
  filename_prefix: "map_tile",
15
15
  output_dir: ".",
16
+ extend_incomplete_tiles: true,
16
17
  verbose: false
17
18
  }
18
19
  @options = OpenStruct.new(default_options.merge(options))
@@ -129,9 +130,18 @@ module TileUp
129
130
 
130
131
  crops.each do |c|
131
132
  ci = image.crop(c[:x], c[:y], tile_width, tile_height, true);
133
+
134
+ # unless told to do otherwise, extend tiles in the last row and column
135
+ # if they do not fill an entire tile width and height.
136
+ if @options.extend_incomplete_tiles && (c[:row] == num_rows - 1 || c[:column] == num_columns - 1)
137
+ # fill to width height, start from top left corner.
138
+ ci = ci.extent(tile_width, tile_height, 0, 0)
139
+ end
140
+
132
141
  print "Saving tile: #{c[:row]}, #{c[:column]}..." if @options.verbose
133
142
  ci.write("#{filename_prefix}_#{c[:column]}_#{c[:row]}.#{@extension}")
134
143
  print "\rSaving tile: #{c[:row]}, #{c[:column]}... saved\n" if @options.verbose
144
+
135
145
  ci = nil
136
146
  end
137
147
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tileup
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-02-23 00:00:00.000000000 Z
12
+ date: 2013-04-16 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rmagick