[GRASS-dev] [GRASS GIS] #72: PNG driver: boundary rendering is off by one pixel
GRASS GIS
trac at osgeo.org
Thu Jul 25 13:31:53 PDT 2013
#72: PNG driver: boundary rendering is off by one pixel
-------------------------------------------+--------------------------------
Reporter: hamish | Owner: grass-dev@…
Type: defect | Status: new
Priority: critical | Milestone: 6.4.4
Component: Default | Version: svn-develbranch6
Keywords: d.vect, rendering, PNG_DRIVER | Platform: Unspecified
Cpu: Unspecified |
-------------------------------------------+--------------------------------
Comment(by mmetz):
Replying to [comment:24 mlennert]:
> Replying to [comment:23 mmetz]:
> > Replying to [comment:22 hamish]:
> > > Hi,
> > >
> > > there is a similar off-by-one problem in the Cairo driver for 6.4
and 6.5, very easy to reproduce:
> > >
> > {{{
> > export GRASS_WIDTH=100
> > export GRASS_HEIGHT=100
> > d.mon start=cairo
> > d.mon stop=cairo
> > }}}
> > >
> > > you will see a single pixel black line along both the right and
bottom edges of the resulting map.png file. (trouble if you wanted to use
GRASS_TRANSPARENT=TRUE)
> >
> > This has been introduced by you with r12527. Reverting r12527 removes
the single pixel black line along both the right and bottom edges. Do you
remember by any chance the reason for r12527?
>
> It's explained in the mailing list message referenced in the changelog:
>
> [http://grass.fbk.eu/pipermail/grass5/2004-February/013625.html]
>
> "I was having a look at why d.frame's boxes don't line up properly.."
This seems to be two problems at once. d.frame tries to draw a one pixel
wide black border around each frame, but does so outside the frame. That
means that each frame is eating away one row / column from each adjacent
frame, resulting in 2 pixel wide borders, thus "you can see that the
frames are drawn one pixel to wide and tall".
The fact that d.frame draws a border outside the frame is due to
D_show_window() which draws outside the current screen window.
The ideal solution would be if D_show_window() would not draw a border
outside the current screen window and if d.frame would leave a one pixel
wide gap between frames to draw a border between frames in that gap.
--
Ticket URL: <https://trac.osgeo.org/grass/ticket/72#comment:25>
GRASS GIS <http://grass.osgeo.org>
More information about the grass-dev
mailing list