0

これに似たトピックを見つけましたが、解決策が同じかどうかはわかりません。だからここに私の質問があります:

GD 関数を使用して、Web カード生成プログラムを構築しています。問題は、カードの背景が$image = imagecreatefrompng();関数によって生成されていることです。カードには$cardname「タイトル」と説明も必要$desriptionです。そのために、imagettftext();関数を使用しました。しかし、問題があります。カードのサイズは 333x485 です。高さのサイズを変更せずに背景に収まるようにテキストのサイズを変更する必要がありますが、幅のみです!

要点を言えば、とが$cardname必要ですが、収まらない場合は背景から外れます。幅を 240px に収まるようにサイズ変更し、高さを常に 34px のままにする関数が必要です!width = 240height = 34

詳しくはこちらをご覧ください: http://yugiohcardmaker.net . 「名前」には、好きなだけテキストを追加できます。常に適切な幅と高さに収まります。

4

1 に答える 1

1

時間がかかりすぎるため、これをコーディングしようとはしませんが、基本的なプロセスは次のとおりです。

  1. imagettfbbox(); を使用して、テキストの境界ボックスのサイズを取得します。

  2. imagecreatetruecolor(); で新しい画像を作成します。

  3. imagettftext(); を使用して、テキストを新しい画像に書き込みます。

  4. imagecopyresampled() を使用して、テキストを含む新しい画像を既存のカードにコピーし、高さではなく幅を縮小するようにパラメーターを設定します。

注: によって返されるバウンディング ボックスのパラメーターは、imagettfbbox())扱いにくい場合があります。また、テキスト ピクセルのみがコピーされるように、アルファ ブレンディングと背景色にも注意する必要があります。

幸運を!

于 2013-09-11T00:19:44.180 に答える