2016-04-24 6 views
0

私は、パスがMySQLデータベースに保存されている画像からサムネイルを作成しています。しかし、サムネイルをエコーすると、画像アイコンだけが表示され、サムネイル画像は表示されません。私は何を変更する必要がありますか?私がPHPを初めて使うので、あなたの答えを簡単にしておいてください。ここでPHPでオンザフライで生成されたサムネイルをエコーする方法は?

は、私が使用していたコードです:

<?php 
    //database connectivity code 
    $query = mysql_query("SELECT * FROM images"); 
    while($row = mysql_fetch_array($query)) 
    { 
    $im = imagecreatefromjpeg($row['image_path']); 

    $width = imagesx($im); 
    $height = imagesy($im); 

    $imgw = 150; 
    $imgh = $height/$width * $imgw; 

    $thumb = imagecreatetruecolor($imgw,$imgh); 

    imagecopyresampled($thumb,$im, 0,0,0,0,$imgw, $imgh, ImageSX($im), ImageSY($im)); 

    ?> 

    <img src = "<?php echo $thumb ?>" > 

    <?php 
    } //closing while 
    ?> 

私は、他の多くの機能を使用しようとしましたが、どれも多くの助けもしませんでした。それらのほとんどは、読めないデータの異常に長い文字列を表示しました。何をすべきかを指摘してください。

ありがとうございます。

答えて

0

私は、変数$親指はIDがimagecopyresampledから返されたリソースであるように思われるPHPのイメージ関数について何も知らない、しかし...

。 imgタグのsrc属性はイメージファイルへのパスであると考えられます。

0

この例は機能しません。

<?php 

    # image.php file 

    $query = mysql_query("SELECT * FROM images WHERE id=" . mysql_real_escape_string($_GET['image_id'])); 
    row = mysql_fetch_array($query) 

    $im = imagecreatefromjpeg($row['image_path']); 

    $width = imagesx($im); 
    $height = imagesy($im); 

    $imgw = 150; 
    $imgh = $height/$width * $imgw; 

    $thumb = imagecreatetruecolor($imgw,$imgh); 

    imagecopyresampled($thumb,$im, 0,0,0,0,$imgw, $imgh, ImageSX($im), ImageSY($im)); 

    imagejpeg($thumb, null, 100); 
?> 

、その後、あなたのhtmlにあなたが

<?php 

$query = mysql_query("SELECT * FROM images"); 
while($row = mysql_fetch_array($query)) 
{ 
    echo '<img src = "image.php?image_id='.$row['id'].'">'; 
} 
?> 
+0

が答えてくれてありがとう置くことができます:あなたは、2つのファイルを作成する必要があります。私はそれを試しましたが、この方法でもうまくいかないようです。サムネイルの代わりに画像アイコンのみが表示されます。 – Leeds

+0

コードからさらに多くのことができますか?このアプローチはうまくいくはずですが、それはあなたの環境に依存します –

+0

さて、私はそれを理解しました。私はあなたにこれを提案したecho文を置き換えなければならなかった: Leeds

関連する問題