Francesco Carusi (12022-04-22): > I'm working on an enhanced version of the drawtext filter and would like to > discuss with you about a minor change in its behavior related to line > spacing management. > In the current implementation the space between two lines of text is set > equal to the height of the highest glyph found in the text plus the optional > user defined "line_spacing" parameter (which defaults to 0): > > line_height = max_glyph_h + line_spacing > > This has some drawbacks: > 1) the line height depends on the text >     See image "line_height-old.png" (the blue lines where added by me) >     The filter is applied three times with tree slightly different texts: > the line_spacing parameter was not specified, >     but the actual line height changes due to the different heights of the > glyphs > 2) the line height is not consistent between the same text being rendered by > the filter and by external tools > > The proposed change is: > 1) the default line height is set to the font-defined line height > 2) the line_spacing parameter, if specified, sets the actual line height > (line_height = line_spacing) > 3) the default value of line_spacing is set to -1 (which means: use the > default line height) > > The image "line_height-new.png" shows the effect of the new behavior. > > Which is the impact of the change? > A) users using the line_spacing parameter would see less space between lines > B) users not using the line_spacing parameter would see (in most cases) more > space between lines > > Can the impact be mitigated? > Well, yes, we may add a new parameter named 'line_height' and deprecate > 'line_spacing', in this way anyone using line_spacing explicitly would not > see any change in the filter behavior. I don't like this solution but it may > help reducing the impact of the change. Hi. While your proposal shows merit in itself, it also feels like the first towards re-inventing a layout engine. The problem with line spacing is the tiniest of drawtext problems: look for right-to-left, ligatures and so much more. If you want to enhance the output of drawtext, I think it would be more efficient to choose a good layout engine library, Libre and portable, and to make it use it optionally. Regards, -- Nicolas George