Использование команды «преобразовать» для обработки изображений перед выводом в браузер

У меня проблема с ImageIck PHP CLASS. Мой провайдер (1und1.de) позволяет редактировать изображения только через convert-CMD с помощью ImageIck. У меня есть скрипт, который я использовал на другом сервере с другим провайдером, который позволяет установить ImageIck CLASS.

Это скрипт:

header("Cache-Control: private, max-age=".(60 * 60 * 24 * 7).", pre-check=".(60 * 60 * 24 * 7));
header("Pragma: private");
header("Expires: " . date(DATE_RFC822,strtotime(" 2 day")));

$valid_size = array('xx','sm','xs'); //XX = 1440px * 960px //  SM =

$img = $_GET['img'];
if(!empty($_GET['output-quality'])) $img_quality = $_GET['output-quality']; else $img_quality = NULL;
if(!empty($_GET['output-size']) && in_array($_GET['output-size'],$valid_size)) $img_size = $_GET['output-size']; else $img_size = NULL;

$img_arr    = explode('.',$img);
$img_type   = $img_arr[1];
$img_path   = '../'.$img;

if(isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) && (strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']) == filemtime($img_path))) {

header('Last-Modified: '.gmdate('D, d M Y H:i:s', filemtime($img_path)).' GMT', true, 304);
exit;
}

$im = new Imagick($img_path);
if(!is_null($img_quality)) $im -> setImageCompressionQuality($img_quality);
if(!is_null($img_size)) {

switch($img_size) {

case 'xx' :

$w = 1440;
$h = 940;
break;
case 'sm' :

$w = 300;
$h = 200;
break;
case 'xs' :

$w = 150;
$h = 150;
break;
}

$dim = $im -> getImageGeometry();
$wDim = $dim['width'];
$hDim = $dim['height'];

if($wDim >= 150 || $hDim >= 150) {

if($wDim >= $hDim) {

$o_scale = $wDim / $hDim;
$n_scale = $w / $h;

if($n_scale >= $o_scale) {

$im -> scaleImage($w,0);
} else $im -> scaleImage(0,$h);
} else {

$o_scale = $hDim / $wDim;
$n_scale = $w / $h;

if($n_scale >= $o_scale) {

$im -> scaleImage($w,0);
} else $im -> scaleImage($w,0);
}

$dim = $im -> getImageGeometry();

$wDim = $dim['width'];
$hDim = $dim['height'];

$wTemp = ($wDim - $w) / 2;
$hTemp = ($hDim - $h) / 2;

$im -> cropImage($w,$h,$wTemp,$hTemp);
}
}
header('Content-type: image/'.$im -> getImageFormat());
header('Content-disposition: inline; filename="'.$img.'"');

echo $im;

Это отлично работает для меня с ImageIck CLASS, но теперь я должен обрабатывать эту обработку без ImageIck CLASS только с convert-CMD.
Я не знаю, как справиться с этим инструментом командной строки …

Спасибо!

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]