imagettftext (): рассчитать размер шрифта, чтобы текст соответствовал ширине изображения

Я использую imagettftext() для записи динамического текста на изображении, и я хочу, чтобы он соответствовал моей ширине изображения.

Как рассчитать размер шрифта по длине текста?

Solutions Collecting From Web of "imagettftext (): рассчитать размер шрифта, чтобы текст соответствовал ширине изображения"

Вы можете вычислить ограничительную рамку текста TTF, прежде чем выводить ее с помощью функции imagettfbbox . К сожалению, нет прямого способа масштабирования, чтобы он соответствовал ширине, поэтому вам придется делать это самостоятельно.

Один из способов сделать это – передать текст с размером шрифта по умолчанию, скажем, 20, в imagettfbbox и извлечь из него ширину. Затем вы можете рассчитать, насколько меньше или больше текст должен соответствовать размеру, который вы хотите, вычисляя масштабный коэффициент:

 scale = targetWidth / bboxWidth; 

Затем нарисуйте текст с нужным размером:

 fontSize = 20 * scale; 

используя функцию imagettftext . Шрифты не масштабируются на 100% отлично, но вы получите очень хорошее приближение.

См. Документацию imagettfbox здесь .

 while (itsTooBigAccordingToimagettftext() && $fontSize > 0) { $fontSize--; }