Commit graph

48 commits

Author SHA1 Message Date
Dane Springmeyer
acb3bb0821 trim down image_32 - refs #2627 2015-01-08 13:16:32 -08: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
333965b588 update copyright year 2014-11-20 15:25:50 +01:00
artemp
fdd646aa5b more c++ 2014-10-21 15:52:01 +01:00
Dane Springmeyer
f8ccbf3ded fix compile of graphics.hpp 2014-07-23 14:32:48 -07:00
Dane Springmeyer
3defa77d88 remove big endian support - closes #2313 2014-07-23 14:16:44 -07:00
Dane Springmeyer
8dcd85a708 iwyu 2014-07-23 14:02:36 -07:00
Dane Springmeyer
64e70fb374 iwyu 2014-07-22 22:40:39 -07:00
artemp
b6bab7d0bb move cairo renderer into its own subdir 2014-06-06 13:38:00 +01:00
Dane Springmeyer
410c65eb37 consistenly use std::memcpy and std::memset 2013-11-09 23:02:24 -08:00
Dane Springmeyer
c5b7cd0e3e remove dead code 2013-07-23 16:10:00 -04:00
Dane Springmeyer
c011524b67 add mapnik.Image.premultiplied() to query status of pixel premultiplication 2013-07-02 16:01:23 -04:00
Dane Springmeyer
3b807db7e1 avoid gcc unsigned/signed comparison warning 2013-03-18 16:54:26 -07:00
Dane Springmeyer
7d868558d7 fix a variety of msvc compiler warnings about signed/unsigned implicit conversion 2013-03-15 13:37:48 -07:00
artemp
f25d4d9279 + implement cairo_context wrapper and remove unnecessary dependencies
( cairomm, libsigc++)
2013-01-09 17:00:30 +00:00
Dane Springmeyer
eebc8cc73e add image/grid clear methods to make it easier to quickly re-use previously allocated objects for rendering - closes #1571 2012-11-11 21:35:50 -08:00
Dane Springmeyer
eb4740b50f fix behavior of compositing via python api now that we have premultiplication issues sorted out in core - refs #1262 and #314 and #1211 2012-06-21 15:44:57 -04:00
Dane Springmeyer
76211243a4 remove now unused blending modes as they have been replaced with AGG compositing modes - refs #1206 2012-06-06 16:16:30 -07:00
Artem Pavlenko
aad7c5e384 + implement compositing for text
+ refactor image_32
2012-05-09 12:39:23 +01:00
Hermann Kraus
828316bffd Remove unused file. 2012-02-12 23:44:05 +01:00
Dane Springmeyer
17d13cff67 whitespace fixes - closes #911 2012-02-01 17:53:35 -08:00
kunitoki
eb13c8c6be - another bunch of coding style fixes in includes 2011-10-23 16:09:47 +02:00
kunitoki
f1fb0c1939 - fix copyright to 2011 (script to do this will follow) 2011-10-23 15:04:25 +02:00
Dane Springmeyer
0ec7ef6d46 renderers can now report to image if any features have been rendered via im.painted(), and im.background now uses boost optional to allow easy detection of whether a background has been set - closes #875 2011-09-11 06:24:26 +00:00
Dane Springmeyer
fc6227afda better handling of alpha blending - patch from cdestigter - closes #674 2010-12-10 19:31:57 +00:00
Dane Springmeyer
b3810a5f6a stub in new alpha manipulation functions for mapnik image - #609 2010-09-24 15:37:19 +00:00
Marcin Rudowski
bd8f189bd1 fix raster blending, ported r2137, fixing #589 2010-08-12 06:59:35 +00:00
Artem Pavlenko
246731874b + apply 'mapnik-format' to *.cpp *.hpp 2010-06-02 11:03:30 +00:00
Dane Springmeyer
3a44dd3258 + use rint(v) instead of int(round(v)) + add rint implementation - msvc hasn't got one + minor cleanups 2010-03-11 23:19:12 +00:00
Artem Pavlenko
47dc1e197b + merge mapnik2 to trunk 2009-12-16 20:02:06 +00:00
Dane Springmeyer
0ccdac028e merge r1492 from 0.7 branch into trunk 2009-12-15 22:16:39 +00:00
Dane Springmeyer
d1f1f6971b avoid loss of true black on BIG_ENDIAN 2009-11-02 23:55:16 +00:00
Dane Springmeyer
c29c8b459e add BIG_ENDIAN support to graphics rectangle methods 2009-11-02 22:48:39 +00:00
Dane Springmeyer
1b4443e800 add support for BIG_ENDIAN to 'blendPixel2', to support propertly colored text labels 2009-11-02 19:57:02 +00:00
Artem Pavlenko
a3a5859466 Patch from David Eastcott :
1.  Modified Text Symbolizer

  a) corrected line fragment centering (for 2nd and subsequent lines, when line breaks occur).

  b) adjusted vertical alignment calculation so that:
      i)      middle -> has the center of the text line(s) at the point origin
      ii)     bottom -> has the text line(s) below the point origin
      iii)    top -> has the text line(s) above the point origin

  c) added new text_symbolizer attribute: 'wrap_before', value range: true/false, default == false

     allows line breaks at first wrap_char before wrap_width as an alternative to the original
     which was to create the line break at the first wrap_char after wrap_width

  d) added new text_symbolizer attribute: 'horizontal_alignment', value range: left/middle/right, default == middle
      i)      left -> has all text line(s) to left of the point origin
      ii)     middle -> has all text line(s) centered on the the point origin
      iii)    right -> has all text line(s) to the right of the point origin

      NOTE:   dx, dy position adjustments are applied after alignments and before Justify.

  e) added new text_symbolizer attribute: 'justify_alignment', value range: left/middle/right, default == middle
      i)      left -> after alignments, has all text line(s) are left justified (left to right reading)
      ii)     middle -> after alignments, has all text line(s) center justified
      iii)    right -> after alignments, has all text line(s) right justified (right to left reading)

  f) added new text_symbolizer attribute:  'opacity', value range: 0.0 thru 1.0; 1.0 == fully opaque

  g) modified positioning to compensate for both line_spacing and character_spacing, to ensure proper
     centering of the text envelope.  Also ensure that centering occurs correctly even if no wrapping
     occurs.  Line spacing is uniform and consistent and compensates for errors between text_size and
     the actual size (ci.height is inconsistent, depending on case and character); fixes issue with
     multi-line text where some lines have a slight gap and others are compressed together.


2.  Modified shield_symbolizer

  a) added the attributes:
      i)      allow_overlap
      ii)     vertical_alignment
      iii)    horizontal_alignment
      iv)     justify_alignment
      v)      wrap_width
      vi)     wrap_character
      vii)    wrap_before
      viii)   text_convert
      ix)     line_spacing
      x)      character_spacing
      xi)     opacity

  b)  added new shield_symbolizer attribute: 'unlock_image', value range: true/false, default == false
      i)  false == image and text placement behaviour same as before
      ii) true == image placement independant of text, image is always centered at geometry point, text placed per attributes,
                  dx/dy only affect text.

      Allows user to create point markers with text, but both the text and image rendering collision detection are done
      as a pair (they come and go together - solves problem if using point_symbolizer and text_symbolizers where one or the
      other are omitted due to overlaps, but not both)

  c)  extended choices for the attribute 'placement' to include vertex; effect is limited to the shield_symbolizer

      Allows an attempted placement at every vertex available, gives additional shield placement volume when using line geometry

  d)  ensured that the text placement was not updating the detector unless a shield image was actually placed.

  e)  added new shield_symbolizer attribute: 'no_text', value range: true/false, default = false

      When set true, the text for the feature is ignored ('space' subsituted) so that pure graphic symbols can be used
      and no text is rendered over top of them.
2009-10-19 13:52:53 +00:00
Artem Pavlenko
4a3a9128ec + move compositing modes implementation out of Image class 2009-03-31 10:08:33 +00:00
Artem Pavlenko
2eec236fc2 + applied "hill shading" patch from Marcin Rudowski
a) Raster opacity
   b) Raster merging modes (TODO:add more modes, consider agg impl)
   c) Raster scaling algos: fast,bilinear,bilinear8
      (TODO: add alpha support in bilinear8) 
   d) improvements to png256

   *Great work, thanks!*
2009-03-29 11:05:20 +00:00
Dane Springmeyer
f5127d6ee4 Remove reference to CAIRO_HAS_IMAGE_SURFACE macro since this is not supported until cairo 1.8 release 2009-01-28 21:11:10 +00:00
Artem Pavlenko
e3658a7a1a + applied mapnik-image32-from-cairo.patch (jonb) 2009-01-15 22:51:12 +00:00
Artem Pavlenko
a07767ef3d + (c++) renamed mapnik::Color to mapnik::color
+ (c++) added mapnik::color ctor from named colours (TODO: consider not to export color_factory) 
+ (Python) fixed pickling
+ (Python) added to_hex_string method
2009-01-14 12:10:24 +00:00
Artem Pavlenko
651cdbe968 added support for saving images into Python String object
(NOTE: some methods have different signitures now- API changed)
2008-01-25 14:40:48 +00:00
Artem Pavlenko
96daa6e996 applied patch from gravitystorm (see ticket:64) 2008-01-21 19:59:06 +00:00
David
3c97052c5e - more include order reversion 2007-10-08 18:10:31 +00:00
Artem Pavlenko
4e427f978c fixed bug introduced in r495 2007-08-29 14:06:35 +00:00
Artem Pavlenko
b47bfa185a couple optimizations 2007-08-09 14:13:41 +00:00
Artem Pavlenko
d959701d5a 1. added boost::optional<T> to/form Python converter
2. make background color optional (Map object)
3. exposed 'blend' method for Image object
2007-08-01 09:59:23 +00:00
Artem Pavlenko
f1393cc019 1. hit_test implementation for geometry objects:
bool hit_test(double x, double y, double tol);
       
2. added image_view(unsigned x, unsigned y, unsigned width, unsigned height)
   allowing to select region from image data e.g (in Python):

    im = Image(2048,2048)
    view = im.view(0,0,256,256)
    save_to_file(filename,type, view)
    
3. changed envelope method to return vy value in datasource classes

4. features_at_point impl for shape and postgis plug-ins
2006-11-25 11:02:59 +00:00
Artem Pavlenko
992af4747d 1. move include to mapnik/include
2. update demos,bibdibgs etc.
2006-10-04 11:22:18 +00:00
Renamed from include/graphics.hpp (Browse further)