Fri 16 Jan 2015 10:08:57 AM UTC, original submission:
Glyphs that consist of only a single, narrow feature, (for example, a sans serif 'I' glyph) it can end up not being rendered at certain sizes/resolutions because the bounding box ends up with either a zero width or height, and no raster is allocated.
OTOH, a glyph with similar narrow features (for example, a sans serif 'E' where the vertical stem is likely to be a similar width to the 'I' mentioned earlier) will be drawn due to the effective drop-out compensation during scan conversion.
In the interests of performance, and since only poorly designed/hinted glyphs suffer the problem, I don't think it would be sensible to attempt "real" drop-out compensation when calculating the bounding box.
If we provide a slightly more "liberal" fallback case in the event of either the bbox width or height being zero, we'll allow the drop-out compensation to do its work even on these very narrow glyphs - suggested patch attached (0001-raster-add-fallback-for-glyph-with-degenerate-bbox.patch).
With this applied, there are a large number of progressions in the Ghostscript low resolution regression tests, as well as resolving the specific case in question.
(I hate doing this) The font that inspired this is a subset (it reached us embedded in a PDF) of Autodesk RomanS, as the font is copyright, I'd rather not attach it here, but I can make it available for testing if required.
|