summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--inc/config.php4
-rw-r--r--inc/image.php15
2 files changed, 14 insertions, 5 deletions
diff --git a/inc/config.php b/inc/config.php
index 2cbecdc3..8d93f266 100644
--- a/inc/config.php
+++ b/inc/config.php
@@ -431,10 +431,10 @@
$config['spoiler_image'] = 'static/spoiler.png';
// Thumbnail quality (compression level), from 0 to 9
- $config['thumb_quality'] = 7;
+ $config['thumb_quality'] = 8;
// When a thumbnailed image is going to be the same (in dimension), just copy the entire file and use that as a thumbnail instead of resizing/redrawing
- $config['minimum_copy_resize'] = true;
+ $config['minimum_copy_resize'] = false;
// Store image hash in the database for r9k-like boards implementation soon
// Function name for hashing
diff --git a/inc/image.php b/inc/image.php
index e27364cb..7899ba99 100644
--- a/inc/image.php
+++ b/inc/image.php
@@ -57,6 +57,7 @@ class Image {
$thumb = new $classname(false);
$thumb->src = $this->src;
+ $thumb->format = $this->format;
$thumb->original_width = $this->size->width;
$thumb->original_height = $this->size->height;
@@ -75,6 +76,7 @@ class Image {
}
$thumb->_resize($this->image->image, $width, $height);
+
return $thumb;
}
@@ -181,7 +183,7 @@ class ImageImagick extends ImageBase {
public function resize() {
global $config;
- if (preg_match('/\.gif$/i', $this->src) && $config['thumb_ext'] == 'gif') {
+ if ($this->format == 'gif' && $config['thumb_ext'] == 'gif') {
$this->image = new Imagick();
$this->image->setFormat('gif');
@@ -264,8 +266,15 @@ class ImageConvert extends ImageBase {
$quality = $config['thumb_quality'] * 10;
- if (shell_exec("convert -flatten -filter Point -scale {$this->width}x{$this->height} +antialias -quality {$quality} " . escapeshellarg($this->src . '[0]') . " " . escapeshellarg($this->temp)) || !file_exists($this->temp))
- error('Failed to resize image!');
+ if ($this->format == 'gif' && $config['thumb_ext'] == 'gif' && $config['thumb_keep_animation_frames'] > 1) {
+ if (shell_exec("convert -filter Point -sample {$this->width}x{$this->height} +antialias -quality {$quality} " .
+ escapeshellarg($this->src . '') . " " . escapeshellarg($this->temp)) || !file_exists($this->temp))
+ error('Failed to resize image!');
+ } else {
+ if (shell_exec("convert -flatten -filter Point -scale {$this->width}x{$this->height} +antialias -quality {$quality} " .
+ escapeshellarg($this->src . '[0]') . " " . escapeshellarg($this->temp)) || !file_exists($this->temp))
+ error('Failed to resize image!');
+ }
}
}