Regardless of what .padding is set to, the Words are always relatively tightly packed.
I expected more whitespace when I called .padding(10). Is the padding a true/false setting or is there something missing. I don't see the padding value added anywhere in the code, just a check if it is set. If this is intentional, please clarify in the documentation/example.
Apologies for the lack of documentation. The padding option is indeed a boolean. It simply extends the word silhouettes by one pixel in all directions. If you need arbitrary padding, you can achieve this by simply using a smaller font size when rendering the words. I have found that a font size of 1px smaller works well for the output.
Just stumbled upon that and tried to work around it, but failed.
Unfortunately the font size trick doesn't work too well, because of apostrophes, smaller words being put inside empty spaces of bigger words and other effects of the layout algo. Using font difference more than 1px will produce a broken layout with overlapping words :-(
Works fine for me. Are you sure you are positioning the words correctly? Perhaps you could post an example.
Here's an example with 5px difference. Notice the business mixer phrase - you can clearly see that the b character would fit in the gap left to talent word. Unfortunately, after decreasing font size and after it re-centers and reduces it's size proportionally, the distances between letters also decrease proportionally, thus making the word more "compact" (and also shorter).
And here's an example without font size manipulation:
Fix #18: variable padding.
Oh jolly! You're the best Jason! :-)
I'll test it out in a few minutes...
I'll give back by PR-ing some of my enhancements, including deterministic cloud generation ;-)
That stroke trick was ingenius ;-) Congratulations on the idea...
However there's noticeable performance hit after enabling padding... I can't benchmark it further but I'd say about 20% performance loss as compared to stroke-less bitmap+layout generation.
This will only impact the performance of the initial sprite grab, which is not a bottleneck. If you are comparing padding=0 with something like padding=5, then it will of course take longer to find a layout because the text is bigger; a better comparison would be (padding=0, font-size=X) and (padding=5, font-size=X-5). The layout algorithm itself is unchanged.