約1500枚のJPEG画像があるサイトがあり、それらすべてを圧縮したいと思います。ディレクトリを調べることは問題ではありませんが、すでにサーバー上にあるJPEGを圧縮して(新しいものをアップロードしたくない)、古いものを置き換える機能が見つからないようです。
PHPにはこのための組み込み関数がありますか?そうでない場合、フォルダーからスクリプトにJPEGを読み取るにはどうすればよいですか?
ありがとう。
gdを使用しているかどうかわからないので、これを想定しています。
$img = imagecreatefromjpeg("myimage.jpg"); // load the image-to-be-saved
// 50 is quality; change from 0 (worst quality,smaller file) - 100 (best quality)
imagejpeg($img,"myimage_new.jpg",50);
unlink("myimage.jpg"); // remove the old image
画像の操作には IMagick 拡張子を使用することをお勧めします。 Gdは、特に大きなファイルの場合、メモリを使いすぎます。これは、PHPマニュアルの Charles Hall によるコードスニペットです:
$img = new Imagick();
$img->readImage($src);
$img->setImageCompression(Imagick::COMPRESSION_JPEG);
$img->setImageCompressionQuality(90);
$img->stripImage();
$img->writeImage($dest);
$img->clean();
そのためにはphpGdライブラリを使用する必要があります...ほとんどのサーバーにはデフォルトでインストールされています。 'resize image php Gd'を検索すると、多くの例があります。
たとえば、このページをご覧ください http://911-need-code-help.blogspot.nl/2008/10/resize-images-using-phpgd-library.html
Vlzvlが提供するソリューションはうまく機能します。ただし、このソリューションを使用すると、コードの順序を変更して画像を上書きすることもできます。
$image = imagecreatefromjpeg("image.jpg");
unlink("image.jpg");
imagejpeg($image,"image.jpg",50);
これにより、既存の画像を圧縮して、同じファイル名で同じ場所に保存できます。