Change imagemagick commands to return the error output
Added ico to transcode extension
This commit is contained in:
parent
070429402b
commit
58acb71282
2 changed files with 16 additions and 5 deletions
|
@ -208,8 +208,11 @@ function create_thumbnail_convert($hash, $input_type = ""): bool
|
||||||
$cmd = sprintf($format, $convert, $w, $h, $options, $q, $bg,$input_type, $inname, $type, $outname);
|
$cmd = sprintf($format, $convert, $w, $h, $options, $q, $bg,$input_type, $inname, $type, $outname);
|
||||||
$cmd = str_replace("\"convert\"", "convert", $cmd); // quotes are only needed if the path to convert contains a space; some other times, quotes break things, see github bug #27
|
$cmd = str_replace("\"convert\"", "convert", $cmd); // quotes are only needed if the path to convert contains a space; some other times, quotes break things, see github bug #27
|
||||||
exec($cmd, $output, $ret);
|
exec($cmd, $output, $ret);
|
||||||
|
if ($ret!=0) {
|
||||||
log_debug('handle_pixel', "Generating thumbnail with command `$cmd`, returns $ret");
|
log_warning('imageboard/misc', "Generating thumbnail with command `$cmd`, returns $ret, outputting ".implode("\r\n",$output));
|
||||||
|
} else {
|
||||||
|
log_debug('imageboard/misc', "Generating thumbnail with command `$cmd`, returns $ret");
|
||||||
|
}
|
||||||
|
|
||||||
if ($config->get_bool("thumb_optim", false)) {
|
if ($config->get_bool("thumb_optim", false)) {
|
||||||
exec("jpegoptim $outname", $output, $ret);
|
exec("jpegoptim $outname", $output, $ret);
|
||||||
|
|
|
@ -43,6 +43,7 @@ class TranscodeImage extends Extension
|
||||||
"psd",
|
"psd",
|
||||||
"tiff",
|
"tiff",
|
||||||
"webp",
|
"webp",
|
||||||
|
"ico",
|
||||||
]
|
]
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -68,6 +69,7 @@ class TranscodeImage extends Extension
|
||||||
const INPUT_FORMATS = [
|
const INPUT_FORMATS = [
|
||||||
"BMP" => "bmp",
|
"BMP" => "bmp",
|
||||||
"GIF" => "gif",
|
"GIF" => "gif",
|
||||||
|
"ICO" => "ico",
|
||||||
"JPG" => "jpg",
|
"JPG" => "jpg",
|
||||||
"PNG" => "png",
|
"PNG" => "png",
|
||||||
"PSD" => "psd",
|
"PSD" => "psd",
|
||||||
|
@ -440,15 +442,21 @@ class TranscodeImage extends Extension
|
||||||
}
|
}
|
||||||
$tmp_name = tempnam("/tmp", "shimmie_transcode");
|
$tmp_name = tempnam("/tmp", "shimmie_transcode");
|
||||||
|
|
||||||
$format = '"%s" %s -quality %u -background %s "%s" %s:"%s"';
|
$source_type = "";
|
||||||
$cmd = sprintf($format, $convert, $args, $q, $bg, $source_name, $ext, $tmp_name);
|
switch ($source_format) {
|
||||||
|
case "ico":
|
||||||
|
$source_type = "ico:";
|
||||||
|
}
|
||||||
|
|
||||||
|
$format = '"%s" %s -quality %u -background %s %s"%s" %s:"%s" 2>&1';
|
||||||
|
$cmd = sprintf($format, $convert, $args, $q, $bg, $source_type, $source_name, $ext, $tmp_name);
|
||||||
$cmd = str_replace("\"convert\"", "convert", $cmd); // quotes are only needed if the path to convert contains a space; some other times, quotes break things, see github bug #27
|
$cmd = str_replace("\"convert\"", "convert", $cmd); // quotes are only needed if the path to convert contains a space; some other times, quotes break things, see github bug #27
|
||||||
exec($cmd, $output, $ret);
|
exec($cmd, $output, $ret);
|
||||||
|
|
||||||
log_debug('transcode', "Transcoding with command `$cmd`, returns $ret");
|
log_debug('transcode', "Transcoding with command `$cmd`, returns $ret");
|
||||||
|
|
||||||
if ($ret!==0) {
|
if ($ret!==0) {
|
||||||
throw new ImageTranscodeException("Transcoding failed with command ".$cmd);
|
throw new ImageTranscodeException("Transcoding failed with command ".$cmd.", returning ".implode("\r\n", $output));
|
||||||
}
|
}
|
||||||
|
|
||||||
return $tmp_name;
|
return $tmp_name;
|
||||||
|
|
Reference in a new issue