0
1
Fork 0
hedera-web-mindshore/rest/image/resize.php

71 lines
1.5 KiB
PHP

<?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 = [
'srcDir'
,'dstDir'
,'maxHeight'
,'maxWidth'
,'rewrite'
,'crop'
,'symbolic'
];
function run ()
{
$options = getopt ('', $params);
if (!$this->checkParams ($options, self::PARAMS))
$this->usage ();
$srcDir = $options['srcDir'];
$dstDir = $options['dstDir'];
$maxHeight = $options['maxHeight'];
$maxWidth = $options['maxWidth'];
$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";
}
}