Hi!
Okay, das Problem liegt in der Deaktivierung von shell_exec() in PHP (safe_mode on). Ändere in der class.tx_jmgallery_pi1.php die Funktion "resizeImage()" wie folgt ab:
function resizeImage($width, $height, $quality, $source, $target) {
$gfxObj = t3lib_div::makeInstance("t3lib_stdgraphic");
if ($GLOBALS['TYPO3_CONF_VARS']['GFX']['im'] == 1) {
$stdGraphic = t3lib_div::makeInstance("t3lib_stdGraphic");
$info = $stdGraphic->getImageDimensions($source);
$options = array();
$options["maxH"] = $height;
$options["maxW"] = $width;
$data = $stdGraphic->getImageScale($info, $width."m", $height."m", $options);
$params = '-geometry '.$data[0].'x'.$data[1].'! -quality '.$quality.' ';
$cmd = t3lib_div::imageMagickCommand('convert', $params.' "'.$source.'" "'.$target.'"');
$im = array();
$im["string"] = $cmd;
$im["error"] = exec($cmd.' 2>&1');
return $im;
} else {
// Get new dimensions
list($width_orig, $height_orig) = getimagesize($source);
if ($width && ($width_orig < $height_orig)) {
$width = ($height / $height_orig) * $width_orig;
} else {
$height = ($width / $width_orig) * $height_orig;
}
// Resample
$image_p = imagecreatetruecolor($width, $height);
$image = imagecreatefromjpeg($source);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);
// Output
imagejpeg($image_p, $target, $quality);
}
}
Ebenso für die generateCover() Methode
function generateCover($cover, $album, $properties) {
$input = $album["default_dir"]."/".$cover["filename"];
$output = $album["default_dir"]."/covers/".$this->conf["properties_pid"]."_".$cover["filename"];
$this->checkDir($album["default_dir"]."/covers");
if ($this->conf["coverEffectEnable"]) {
if ($GLOBALS['TYPO3_CONF_VARS']['GFX']['im'] == 1) {
$stdGraphic = t3lib_div::makeInstance("t3lib_stdGraphic");
$info = $stdGraphic->getImageDimensions($input);
$options = array();
$options["maxH"] = $this->conf["cover."]["maxHeight"];
$options["maxW"] = $this->conf["cover."]["maxWidth"];
$data = $stdGraphic->getImageScale($info, $width."m", $height."m", $options);
$dimension = $data[0].'x'.$data[1];
$params = str_replace("###DIMENSION###", $dimension, $this->conf["cover."]["effect"]);
$params = str_replace("###SOURCE###", '"'.$input.'"', $params);
$params = str_replace("###TARGET###", '"'.$output.'"', $params);
$cmd = rtrim($GLOBALS['TYPO3_CONF_VARS']['GFX']['im_path'],'/')."/convert ".$params;
$im = array();
$im["string"] = $cmd;
$im["error"] = exec($cmd.' 2>&1');
return $im;
} else {
return null;
}
} else {
return $this->resizeImage($this->conf["cover."]["maxWidth"], $this->conf["cover."]["maxHeight"], $this->conf["cover."]["quality"], $input, $output);
}
}
Anmerkung: Geändert wurde nur der IM-Aufruf von shell_exec(...) nach exec(...).
Gruß Jens