I made some changes to the mapserver 7 source code that achieve what I want (I'm now able to switch between aliased and antialiased lines, based on the ANTIALIAS keyword in the STYLE section).
I tried to put up a pull request for it but I'm having problems compiling the code in the 'master' branch - compilation errors for mapmetadata.c. My code was branched off the release-7 branch and did not have that problem. The cmake command I used was cmake -DCMAKE_PREFIX_PATH=/usr/local/ WITH_GDAL=$GDAL_DIR -DWITH_FRIBIDI=OFF -DWITH_WFS=OFF -DWITH_WCS=OFF -DWITH_PROJ=/usr/local/lib -DWITH_LIBXML2=OFF WITH_POSTGIS=/usr/bin -DWITH_CLIENT_WFS=OFF -DWITH_WMS=OFF -DWITH_CLIENT_WMS=OFF -DWITH_CURL=OFF -DWITH_SOS=OFF -DWITH_PHP=OFF -DWITH_PERL=OFF -DWITH_RUBY=OFF -DWITH_JAVA=ON -DWITH_CSHARP=OFF -DWITH_HARFBUZZ=OFF -DWITH_PYTHON=ON -DWITH_GEOS=0 -DWITH_SVGCAIRO=OFF -DWITH_ORACLESPATIAL=OFF -DWITH_CAIRO=OFF -DWITH_THREAD_SAFETY=ON -DWITH_FCGI=OFF -DWITH_GIF=0 ../ >../configure.out.txt Any suggestions? Thanks On Thu, Oct 19, 2017 at 11:04 AM, Erik H <[email protected]> wrote: > I just did what Andreas spelled out yesterday: > > > > > > > > *Simply changing the typedef in line 91 of mapagg.cpp from typedef > mapserver::renderer_scanline_aa_solid<renderer_base> renderer_scanline;to > typedef mapserver::renderer_scanline_bin_solid<renderer_base> > renderer_scanline;* > > > However, I'd like to be able to switch between rasterizer via some option > in the .map file, so I'd welcome any suggestion on how to do that. > > On Thu, Oct 19, 2017 at 10:07 AM, Lime, Steve D (MNIT) < > [email protected]> wrote: > >> Glad this was figured out! What was the code change exactly? >> ------------------------------ >> *From:* mapserver-users <[email protected]> on >> behalf of Erik H <[email protected]> >> *Sent:* Wednesday, October 18, 2017 8:07:42 PM >> *To:* Eichner, Andreas - SID >> *Cc:* [email protected] >> *Subject:* Re: [mapserver-users] Draw roads WITHOUT anti-aliasing >> >> Andreas, >> >> I made that change in mapagg.cpp and it seems to do exactly what I need. >> Wunderbar! >> >> As for providing an option to switch rasterizer based on an option, how >> about reviving the FORMATOPTION 'ANTIALIAS'? >> >> Thanks, Erik >> >> On Wed, Oct 18, 2017 at 9:18 AM, Eichner, Andreas - SID < >> [email protected]> wrote: >> >>> Nope, this won't work: >>> >>> r->default_gamma = atof(msGetOutputFormatOption( format, "GAMMA", >>> "0.75" )); >>> if(r->default_gamma <= 0.0 || r->default_gamma >= 1.0) { >>> r->default_gamma = 0.75; >>> } >>> >>> From mapagg.cpp lines 844-847 forces 0 < GAMMA < 1 >>> Also note that MapServer uses a linear gamma function defined as >>> >>> double operator() (double x) const >>> { >>> if(x < m_start) return 0.0; >>> if(x > m_end) return 1.0; >>> return (x - m_start) / (m_end - m_start); >>> } >>> >>> Where m_start is _always_ set to 0 and m_end is set to the GAMMA value >>> given by you (or the default 0.75). >>> I think someone should check this - to me it seems a power function was >>> intented... >>> >>> HTH >>> >>> > -----Ursprüngliche Nachricht----- >>> > Von: mapserver-users [mailto:[email protected]] >>> Im >>> > Auftrag von [email protected] >>> > Gesendet: Mittwoch, 18. Oktober 2017 14:05 >>> > An: [email protected] >>> > Betreff: Re: [mapserver-users] Draw roads WITHOUT anti-aliasing >>> > >>> > Hi, >>> > >>> > >>> > >>> > >>> > I did some quick tests with : >>> > >>> > >>> > >>> > >>> > OUTPUTFORMAT >>> > NAME "png_G0" >>> > DRIVER AGG/PNG >>> > MIMETYPE "image/png" >>> > IMAGEMODE RGB >>> > EXTENSION "png" >>> > FORMATOPTION "GAMMA=0.0" >>> > END >>> > >>> > >>> > >>> > >>> > and shp2img with options -i >>> > >>> > >>> > eg: shp2img -m 01_polygon_td_poly.map -o 01_polygon_td_poly.png -i >>> > png_G0 >>> > >>> > >>> > >>> > >>> > >>> > I did some tests with both polygons, polygon outlines and lines and >>> they >>> > all seems to have anti-aliasing as far as I could see. >>> > >>> > Would this be an ok way to test it? I also have some people that would >>> > like to do lines without anti-aliasing for a strange reason. >>> > >>> > >>> > >>> > >>> > >>> > Lars Schylberg >>> > >>> > >>> > >>> > >>> > >>> > -----Originalmeddelande----- >>> > > Från: "Rahkonen Jukka (MML)" <[email protected]> >>> > > Till: "Eichner, Andreas - SID" <[email protected]>, >>> "Erik >>> > H" <[email protected]> >>> > > Kopia: [email protected] >>> > > Datum: 2017-10-18 11:13 >>> > > Ämne: Re: [mapserver-users] Draw roads WITHOUT anti-aliasing >>> > > >>> > > Hi, >>> > > >>> > > I suppose that the amount of antialiasing with AGG is set with >>> "gamma" >>> > parameter. Mapserver supports that at least for polygons as documented >>> > in http://www.mapserver.org/mapfile/outputformat.html but you could >>> try >>> > if using gamma=0.0 has an effect on lines as well. It may be that it >>> > does not because search >>> > > >>> > https://github.com/mapserver/mapserver/search?utf8=%E2%9C%93 >>> &q=gamma&typ >>> > e= >>> > > seems to find only something that is tied to polygon outlines >>> > > https://github.com/mapserver/mapserver/blob/branch-7- >>> > 0/renderers/agg/include/agg_renderer_outline_aa.h >>> > > >>> > > >>> > > If gamma does not work for lines then it could be worth making a >>> > feature request for adding a new formatoption "GAMMA_LINE=[]. >>> > > >>> > > Couple of Mapnik links dealing with the same issue: >>> > > http://gis.19327.n8.nabble.com/Turning-off-anti-aliasing- >>> > td5339458.html >>> > > http://mapnik.org/mapnik-reference/#3.0.6/line-gamma-method >>> > > >>> > > -Jukka Rahkonen- >>> > > >>> > > >>> > > >>> > > -----Alkuperäinen viesti----- >>> > > Lähettäjä: mapserver-users [mailto:mapserver-users- >>> > [email protected]] Puolesta Eichner, Andreas - SID >>> > > Lähetetty: 18. lokakuuta 2017 9:57 >>> > > Vastaanottaja: Erik H <[email protected]> >>> > > Kopio: [email protected] >>> > > Aihe: Re: [mapserver-users] Draw roads WITHOUT anti-aliasing >>> > > >>> > > Damn... missed attaching the images. >>> > > >>> > > > -----Ursprüngliche Nachricht----- >>> > > > Von: mapserver-users [mailto:mapserver-users- >>> > [email protected]] >>> > > > Im Auftrag von Eichner, Andreas - SID >>> > > > Gesendet: Mittwoch, 18. Oktober 2017 08:28 >>> > > > An: Erik H >>> > > > Cc: [email protected] >>> > > > Betreff: Re: [mapserver-users] Draw roads WITHOUT anti-aliasing >>> > > > >>> > > > Hi, >>> > > > >>> > > > I just meant that it seems to be pretty easy to implement aliased >>> > > > rendering with AGG. >>> > > > Simply changing the typedef in line 91 of mapagg.cpp from >>> > > > >>> > > > typedef mapserver::renderer_scanline_aa_solid<renderer_base> >>> > > > renderer_scanline; >>> > > > >>> > > > to >>> > > > >>> > > > typedef mapserver::renderer_scanline_bin_solid<renderer_base> >>> > > > renderer_scanline; >>> > > > >>> > > > turns of anti-aliased rendering. I've attached the output of >>> > "shp2img >>> > > > -m line_simple.map" from the msautotests. >>> > > > An additional member in class AGG2Renderer for the aliased >>> > rasterizer >>> > > > and conditionally passing one or the other to render_scanlines() >>> > > > depending on some value of strokeStyleObj might be enough. >>> > > > >>> > > > Regards >>> > > > >>> > > > > -----Ursprüngliche Nachricht----- >>> > > > > Von: Erik H [mailto:[email protected]] >>> > > > > Gesendet: Dienstag, 17. Oktober 2017 17:34 >>> > > > > An: Eichner, Andreas - SID >>> > > > > Cc: Richard Greenwood; [email protected] >>> > > > > Betreff: Re: [mapserver-users] Draw roads WITHOUT anti-aliasing >>> > > > > >>> > > > > As for Andreas' remark about 'simply the use of another scanline >>> > > > > rasterizer.' - I'm sorry but I'm not much of a C++ developer. If >>> I >>> > > > have >>> > > > > to do rasterizing, I'd skip MapServer altogether and generate the >>> > > > > PNG >>> > > > in >>> > > > > Java. >>> > > > > >>> > > > _______________________________________________ >>> > > > mapserver-users mailing list >>> > > > [email protected] >>> > > > https://lists.osgeo.org/mailman/listinfo/mapserver-users >>> > > _______________________________________________ >>> > > mapserver-users mailing list >>> > > [email protected] >>> > > https://lists.osgeo.org/mailman/listinfo/mapserver-users >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > -- >>> > >>> > >>> _______________________________________________ >>> mapserver-users mailing list >>> [email protected] >>> https://lists.osgeo.org/mailman/listinfo/mapserver-users >>> >> >> > >
_______________________________________________ mapserver-users mailing list [email protected] https://lists.osgeo.org/mailman/listinfo/mapserver-users
