Nileがすでに指摘しているように、画像にはData-URIを使用する必要があります。
コードを使用した実際のコード例は次のとおりです。
echo "how";
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
$tmpImg = tempnam('/tmp', 'image');
imagestring($im, 1, 5, 5, 'A Simple Text String', $text_color);
imagejpeg($im, $tmpImg);
imagedestroy($im);
echo '<img src="data:image/jpeg;base64,' . base64_encode(file_get_contents($tmpImg)) . '">';
unlink($tmpImg);
何が起こるのですか?使用したコードは多かれ少なかれですが、画像はブラウザに直接送信されるのではなく、一時ファイルに書き込まれます。これは、imagejpegの2番目のパラメータです。次に、一時ファイルのコンテンツがBase64-Encodingを使用してData-URIに配置され、そのDataUriがイメージタグのsrcとして設定されます。
最後に一時ファイルを削除することをお勧めします!
一時ファイルを省略したい場合は、出力バッファリングを使用して画像をキャプチャできます。これは次のようになります。
echo 'how';
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5, 'A Simple Text String', $text_color);
ob_start();
imagejpeg($im);
imagedestroy($im);
$image = ob_get_contents();
ob_end_clean();
echo '<img src="data:image/jpeg;base64,' . base64_encode($image) . '">';