Creo que te complicas un poco, porque en vez de hacer la imagen del texto y luego verificar el ancho en pixeles, sería más fácil establecer un máximo de caracteres por línea y usar
wordwrap() antes de agregarlo a la imagen.
Ahora, cómo saber cuál es el máximo de caracteres por línea?... sencillo, haz pruebas con diferentes longitudes de línea y tamaños de letra y tú decide como se ve mejor.