2012-02-27 11 views
0

imagettftextを使用している場合、私はimagecreatetruecolorを使用して、一つの長い画像とテキストの一行を作成することができます。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

新しい画像を次の画像から引き継ぐにはどうすればいいですか? 現在、すべての単語のレイヤーは、1つの単一画像内で互いに重なり合っています。 PHPマニュアルページのテスト用のサンプルにコードを組み込もうとしています。ここには "//イメージ生成コードはここにあります"とあります。私は 'imagettftext($ im、20、0、10、20、 $ black、$ font、$ word); ' – mattneedshelp

+0

もちろん、別々のイメージとしてすべての単語を作成して保存しないと、テキストは重なります。あなたは、与えられた次元の内部を複数の行に折り返すことを意味していたと思いますか? そうであれば、複数の画像を作成する必要はありません。そのようには機能しません。 私は与えられた文字列の長さをチェックし、寸法に収まる最後の単語の後にそれを分割し、次の行に書く機能を作っています。 – Pankucins

関連する問題