2012-03-26 10 views
0

私はこのコードを持っていると私は、この作業を行う必要があります。は(imagejpegを行うことはできません)複数の​​画像について

  if ($handle = opendir("images/")) { $i=0; 
        while (false !== ($file = readdir($handle))){ 
        if ($file != "." && $file != ".." && $file != "Recursive Dir_Renfiles_dirname-filename.php") { 
         $filename[$i]=$file; 
         $i++; 
        }}} 
        //print_r($filename); 

foreach($filename as $filename){ 
    $percent = 0.5; 

    // Content type 
    header('Content-Type: image/jpeg'); 

    // Get new dimensions 
    list($width, $height) = getimagesize($filename); 
    $new_width = $width * $percent; 
    $new_height = $height * $percent; 

    // Resample  
    $image_p = imagecreatetruecolor($new_width, $new_height); 
    $image = imagecreatefromjpeg($filename); 
    imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height); 

    // Output 
    imagejpeg($image_p, null, 100);  
} 

この作品を作るために私が方法はありますか?あるいは、これを行う別の方法がありますか?

+2

問題が何であるかを説明してください。 ( 'このコードチャンクは機能しません'は説明ではありません)。 – GolezTrol

+0

'imagejpeg()'がイメージを出力します。複数の出力を生成することはできません。何を正確にしようとしていますか?これらの画像を混在させようとしていますか? – Tchoupi

+0

はい - 私たちの質問は - 正確には何が動作していないのでしょうか?私たちが知っている限り、あなたはこれらのファイルを書く権限がないかもしれません。これはコードを見れば分かりません。 – Webnet

答えて

2

あなたが1ページに複数の画像をしたい場合は、一つの画像を生成するために、このPHPファイルを使用して、HTMLのイメージタグでソースとしてPHPファイルを使用する必要があり、このような:

<img src="picture.php?img_id=1" /> 
<img src="picture.php?img_id=2" /> 


注:

$_GETを経由してファイル名を取得し、特にスラッシュ、予期しない文字に注意することをお勧めだろう。誰かがURL:picture.php?filename=../badImage.jpgのように呼び出すことができます。これにより、アクセスしたいフォルダとは異なるフォルダにファイルが表示されることがあります。だからおそらく$_GET["filename"] = stripslashes($_GET["filename"]);か何かのようなことをしてください。

+0

okです。だから、私はこの代わりに、このページ( )に画像を渡すことができました。そして、これはすべての画像で使えますか? –

+0

はい。 PHPファイルは一度に1つのイメージしか表示しませんが、HTMLコードは複数の異なるイメージのソースと同じPHPファイルを使用します。 1つの特定のイメージをプルアップするためにPHPスクリプトを取得するには、ファイル名またはイメージIDなどを渡す必要があります。 – Travesty3

+0

PHPスクリプトで '$ filename'を使うのではなく、' $ _GET ["filename"] 'でファイル名を取得します。 – Travesty3

関連する問題