Fix animated thumbnails with convert
and Imagick
This commit is contained in:
parent
1d93aa51b0
commit
3592913249
@ -431,10 +431,10 @@
|
|||||||
$config['spoiler_image'] = 'static/spoiler.png';
|
$config['spoiler_image'] = 'static/spoiler.png';
|
||||||
|
|
||||||
// Thumbnail quality (compression level), from 0 to 9
|
// 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
|
// 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
|
// Store image hash in the database for r9k-like boards implementation soon
|
||||||
// Function name for hashing
|
// Function name for hashing
|
||||||
|
@ -57,6 +57,7 @@ class Image {
|
|||||||
|
|
||||||
$thumb = new $classname(false);
|
$thumb = new $classname(false);
|
||||||
$thumb->src = $this->src;
|
$thumb->src = $this->src;
|
||||||
|
$thumb->format = $this->format;
|
||||||
$thumb->original_width = $this->size->width;
|
$thumb->original_width = $this->size->width;
|
||||||
$thumb->original_height = $this->size->height;
|
$thumb->original_height = $this->size->height;
|
||||||
|
|
||||||
@ -75,6 +76,7 @@ class Image {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$thumb->_resize($this->image->image, $width, $height);
|
$thumb->_resize($this->image->image, $width, $height);
|
||||||
|
|
||||||
return $thumb;
|
return $thumb;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -181,7 +183,7 @@ class ImageImagick extends ImageBase {
|
|||||||
public function resize() {
|
public function resize() {
|
||||||
global $config;
|
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 = new Imagick();
|
||||||
$this->image->setFormat('gif');
|
$this->image->setFormat('gif');
|
||||||
|
|
||||||
@ -264,8 +266,15 @@ class ImageConvert extends ImageBase {
|
|||||||
|
|
||||||
$quality = $config['thumb_quality'] * 10;
|
$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))
|
if ($this->format == 'gif' && $config['thumb_ext'] == 'gif' && $config['thumb_keep_animation_frames'] > 1) {
|
||||||
error('Failed to resize image!');
|
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!');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user