PHP Obtenha dimensões das imagens em dir

Tenho uma enorme quantidade de fotos que precisam ser classificadas. Preciso conhecer as dimensões de cada foto para saber ou precisa ser redimensionado. Como programador, estou convencido de que deve haver uma maneira mais rápida de fazer iss

Cheguei muito longe. O código a seguir lê o diretório e todos os subdiretórios. Mas no momento em que tento extrair as dimensões, o loop pára em 8% de todas as imagens que precisam ser verificadas. Poderia ser PHP não está autorizado a fazer mais cálculos? O que está acontecendo!

Este é o quão longe eu cheguei:

checkDir('dir2Check');

<pre><code>function checkDir($dir, $level = 0) { if ($handle = opendir($dir)) { while (false !== ($entry = readdir($handle))) { if (!preg_match('/\./i', $entry)) { echo echoEntry("DIR\\", $entry, $level); checkDir($dir.'/'.$entry, $level+1); } else { if ($entry != "." && $entry != ".." && $entry != ".DS_Store") { // if I comment the next line. It loops through all the files in the directory checkFile($entry, $dir.'/'.$entry, $level); // this line echoes so I can check or it really read all the files in case I comment the proceeding line //echo echoEntry("FILE", $entry, $level); } } } $level--; closedir($handle); } </code></pre><p>}</p><pre><code>// Checks the file type and lets me know what is happening function checkFile($fileName, $fullPath, $level) { if (preg_match('/\.gif$/i', $fullPath)) { $info = getImgInfo(imagecreatefromgif($fullPath)); } else if (preg_match('/\.png$/i', $fullPath)) { $info = getImgInfo(imagecreatefrompng($fullPath)); } else if (preg_match('/\.jpe?g$/i', $fullPath)){ $info = getImgInfo(imagecreatefromjpeg($fullPath)); } else { echo "XXX____file is not an image [$fileName]<br />"; } if ($info) { echo echoEntry("FILE", $fileName, $level, $info); } </code></pre><p>}</p><pre><code>// get's the info I need from the image and frees up the cache function getImgInfo($srcImg) { $width = imagesx($srcImg); $height = imagesy($srcImg); $info = "Dimensions:".$width."X".$height; imagedestroy($srcImg); return $info; </code></pre><p>}</p><pre><code>// this file formats the findings of my dir-reader in a readable way function echoEntry($type, $entry, $level, $info = false) { $output = $type; $i = -1; while ($i < $level) { $output .= "____"; $i++; } $output .= $entry; if ($info) { $output .= "IMG_INFO[".$info."]"; } return $output."<br />"; </code></pre>

}

questionAnswers(4)

yourAnswerToTheQuestion