Browse Source

Better command-line ImageMagick image processing

pull/40/head
Michael Foster 11 years ago
parent
commit
62f8ea4813
  1. 6
      inc/config.php
  2. 18
      inc/image.php

6
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;

18
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);
}
}
}

Loading…
Cancel
Save