2011-10-27 3 views
0

イメージリサイズ機能をページ内で呼び出すと、スムーズに実行され、イメージのサイズが変更されますが、インデックスページにインクルードしてindex.phpから呼び出すと、このような長いテキストを生成して生成します。イメージヘッダーがOOPからindex.phpに渡されない

=>GIF87aªç–ƒx‡dWtaZffeCA<ÕƶCBBŠVNfXT;BC§‡w²¤™wxw¹†g‡˜–êÆ©C;:x‡‡ˆˆ… 

などです。私の問題を解決するか、index.phpに直接この関数を作成しますか?

class img{ 
function resize() 

{ 

// File and new size 
$filename = 'upload/845.gif'; 
$percent = 0.5; 

// Content type 
ob_start(); 

echo header("Content-Type: image/gif"); 

ob_end_clean(); 


// Get new sizes 
list($width, $height) = getimagesize($filename); 
$newwidth = $width * $percent; 
$newheight = $height * $percent; 

// Load 
$thumb = imagecreatetruecolor($newwidth, $newheight); 
$source = imagecreatefromgif($filename); 

// Resize 
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height); 

// Output 
@imagegif($thumb); 
imagedestroy($thumb); 
} 
} 

以下、この私のfunction.phpページのコードこれは、あなたがbodyタグを入力した後にあなたは、ヘッダー情報を送信している

<html> 
<body> 
<?php 
include("function.php"); 
$img_resize=new img; 
$img_resize->resize(); 
?> 
</body> 
</html> 
+0

のようにしてみてください? –

+0

それはサムネイル画像を生成します.... – waqaxi

+0

同時に表示する他のコンテンツはありますか、それとも単に画像だけを表示したいですか? – ray

答えて

2

イメージを出力するために別のファイルを作成し、<img>タグにロードする必要があります。

// image.php 
include("function.php"); 
$img_resize=new img; 
$img_resize->resize(); 

// HTML file 
<html> 
    <body> 
    <img src="image.php" /> 
    </body> 
</html> 

これは、画像をHTMLファイルに挿入しようとしている場合です。イメージを出力しようとしているだけで、他の人が暗示しているように、イメージを出力したいだけのHTMLは必要ありません。

+0

:-)うまく動作しています.....歓声.... :-) – waqaxi

+0

ループ中にデータベースから取得したこの画像名はどのように送信しますか – waqaxi

+0

ループ内で 'を使い、 'img'クラスで' $ _GET ['name'] 'を使ってロードしたい画像を指定することができます。 – Clive

2

以下の私のindex.phpコードです。

表示しているものがすべて画像の場合は、HTMLを完全に削除することをおすすめします。

+0

+1:でも、HTMLは一切ありません**! –

+0

問題がまだ残っています...... – waqaxi

-1
ob_start(); 
echo header("Content-Type: image/gif"); 
ob_end_clean(); 

は何これはOOPとしなければならないだけで、この

header("Content-Type: image/gif"); 
+0

...しかし、それは私に "ヘッダーはすでに送信されました"エラーはob_startせずに – waqaxi

関連する問題