2012-09-09 15 views
7

imagettfbbox()의 반환 값이 정확히 무엇인지 설명해 주시겠습니까? The manual says :PHP에서 "imagettfbbox()"는 어떻게 작동합니까?

imagettfbbox는() 오류에 경계 성공 텍스트 상자와 FALSE을 사 포인트를 나타내는 8 개 요소로 구성된 배열을 반환합니다. [... 여기의 점수 표 ...] 각은 각도에 관계없이 텍스트와 관련이 있으므로 "상단 왼쪽"은 텍스트를 가로로 볼 때 왼쪽 상단에 있음을 의미합니다.

그러나 나는 그다지 명확하지 않다는 것을 알았다. 예를 들어, 반환 값 :

array(-1, 1, 61, 1, 61, -96, -1, -96) 

는 다음과 같은 점을 의미한다 :

(-1, -96) ------ (61, -96) 
    |    | 
    |    | 
    |    | 
    |    | 
    |    | 
    |    | 
(-1, 1) -------- (61, 1)    

내가 그들을 어떻게 해석해야합니까?

왜 음수 값이 있습니까?

+0

어떤 매개 변수를 함수에 전달 했습니까? – FilmJ

+0

그냥 데카르트 격자로보기 –

답변

1

다음 자원이 설명 : 이 http://www.tuxradar.com/practicalphp/11/2/6

그냥 abs()를 사용합니다. 위 리소스의 내용입니다 : "[함수]는 절대 값이 아닌 텍스트 문자열의 기준선 왼쪽 아래 모서리에서 값을 반환합니다. 문자의 기준선은 사용자가 손

+2

링크 된 페이지는 * after * 대신에 개별 좌표 값에 'abs'를 잘못 사용합니다. 그렇게하면 불일치가 생길 수 있습니다. – Charles

9

당신은 comment by "marclaz" on the imagettfbbox manual page 살펴해야 줄이 그어진 종이 "에 그것을 쓰기 : imageTTFBbox 및 imageTTFText 기능 음수 관리를 할 수있는 좌표의 배열을 반환로

주의하시기 바랍니다 것은 는주의해야 높이와 너비 계산.

$box = @imageTTFBbox($size,0,$font,$text); $width = abs($box[4] - 
$box[0]); $height = abs($box[5] - $box[1]); 

다음 ($의 X, $ y를)이 위치에 텍스트를 중앙에 : 수평 텍스트

:

그 작업을 수행하는 rigth 방법은 복근() 함수를 사용하는 것입니다 (0,0) 페이지 원점 좌상 페이지 코너입니다

$x -= $width/2; $y += $heigth/2; 

imageTTFText($img,$size,0,$x,$y,$color,$font,$text); 

이 있기 때문에 (0,0) 텍스트 기원은 왼쪽 아래에 읽을 수있는 텍스트 C는 다음과 같습니다 그런 코드가 있어야한다 orner.

관련 문제