PHP GD 라이브러리를 사용하여 내 페이지에 헤더를 만드는 동적 이미지를 만들고 있습니다. 문제는 라인 랩핑 시스템이 필요하다는 것입니다. 문제 자체는 아니지만 먼저 현재 문자의 너비 (픽셀 단위)를 가져와야합니다.PHP의 ttf-font에서 단일 문자의 너비를 가져 옵니까?
나는 이것에 대해 꽤 궁금해합니다. 어떤 방법이 있습니까? 또는 abc의 너비를 수동으로 지정해야합니까?
마르티 이네
PHP GD 라이브러리를 사용하여 내 페이지에 헤더를 만드는 동적 이미지를 만들고 있습니다. 문제는 라인 랩핑 시스템이 필요하다는 것입니다. 문제 자체는 아니지만 먼저 현재 문자의 너비 (픽셀 단위)를 가져와야합니다.PHP의 ttf-font에서 단일 문자의 너비를 가져 옵니까?
나는 이것에 대해 꽤 궁금해합니다. 어떤 방법이 있습니까? 또는 abc의 너비를 수동으로 지정해야합니까?
마르티 이네
당신은 각 문자에 imagettfbbox()을해야 할 것입니다.
안된하지만 작동합니다 :
$string = "Lorem Ipsum";
$size = 20;
$angle = 0;
$fontfile = "ARIAL.TTF";
$strlen = strlen($string);
for ($i = 0; $i < $strlen; $i++)
{
$dimensions = imagettfbbox($size, $angle, $fontfile, $string[$i]);
echo "Width of ".$string[$i]." is ".$dimensions[2]."<br>";
}
당신이
$string = "Lorem Ipsum";
$size = 20;
$angle = 0;
$fontfile = "./fonts/arial.ttf";
$dimensions = imagettfbbox($size, $angle, $fontfile, $string);
print_r($dimensions);
의 결과를 인쇄 할 경우 얻을 수 있습니다 같은 something` :
Array
(
[0] => -1
[1] => 5
[2] => 152
[3] => 5
[4] => 152
[5] => -20
[6] => -1
[7] => -20
)
각 인덱스는 여기서
당신은 문자열에서 각 문자의 총 합계 만약 내가 0그것은 결과가 조금 이상한 상당히 마이너스 1 인덱스 얻을 수 있습니다 해달라고 인덱스 0 - 10
그래서 폭은 인덱스 2이어야한다 130 아니요 153.
이 빠른 답변 주셔서 감사합니다! –
@ 마티 당신을 환영합니다. 만약 당신이 그것을 사용할 수있는 ImageMagick 고려 : http://www.imagemagick.org/Usage/text/#caption 상자에서 단어 감싸기 할 수있는 TTF 텍스트를 훨씬 더 잘 처리하지만 설치해야합니다. 서버에서 액세스 할 수 있습니다. –
좋아, 나는 또한 그것을 검사 할 것이다. –