- ベストアンサー
デレクトリ内画像一括リサイズ
監視カメラの画像(.jpg)が都度FTPされるのですがサイズが大きいのでリサイズしたくネット検索で1枚づつファイル名指定するのは以下に見つかりました。 <?php list($width, $hight) = getimagesize('./kamera/A2409.jpg'); // 元の画像名を指定してサイズを取得 $baseImage = imagecreatefromjpeg('./kamera/A2409.jpg'); // 元の画像から新しい画像を作る準備 $image = imagecreatetruecolor(1500, 800); // サイズを指定して新しい画像のキャンバスを作成 // 画像のコピーと伸縮 imagecopyresampled($image, $baseImage, 0, 0, 0, 0, 1500, 800, $width, $hight); // コピーした画像を出力する imagejpeg($image , './photo/A2409.jpg'); ?> これらを参考に50枚くらいGDにて 一括リサイズ したいのでご教授下さい。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
<?php foreach (glob("./kamera/*.jpg") as $file) { list($width, $height) = getimagesize($file); // 元の画像名を指定してサイズを取得 $baseImage = imagecreatefromjpeg($file); // 元の画像から新しい画像を作る準備 $image = imagecreatetruecolor(1500, 800); // サイズを指定して新しい画像のキャンバスを作成 // 画像のコピーと伸縮 imagecopyresampled($image, $baseImage, 0, 0, 0, 0, 1500, 800, $width, $height); // コピーした画像を出力する if (!imagejpeg($image, './photo/'.basename($file))) { echo "エラー: 画像を保存できませんでした: ./photo/".basename($file)."\n"; } // メモリを解放 imagedestroy($baseImage); imagedestroy($image); // 処理済みの画像は消す unlink($file); } ?> こんな感じでしょうか。 最後に処理済みのファイルを消していますが、余計なお世話でしたら消すなりコメントアウトするなりしてください。
お礼