Home >Backend Development >PHP Tutorial >PHP script to implement batch compression of image file size_PHP tutorial
Today, I wanted to upload a large number of pictures to the forum. Since the pictures were taken with a SLR and were large in size, I wrote a script to compress the pictures in batches.
<?php if ($handle = opendir('./old')) { while (false !== ($file = readdir($handle))) { if ($file == '.' || $file == '..') { continue; } write('d:/wamp/www/test/old/'.$file, 'd:/wamp/www/test/new/'.$file); } closedir($handle); } function write($old, $new) { $maxsize=1000; $image = new Imagick($old); if($image->getImageHeight() <= $image->getImageWidth()) { $image->resizeImage($maxsize,0,Imagick::FILTER_LANCZOS,1); } else { $image->resizeImage(0,$maxsize,Imagick::FILTER_LANCZOS,1); } $image->setImageCompression(Imagick::COMPRESSION_JPEG); $image->setImageCompressionQuality(90); $image->stripImage(); $image->writeImage($new); $image->destroy(); } ?>