나보다 PHP 경험이 많은 사람들의 도움에 감사드립니다.PHP로 이미지에 ttf 문자 추가하기
PHP를 사용하여 가까운 텍스트 이미지를 생성합니다. 지금까지는 다음과 같이 작동합니다.
- 먼저 x 문자의 임의의 문자열을 생성합니다.
- 는 그 다음 등 배경 이미지를 만드는 그것은
그 다음은 다음 문자를 배치 (크기의 일부 무작위 화, 회전 등으로) 특정 장소에서 첫 번째 문자를 배치
있도록 왼쪽 아래 테두리 상자의 모서리는 문자의 경계 상자의 오른쪽 하단 모서리와 같은 지점에 있습니다 (일부 무작위 등). 그 코드는 다음과 같이 간다 : 문자열의 이후의 각 문자에 대한
반복 4.
$coords = array();
$pos_y = $this->image_height/2;
for ($counter = 0; $counter < $this->code_length; $counter++){
$sbox = @imagettfbbox($size, $angle, $font, $this->code[$counter]);
if($counter == 0)
$pos_x = $this->image_width/$this->code_length;
else
// element 2 is the x co-ord of the bottom right corner of the ttf box
$pos_x = $coords[$counter-1][2];
@imagettftext($this->image, $size, $angle,
$pos_x, $pos_y, $fontcolor, $font, $this->code[$counter]);
}
나는 가능한 한 모든 캐릭터가 이웃을 만지고 싶어한다. 내가 지금까지 해왔 던 것은 글리프의 하단 모서리가 테두리 상자의 모서리에 다소있는 'M'과 같은 문자에는 잘 작동하지만 'G'나 'I'와 같은 문자는 어디에도 없습니다.
경계 상자가 아닌 ttf 글리프의 실제 치수를 얻는 방법을 알고있는 사람이 있습니까? 아니면 누구든지이 문제에 접근하는 더 좋은 방법을 생각할 수 있습니까?
의견/아이디어/조언을 많이 주셨습니다.
(당신이 그리 개요 데이터 시도를 사용하여주고 싶어한다, 당신은 FreeType2, 또는 https://github.com/pomax/php-font-parser 같은 것을 사용하려고 할 수 있습니다) – gibberish
당신의 문제는 텍스트의 순환 일 수 있습니다. [imagettftext] (http://www.php.net/manual/en/function.imagettftext.php)에서 : '점은 각도에 관계없이 텍스트를 기준으로하므로 "왼쪽 위"는 왼쪽 상단에 의미합니다. 텍스트가 수평으로 보일 때 왼손 구석에. – bitWorking
@redreggae가 문제의 일부입니다.그러나 회전을 무시하더라도 글자의 실제 글립 문자는 경계 상자의 모든 구석으로 이동하지는 않습니다. 따라서 회전이 전혀 없더라도 'G'의 오른쪽 하단 점과 'A'의 하단 왼쪽 점 사이에 'G'와 'A'가 서로 붙어 있지 않습니다. –