2017-05-29 13 views
0

ここには何かがありますか?私が変更した場合、imagejpeg($thumb, $newImage);imagejpeg($thumb);は読み込み不能な文字の読み上げになります。サムイメージディレクトリが存在します。imagejpegを保存するとファイルが出力されます

私の究極の目的は、低品質で画像をコピーすることです。

$filename = $imageDirectory . '/1.jpg'; 
$percent = 0.5; 
$newImage = $imageDirectory . '/thumbs/1.jpeg';  
echo "image: <br>"; 
echo $filename; 
list($width, $height) = getimagesize($filename); 
$newwidth = $width * $percent; 
$newheight = $height * $percent;  
// Load 
$thumb = imagecreatetruecolor($newwidth, $newheight); 
$source = imagecreatefromjpeg($filename);  
// Resize 
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);  
// Output 
imagejpeg($thumb, $newImage); 

UPDATE:私は今、2番目のパラメータは新しい名前でイメージの場所でなければならないことを実現します。だから...私は$ newImageを再定義しました。パスは正常です... 1.jpgという名前のイメージをその場所に手動でアップロードすると、そのパスに存在します。

+0

複数の画像を保存しますか?ファイルの名前を確認し、すでに存在する場合は変更する必要があります。 –

+0

いいえいいえ、私は非常に不明です。私はイメージがすでに存在するときとそれが存在しないとき(それが存在すればそれはとにかくそれを上書きする)と思うが、とにかく私のポイントはそれがパスに問題ではないということだ。私は1つの画像を上記の関数で保存するだけです。私はこの機能がうまくいかない理由は知らない:$ thumbは明らかに私がコピーしたい画像であり、$ newImageは明らかに新しい画像になるパスである。 – Atrag

+0

'$ imageDirectory'は相対か絶対ですか? –

答えて

-1

あなたがブラウザに出力する画像をしたい場合は、応答のための正しいContent-Typeヘッダを追加する必要があります:

header('Content-Type: image/jpeg'); 
imagejpeg($yourimage); 

詳細についてはfirst example in the documentationを確認してください。ブラウザに出力する前に品質を落としたい場合は、3番目の例を確認してください。

+0

ありがとうございます。私はそれを試みたときに内部的なエラーが発生しました。いずれの場合でも、ファイルを表示するのではなく保存したい。私はちょうどそれがイメージを確実に処理する方法を示すための例としてそれを与えました。 – Atrag

+0

@Atragファイルを保存したい場所に 'NULL'を置く代わりに3番目の例をチェックすれば、3番目のパラメータは品質を低下させます。 –

+0

私のコードには何も問題はありませんか?それは動作しません。 $ thumbimageDirectoryは元のイメージを見つける場所のサブフォルダです。 – Atrag

関連する問題