Commit graph

3010 commits

Author SHA1 Message Date
artemp
979d706c26 move image_scaling traits into separate header to enable code sharing 2014-12-16 10:13:40 +01:00
Blake Thompson
0d2eb9cb5f Updates for Ref #2594 and #2592 (Related to #2491)
* Added support for scanline, stripped and tiled
 * Added new configuration options for TIFF:
   - method
   - tile_height (Default 0)
   - tile_width (Default 0)
   - rows_per_strip (Default 0)
 * Removed 'scanline' configuration option for TIFF.
 * Changed RGBA TIFFs to be ASSOCALPHA rather then UNASSOCALPHA
2014-12-15 02:52:32 +00:00
artemp
85d954ab6a make composite method templated and fix visibility issue
(reverts  1ff4125e92)
2014-12-12 11:39:36 +01:00
artemp
3cbe969f03 fix external visibility issue for explicit instantiations of scale_image_agg - ref #2587 2014-12-12 11:09:52 +01:00
artemp
72f437c52a tiff_reader - fix
( "...where the -Sy is due the reversal of direction from J increasing- down in raster space to Y increasing-up in model space.")
2014-12-12 10:18:34 +01:00
artemp
5dd87de782 template scale_image_agg on image_data_type to squash code duplication 2014-12-11 18:54:32 +01:00
artemp
b38ac5c2ca add no-op gray8 scaling 2014-12-11 11:06:44 +01:00
artemp
f921e1eef4 raster_colorizer - template colorize method on image_data type 2014-12-11 10:10:32 +01:00
artemp
dd22d34d07 formatting 2014-12-11 09:39:25 +01:00
artemp
218b22fba9 remove cast 2014-12-11 09:38:58 +01:00
artemp
5021a4e122 tiff_reader - fix end_y calc in read_stripped 2014-12-10 18:11:41 +01:00
artemp
74c96f0bda make bounding_box return optional<box2d<double>> to be consistent with current behavour 2014-12-10 12:53:39 +01:00
artemp
2efde962aa image_reader - add bounding_box virtual method 2014-12-10 10:44:51 +01:00
Dane Springmeyer
93c6207153 repack tiff_reader to avoid slop (saves 16 bytes) 2014-12-09 08:34:13 -05:00
artemp
303d625b7c tiff_reader - fix reading tiled tiffs + flip vertically output from TIFFReadRGBATile + cleaups 2014-12-09 12:25:21 +01:00
Dane Springmeyer
36d7e455ed tiff io: disable strip chopping to ensure we fail fast on 'tiff_dos_strip_chop.tif' from gdal autotests 2014-12-09 00:39:19 -05:00
Dane Springmeyer
fcf71c36d9 tiff io: avoid over-allocation + add more tests 2014-12-09 00:17:02 -05:00
Dane Springmeyer
8b0ba79d2a more debugging output for failed read_tile 2014-12-08 20:39:44 -05:00
Dane Springmeyer
24a9816913 test tiff photometric setting 2014-12-08 17:16:56 -05:00
Dane Springmeyer
f121d805a9 no need for TIFFRGBAImageOK 2014-12-08 17:12:44 -05:00
Dane Springmeyer
6ca1cd6c74 avoid crashing on images with alpha 2014-12-08 16:43:32 -05:00
Dane Springmeyer
cb3771fbe5 fix reading of tiled tiff tile dimensions for gray32f 2014-12-08 15:23:06 -05:00
Dane Springmeyer
bc3f59af12 new c++ tiff tests - refs #2491 2014-12-08 14:52:52 -05:00
artemp
7fcc4a0846 use TIFFReadTile (or TIFFReadEncodedTile) instead of TIFFReadRGBATile to have consistent orientation
(FIXME: python tests failures)
2014-12-08 18:55:40 +01:00
artemp
912771b8fd generic read_tiled<ImageData> initial implementation + read PHOTOMETRIC_RGB using high-level RGBA expanding interface 2014-12-08 15:51:00 +01:00
Dane Springmeyer
96baff431f use c++ style casts im tiff_reader 2014-12-05 13:59:20 -05:00
artemp
ce605e3982 use RAII for resource management 2014-12-05 18:01:45 +01:00
artemp
902858e55f tiff_reader: initial support for reading gray8/gray16/gray32f/rgba8/rgba16/rgba32f data
Note: current code only works with image data organized in strips. Tile-orientated reading needs implementing
2014-12-05 17:35:26 +01:00
Dane Springmeyer
d6e9126132 fix linking of scale_image_agg - refs #2587 2014-12-05 09:43:57 -05:00
Blake Thompson
bf5c532269 Series of changes for the tiff encoder:
* Added configuration options for the TIFF encoder. The options are:
   - compression: adobe_deflate(default), deflate, lzw, none
   - zlevel: 0-9
   - scanline: 1,0 (Forces scanline encoding)
 * Fixed bug in encoder with scanline where memory was being modified
 * by TIFFWriteScanline. A buffer is now created for each row to prevent
 * modification of the underlying image_data.
2014-12-04 17:11:33 -05:00
artemp
38da080f82 make concrete image_data type names more expressive and explicit about color channels/depth:
image_data_32 -> image_data_rgba8
image_data_8  -> image_data_gray8
image_data_16 -> image_data_gray16
image_data_float32  -> image_data_gray32f

NOTE: currently image_data_gray16::pixel_type = std::int16_t (signed 16 bit int) to match GDAL
should we support unsigned types?
2014-12-04 11:02:42 +01:00
artemp
3b3e255f5e add comment 2014-12-04 10:31:56 +01:00
Dane Springmeyer
f82d57f497 work in progress: start enhancing tiff reader to handle bits per sample 2014-12-03 18:37:27 -05:00
Dane Springmeyer
954d0db46c Merge branch 'master' of github.com:mapnik/mapnik into image_data_any 2014-12-03 13:53:14 -05:00
artemp
de7a268333 read single band as int16 then agg_scale and colorize in gray16 color space, output rgb8 (aka image_data_32)
NOTE: proof-of-concept needed re-factoring/duplicate code removal
2014-12-03 18:19:44 +01:00
artemp
802428712e initial image_data_any read(...) implementation - always read into image_data_32 2014-12-03 10:56:19 +01:00
artemp
1df9d89a70 add to image_reader and implement empty (placeholder)
```image_data_any read(unsigned x, unsigned y, unsigned width, unsigned height) final```
in png/jpeg/webp/tiff readers
2014-12-03 10:44:56 +01:00
Dane Springmeyer
1ff4125e92 fix visibility of mapnik::composite function to python bindings - refs #2587 2014-12-03 00:43:04 -05:00
Dane Springmeyer
4d39d2aac1 iwyu 2014-12-02 14:40:03 -05:00
Dane Springmeyer
946434002f handle/throw on invalid encoding for ucnv_open 2014-12-02 14:21:36 -05:00
artemp
19e3ce9035 gdal : experimenting with fetching gray scale single band as image_data_float32 2014-12-02 15:56:40 +01:00
artemp
6fec43bf9e gdal - read single band as image_data_float32
(scaling/compositing FIXME)
2014-11-28 12:51:23 +01:00
artemp
bf9c99e3d3 initial image_data_any implentation (work-in-progress) 2014-11-26 12:22:36 +01:00
artemp
333965b588 update copyright year 2014-11-20 15:25:50 +01:00
artemp
5e2a53bac9 c++ mapnik style 2014-11-20 14:35:50 +01:00
artemp
4f3521ac24 image_data: use std::size_t + various cleanups 2014-11-20 12:46:16 +01:00
Jiri Drbalek
cb46131bc5 move text-specific inverted y axis logic from vertex_cache to placement_finder 2014-11-13 12:51:36 +00:00
Jiri Drbalek
69fc93d87a add move constructor to vertex_cache 2014-11-13 12:51:36 +00:00
Jiri Drbalek
3013197de7 move vertex_cache and tolerance_iterator from text directory 2014-11-13 12:51:36 +00:00
Dane Springmeyer
437d486bbd fix building with PLUGIN_LINKING=static 2014-11-11 14:42:53 -08:00
Dane Springmeyer
3cbde2dc54 map.remove_all should clear other containers 2014-11-07 19:50:18 -05:00
Dane Springmeyer
183f182ef7 remove duplicate check for .woff font type 2014-11-07 19:04:50 -05:00
Dane Springmeyer
22bd30230a remove unneeded option 2014-11-04 11:41:23 -05:00
Dane Springmeyer
d6b74443a7 use non static ref to global memory font cache 2014-11-04 11:41:23 -05:00
Dane Springmeyer
808e820164 smarter type handling for Map parameters 2014-10-27 09:24:33 -07:00
Dane Springmeyer
ecb529cba2 handle boost::spirit::qi::expectation_failure 2014-10-24 21:36:19 -07:00
Dane Springmeyer
a1314935af fix initialization order in proj_transform 2014-10-22 15:34:17 -07:00
Dane Springmeyer
ca3078938c simplify and install mapnik wkt and json libs 2014-10-22 00:09:22 -07:00
Dane Springmeyer
46a41f3ae1 initialize proj_transform::is_source_equal_dest_ 2014-10-22 00:08:48 -07:00
Dane Springmeyer
aae4a20ec9 fix various -Wunused-parameter warnings 2014-10-21 20:23:17 -07:00
Dane Springmeyer
d25f0c316a silence more warnings 2014-10-21 17:44:47 -07:00
Dane Springmeyer
7acaa3068a silence warning in font_engine_freetype 2014-10-21 16:54:46 -07:00
Dane Springmeyer
83588937b9 silence boost warnings 2014-10-21 16:37:27 -07:00
artemp
295f15bd51 ImageData -> image_data (remove camel-case) 2014-10-21 16:06:27 +01:00
Dane Springmeyer
18183aed2a fix a few -Wunused-parameter warnings 2014-10-20 22:28:40 -07:00
Dane Springmeyer
02b7537d6d remove unused/supported second arg to parse_expression 2014-10-20 22:20:04 -07:00
artemp
6eb65434c5 upgrade to new get<value_type, keys::key> 2014-10-17 20:45:15 +01:00
artemp
bbdc136b5b fix names + update property_meta_type tuple 2014-10-17 18:44:26 +01:00
Dane Springmeyer
dac7170616 break out topojson parsing grammar 2014-10-15 18:59:39 -07:00
artemp
0aac586f7c use enclosing namespaces in core lib 2014-10-15 15:14:21 +01:00
Dane Springmeyer
52e9531179 always return a value from evaluate_displacement 2014-10-14 21:35:20 -07:00
Dane Springmeyer
09f91a24a0 Merge pull request #2523 from mapycz/halign-adjust-immutable
halign adjust with immutability of style objects in mind
2014-10-13 18:47:37 -07:00
Dane Springmeyer
9a78c6dfe1 improve register_datasources + drop filesystem v2 support since v3 is default in boost >= 1.46 2014-10-13 17:43:14 -07:00
artemp
1e3b82a245 add new line 2014-10-13 14:23:06 +01:00
Jiri Drbalek
1252369292 add horizontal-alignment="adjust" with immutability of style objects in
mind
2014-10-13 12:16:48 +00:00
Dane Springmeyer
9dae68ebbf add builds scripts for json/wkt grammars 2014-10-13 01:07:11 -07:00
Dane Springmeyer
44bc5b59d6 break out wkt/json grammars into separate libraries 2014-10-13 01:06:36 -07:00
Dane Springmeyer
885a98f9c1 improve handling of format properties - refs #2516
- changes evaluated_format_properties_ptr to unique_ptr
 - refactors group symbolizer helper to keep scope by
   having each "thunk" own its helper
 - glyph_info can now be noncopyable
 - format node children now need an owner for their
   evaluated_format_ptr so the enclosing parent layout
   now allocates and holds pointers in a deque
 - plus other noncopyable/move constructor fixes
2014-10-12 21:41:59 -07:00
Dane Springmeyer
38b944aef7 break apart expression+transform grammars - refs #2526 2014-10-12 16:36:33 -07:00
Dane Springmeyer
a9f58c70b4 shuffle complexity into layout constructor
- should reduce mistakes in refactoring
  - gives top level ownership of evaluated_format_properties_ptr to a layout node (#2516)
  - not sure ^^ if this actually keeps it in scope enough for rendering?
  - moves data transformation functions off of text_symbolizer_properties
2014-10-12 16:07:26 -07:00
Dane Springmeyer
f3eba54078 noncopyable glyph_info - refs #2516 2014-10-12 14:24:57 -07:00
Dane Springmeyer
2000c1713d in place construction of glyph_positions 2014-10-12 13:54:07 -07:00
Dane Springmeyer
4e7feaf747 move glyph_positions to new cpp 2014-10-12 13:46:35 -07:00
Dane Springmeyer
39ff0945ef in place construction of pixel_positions 2014-10-12 13:38:18 -07:00
Dane Springmeyer
e4c895d4c1 zero copy usage of text_line 2014-10-12 13:23:03 -07:00
Dane Springmeyer
a648538bcd add more code comments to placement_finder to help explain layouts 2014-10-12 12:18:59 -07:00
Dane Springmeyer
a8c8ea9ac4 reserve space for glyph_pos in renderer prepare_glyphs 2014-10-11 22:59:56 -07:00
Dane Springmeyer
3d142c2712 move evaluate_text_properties to standalone function - refs #2516 2014-10-11 22:48:00 -07:00
Dane Springmeyer
e6a66aaaba finish work to pass font_feature_settings by value - refs #2516 2014-10-11 22:39:40 -07:00
Dane Springmeyer
a61364d263 revert halign support - refs #2426 2014-10-11 20:03:56 -07:00
Dane Springmeyer
477d6cc7ee zero-copy text_item insertion 2014-10-11 19:12:15 -07:00
Dane Springmeyer
eabdf46118 drop unwise glyph_info caching - reverts 99a46f6910 - re-opens #2334 2014-10-11 17:32:41 -07:00
Dane Springmeyer
d4f0d51a91 cairo text rendering: avoid double call of set_character_sizes for text and halo 2014-10-11 16:59:22 -07:00
Dane Springmeyer
ba285aa9fa remove unused (after 8bc7a56cda) font_face::char_height_ 2014-10-11 15:55:15 -07:00
Dane Springmeyer
b275144004 make cairo_context.add_text more like agg::text_renderer 2014-10-11 13:08:28 -07:00
Dane Springmeyer
51620e2b4d cairo: avoid creating evaluated_format_properties_ptr on stack 2014-10-11 11:37:16 -07:00
Dane Springmeyer
e1eb9fa5b1 reduce pointer usage in text renderer - refs #2516 2014-10-10 18:01:24 -07:00
Dane Springmeyer
8bc7a56cda use real max glyph height
- avoids breakage on fonts lacking an `X` glyph (#2506)
      - avoids needing to create and mutate a temporary glyph (#2516)
      - lots of minor visual changes - mostly improvements notably more correct collision boxes for lines with tall glyphs
2014-10-10 15:18:11 -07:00
artemp
74e872c48b avoid storing evaluated text properties in text_symbolizer_properties (all style related strucures must be read-only)
make process(..) method const
2014-10-10 12:38:06 +01:00
Dane Springmeyer
c6ed108a72 start marking as much of the text structures as const as possible - refs #2516 2014-10-09 23:00:39 -07:00