Я пытаюсь создать изображение на лету, используя два разных шрифта, и у меня есть основы, работающие с циклом и созданием каждого изображения отдельно. Тем не менее, каждое последующее изображение, которое создается, перезаписывается при следующем проходе цикла. Я ожидал этого, но я не уверен, что с этим делать, так что мне нужно добавить? Например, используя две строки и два шрифта, он показывает только вторую строку и шрифт в результирующем изображении. $Strings
а также $Fonts
оба массива.
function TextImage($Strings,$Fonts,$FontSize,$Angle) {
$FontPath = $_SERVER['DOCUMENT_ROOT'] . "/functions/truetype/";
if (is_array($Strings) === TRUE && is_array($Fonts) === TRUE) :
foreach (array_combine($Strings, $Fonts) AS $Strings => $Fonts) :
$Fonts = $FontPath.$Fonts.".ttf";
$TextDimensions = imagettfbbox($FontSize,$Angle,$Fonts,$Strings);
$Width = abs($TextDimensions[4] - $TextDimensions[0] + 5);
$Height = abs($TextDimensions[5] - $TextDimensions[1]) + 10;
$Image = imageCreateTransparent($Width,$Height);
$TextColor = imagecolorallocate($Image,255,204,153);
$ShadowColor = imagecolorallocate($Image,119,119,119);
$y_offset = abs($TextDimensions[5]);
$x_offset = ($Width / 2) - ((min($TextDimensions[2],$TextDimensions[4]) - max($TextDimensions[0],$TextDimensions[6])) / 2);
imagettftext($Image,$FontSize,$Angle,$x_offset,$y_offset,$TextColor,$Fonts,$Strings);
endforeach;
endif;
return imagepng($Image);
imagedestroy($Image);
}
Задача ещё не решена.
Других решений пока нет …