2012-02-27 3 views
0

하나 개의 긴 이미지가 imagecreatetruecolor를 사용하는 것과 내가 한 줄의 텍스트를 만들 수 있습니다 imagettftext 사용하는 경우 :PHP Imagettftext 별도의 이미지로 각 단어

이것은에 맞는로 한 줄에 많은 텍스트를 표시합니다
// Create the image 
$im = imagecreatetruecolor(400, 30); 

크기는 400x30px입니다.

어떻게 각 단어를 새로운 이미지로 분리 할 수 ​​있습니까?

각 새 단어 이미지를 이전에 (아마도 사이에 공백이있는) 옆에 놓은 다음 컨테이너 크기로 감싸고 싶습니다.

브라우저 크기를 조정 한 후에 페이지의 새로운 크기로 줄 수도 있습니까? 그것은 야심 찬 것으로 들리지만, 정말로 편리 할 것입니다!

도움을 많이 받았습니다.

+1

'@ font-face'와 같은 클라이언트 측 글꼴 기술에 대해 알고 있습니까? 문자를 생성하는 것이면 imagettftext()를 사용하는 것보다 훨씬 낫습니다 –

+0

문자열을 분해하고 반복하여 각 이미지를 만들 수 있습니다 ... – Mattias

답변

0

처음에는 많은 사람들이 서버 리소스를 많이 필요로하기 때문에 문자열의 모든 단어에 대해 새로운 이미지를 생성해야하는 이유가 없습니다.

하지만 질문에 대답하려면 일종의 반복을해야합니다. 여기에 빠른 모형이 있습니다.

<?php 
    $string = "This is a string with spaces"; 

    foreach(explode(" ",$string) as $word){ 
    // Image generation code here 
    } 
?> 
+0

도움을 주셔서 감사합니다. – mattneedshelp

+0

어떻게 새 이미지를 다음 이미지에서 계속 만들 수 있습니까? 현재 모든 단어 레이어가 하나의 단일 이미지로 서로 겹쳐져 있습니다. "imagettftext ($ im, 20, 0, 10, 20, 20)"라고 쓰여있는 PHP 매뉴얼 페이지의 Testing ... 예제에 코드를 통합하려고합니다. $ black, $ font, $ word); – mattneedshelp

+0

글쎄, 네. 물론, 모든 단어를 별도의 이미지로 생성하고 저장하지 않으면 텍스트가 겹칠 것입니다. 당신이 의미하는 것은 주어진 차원 내부를 여러 줄로 묶는 것입니다. 그렇다면 여러 이미지를 만들 필요가 없습니다. 그런 식으로 작동하지 않습니다. 주어진 문자열의 길이를 검사하고 차원에 맞는 마지막 단어 다음에 나눠서 다음 줄에 쓰는 함수를 만들 것입니다. – Pankucins