0

基本的に、複数のサイトで簡単に使用できる非常にシンプルな 1 ページの .php テンプレートを作成中です。余分なファイルなどをドラッグする必要はありません。私は imagecreate 機能を認識しており、その実装方法を知っています。ただし、これまで見てきたことはすべて、img.php ファイルを作成し、画像を表示するページでそれを呼び出すことです。私の場合、img.php ページを削除し、php で画像を作成する場所に直接コードを含める方法をいくつか削除したいと考えています。

例えば:

<?php
$my_img = imagecreate( 200, 80 );
$background = imagecolorallocate( $my_img, 0, 0, 255 );
$text_colour = imagecolorallocate( $my_img, 255, 255, 0 );
$line_colour = imagecolorallocate( $my_img, 128, 255, 0 );
imagestring( $my_img, 4, 30, 25, "thesitewizard.com",
  $text_colour );
imagesetthickness ( $my_img, 5 );
imageline( $my_img, 30, 45, 165, 45, $line_colour );

header( "Content-type: image/png" );
imagepng( $my_img );
imagecolordeallocate( $line_color );
imagecolordeallocate( $text_color );
imagecolordeallocate( $background );
imagedestroy( $my_img );
?>

このコードをファイルに保存する必要があります。これを myimpage.php と呼びましょう。次に、php で画像を作成するには、画像を表示するページに次のコードを配置する必要があります。

<img src="myimpage.php" alt="Image created by a PHP script" width="200" height="80">

これは私が達成しようとしていることを無効にするため、実際の画像ファイルを投入することもできます。だから私の質問はこれです: 呼び出すための2番目のphpページを作成する必要なしにimagecreateを使用するにはどうすればよいですか?

このコードを同じページに配置する必要があるのは、いくつかの変数を渡したいからです。

<h2><a href="./" title="<?php echo $title; ?>"><?php echo $title; ?></a></h2>
THIS IS HERE THE IMAGE GOES (THe IMAGE IS A BASIC BOX THAT DISPLAYS THE CONTENTS OF $IMAGE)

基本的には $title の内容を画像に表示させたいと思っています。そのため、コードが別のページからプルされている場合、それはできません。

4

2 に答える 2

1

データ URI スキームを使用して、ページに画像を作成し、同じページにインラインで埋め込むことができます。

<img src="data:image/png;base64,*base_64_data_from_imagecreate*" alt="Image">

出力をキャプチャするには、次のことを行う必要があります。

ob_start();
imagepng($my_img);
$imagedata = ob_get_contents();
ob_end_clean();

$imagedata = base64_encode($imagedata);

echo '<img src="data:image/png;base64,' . $imagedata . '" alt="Image" />';

それがあなたの探しているものであり、役立つことを願っています。

于 2012-07-30T22:32:08.080 に答える
0

データ URI スキームを使用して画像データを html に保存できますが、ブラウザは画像をキャッシュできず、サイトが呼び出されるたびに再度ダウンロードする必要があるため、これは必ずしも賢明なアイデアではないことに注意してください。

通常、ブラウザは画像を 1 回ダウンロードし、その後は「小さな」リクエストのみをサーバーに送信して、画像キャッシュがまだ最新かどうかを確認します。したがって、画像がそのようなリクエストの http オーバーヘッドよりも小さい場合は問題ありません。そうでなければ私はそれをお勧めしません。

于 2015-12-04T15:08:06.653 に答える