Calculate text edge once upon creating images instead on demand.
Don't split by words. Handle spacing while matching individual chars. Tolerate space after chars for special occasions like period char. This allows variable space length and eliminates bug where space between period and colon is considered space char.