summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Foster <savetheinternet@tinyboard.org>2013-08-02 23:18:25 -0400
committerMichael Foster <savetheinternet@tinyboard.org>2013-08-02 23:18:25 -0400
commit62f8ea4813092b42a2cd390a8358ce798d103f40 (patch)
treea8fae755b81f2fc5dd2bea585b9c14b22c296834
parent6ecda16be3a69b42ae6d6149e0eaa9578015a21a (diff)
Better command-line ImageMagick image processing
-rw-r--r--inc/config.php6
-rw-r--r--inc/image.php18
2 files changed, 12 insertions, 12 deletions
diff --git a/inc/config.php b/inc/config.php
index ca6f7b69..337d92cb 100644
--- a/inc/config.php
+++ b/inc/config.php
@@ -492,9 +492,9 @@
$config['thumb_method'] = 'gd';
// $config['thumb_method'] = 'convert';
- // Command-line options passed to ImageMagick when using `convert` for thumbnailing.
- // http://www.imagemagick.org/ImageMagick-7.0.0/script/command-line-options.php
- $config['convert_args'] = '-background transparent -filter Point -sample %dx%d +antialias -quality 50';
+ // Command-line options passed to ImageMagick when using `convert` for thumbnailing. Don't touch the
+ // placement of "%s" and "%d".
+ $config['convert_args'] = '-background transparent %s -strip -thumbnail %dx%d -quality 65';
// Strip EXIF metadata from JPEG files.
$config['strip_exif'] = false;
diff --git a/inc/image.php b/inc/image.php
index e30c6919..141973ee 100644
--- a/inc/image.php
+++ b/inc/image.php
@@ -284,19 +284,19 @@ class ImageConvert extends ImageBase {
if ($this->format == 'gif' && ($config['thumb_ext'] == 'gif' || $config['thumb_ext'] == '') && $config['thumb_keep_animation_frames'] > 1) {
if ($this->gifsicle) {
- if (trim(shell_exec("gifsicle --unoptimize -O2 --resize {$this->width}x{$this->height} < " .
+ if (trim($error = shell_exec("gifsicle --unoptimize -O2 --resize {$this->width}x{$this->height} < " .
escapeshellarg($this->src . '') . " \"#0-{$config['thumb_keep_animation_frames']}\" > " .
- escapeshellarg($this->temp) . ';echo $?') !== '0') || !file_exists($this->temp))
- error('Failed to resize image!');
+ escapeshellarg($this->temp) . '2>&1 &&echo $?') !== '0') || !file_exists($this->temp))
+ error($error);
} else {
- if (trim(shell_exec('convert ' . sprintf($config['convert_args'], $this->width, $this->height) . ' ' .
- escapeshellarg($this->src . '') . " " . escapeshellarg($this->temp)) . ';echo $?') !== '0' || !file_exists($this->temp))
- error('Failed to resize image!');
+ if (trim($error = shell_exec('convert ' . sprintf($config['convert_args'], '', $this->width, $this->height) . ' ' .
+ escapeshellarg($this->src) . ' ' . escapeshellarg($this->temp) . ' 2>&1 &&echo $?')) !== '0' || !file_exists($this->temp))
+ error($error);
}
} else {
- if (trim(shell_exec('convert -flatten ' . sprintf($config['convert_args'], $this->width, $this->height) . ' ' .
- escapeshellarg($this->src . '[0]') . " " . escapeshellarg($this->temp) . ';echo $?')) !== '0' || !file_exists($this->temp))
- error('Failed to resize image!');
+ if (trim($error = shell_exec('convert ' . sprintf($config['convert_args'], '-flatten', $this->width, $this->height) . ' ' .
+ escapeshellarg($this->src . '[0]') . " " . escapeshellarg($this->temp) . ' 2>&1 &&echo $?')) !== '0' || !file_exists($this->temp))
+ error($error);
}
}
}