2011-01-25 10 views
4

PHP GDを使用して画像をマージすると、その場で画像を生成しようとしています。私は、サーバーのどこかに格納する必要なく、自分のWebページ内にイメージを表示できる方法があるかどうかを知りたいと思っています。今までPHP GDを使用してオンザフライで生成されたインライン画像を表示するには

私は画像をマージするため、次のコードを作成した例のように...

function create_image() { 
    $main_image = imagecreatefrompng("images/main.png"); 
    $other_image = imagecreatefrompng("images/other.png"); 
    imagecopy($main_image, $other_image, 114, 53, 0, 0, 49, 34); 
    imagepng($main_image); 
    imagedestroy($other_image); 
} 

今私のhtmlコードは...

私はPHPの関数を呼び出す必要がありますどのように
<div class="sidebar-avatar"> 
    <img src="avatar_pattern.png" class="pattern1" width="430" height="100" /> 
</div> 

私が指定したdivで生成されたイメージを表示するようにします。

更新Content-type: image/pngの使用が見つかりましたが、それはインラインではない別のページに画像を表示する必要があることを意味します。

答えて

6

base64_encodeでBase64に変換し、imgタグのdataURIとしてエコーします!

Inline Images with Data URLs

+0

...サイズの制限とブラウザのサポートには十分注意してください。一般的に、これは良い考えではありませんが、Awebの答えは完全に正しいです。 – Brad

4

次のいずれかを実行できます。

  1. はデータとして画像を表示します。http://en.wikipedia.org/wiki/Data_URI_scheme(警告:高帯域幅の消費量)
  2. などdisplay_imageなどの画像を表示する別のファイルを、作成します。 ph

コードを使用してください:

<img src="display_image.php"> 

あなたが表示したヘッダーとコード。

+0

2番目のアイデアは私にとって最高のようです。それは私が過去に何をしたのかです。たとえば、GETまたはSESSIONを使用してデータを格納するだけです。 – Aweb

0

<img src="image.php?other_image=(filename)">

と、image.phpであなたも同じスクリプト内で画像作成部を置くことができます

header('Content-Type:image/png');imagepng($main_image); 

で出力をあなたのイメージを作成します。

if($other_image=$_GET['other_image']) 
{ 
    // create image 
    ... 
    // output image 
    header('Content-Type:image/png'); 
    imagepng($main_image); 
} 
else 
{ 
    // default behaviour 
    ... 
    echo '<img src="',basename(__FILE__),'?other_image=',urlencode('images/other.png'),'">'; 
    ... 
} 

注射を防ぐように注意してください!

関連する問題