2012-11-01 3 views
1

나는 직사각형 상자의 경계를가집니다. 텍스트 크기를 모르는 상태에서 텍스트를 사용자 정의 글꼴로 상자에 넣을 수 있습니까? 내 말은, 텍스트가 사용자 정의 상자에 맞도록 적절한 텍스트 크기를 설정하는 php 함수가 있습니까? 텍스트 줄 바꿈이 필요하지 않습니다.php 상자에 텍스트를 입력하는 방법

내가 찾은 유일한 기능은 imagettfbboximagettftext입니다.

imagettfbbox는 fontSize가 알려진 경우에만 imagettftext를 사용하여 이미지에 텍스트를 쓰는 반면 imagettfbbox는 글꼴 크기를 제공하여 경계를 제공합니다.

답변

3

당신은 php gd를 사용하고 있습니까? 그렇다면 imagettfbbox을 사용합니다. 단지 크기를 제외한 모든 매개 변수를 정의하십시오. 그런 다음 루프의 외부에서 정의 된 공간에 맞을만큼 작을 때까지 크기에 맞 춥니 다. 나는 전에 이것을했다. 메모리에서 실제 이미지 크리에이티브를 수행하지 않으므로 매우 빠릅니다 (실제 이미지를 만드는 것보다 훨씬 빠름).

for($size=40;$size>5;$size--){ 
    $sizearray=imagettfbbox ($size , 0- , 'font.ttf' , $message); 
    $width=$sizearray[0] + $sizearray[4]; 
    if($width<$threshold/*you define*/){ 
     //you've got your $size 
     break; 
    } 
} 
+0

나는 생각했지만 성능이 좋았을 것입니다. 그것을 시도 할 것이다! – SatheeshJM

+0

범위의 좋은 추측을 가지고 있다면 for 루프에서 상수를 조정할 수 있습니다. 당신은 아래쪽 대신에 세어 볼 수 있습니다. 너비가 임계 값을 벗어나는 경우에도 하나씩 증가/감소시킬 수 있습니다. 이 모든 것은 성과에 대한 당신의 생각입니다. 당신도 시간을 할 수 있고이 루프는 실제 이미지 작업/생성/내보내기/etc보다 훨씬 적은 시간이 걸릴 것입니다. – Landon

관련 문제