<?php require_once (__DIR__.'/lib.php'); /** * Resizes all images allocated in a directory. * * @param string $srcDir The source directory * @param string $dstDir The destination directory * @param integer $maxHeight The maximum height of resized image in pixels * @param integer $maxWidth The maximum width of resized image in pixels * @param boolean $rewrite Wether to rewrite the destination file if it exits */ class Resize extends Vn\Lib\Method { const PARAMS = [ 'src_dir' ,'dst_dir' ,'max_height' ,'max_Width' ,'rewrite' ,'crop' ,'symbolic' ]; function run () { $options = getopt ('', $params); if (!$this->checkParams ($options, self::PARAMS) $this->usage (); $srcDir = $options['src_dir']; $dstDir = $options['dst_dir']; $maxHeight = $options['max_height']; $maxWidth = $options['max_Width']; $rewrite = isset ($options['rewrite']); $crop = isset ($options['crop']); $symbolic = isset ($options['symbolic']); set_time_limit (0); $count = 0; $dir = opendir ($srcDir); if ($dir) while ($fileName = readdir ($dir)) if (!in_array ($fileName, ['.', '..'])) { $srcFile = "$srcDir/$fileName"; $dstFile = "$dstDir/". substr ($fileName, 0, -4).'.png'; if (!file_exists ($dstFile) || $rewrite) try { $symbolicSrc = ($symbolic) ? $srcFile : NULL; $image = Image::create ($srcFile); Image::resizeSave ($image, $dstFile, $maxHeight, $maxWidth, $crop, $symbolicSrc); imagedestroy ($image); $count++; } catch (\Exception $e) {} } echo "$count files resized.\n"; } }