experimental animated GIF thumbnails
This commit is contained in:
parent
5c5cfa28e0
commit
3c4d8843ba
@ -155,7 +155,10 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
public function to($src) {
|
public function to($src) {
|
||||||
$this->image->writeImage($src);
|
if(preg_match('/\.gif$/', $src))
|
||||||
|
$this->image->writeImages($src, true);
|
||||||
|
else
|
||||||
|
$this->image->writeImage($src);
|
||||||
}
|
}
|
||||||
public function width() {
|
public function width() {
|
||||||
return $this->image->getImageWidth();
|
return $this->image->getImageWidth();
|
||||||
@ -167,9 +170,37 @@
|
|||||||
return $this->image->destroy();
|
return $this->image->destroy();
|
||||||
}
|
}
|
||||||
public function resize() {
|
public function resize() {
|
||||||
$this->image = clone $this->original;
|
global $config;
|
||||||
|
|
||||||
$this->image->scaleImage($this->width, $this->height, false);
|
if($config['thumb_ext'] == 'gif') {
|
||||||
|
$this->image = new Imagick();
|
||||||
|
$this->image->setFormat('gif');
|
||||||
|
|
||||||
|
$keep_frames = Array();
|
||||||
|
for($i = 1; $i < $this->original->getNumberImages(); $i += floor($this->original->getNumberImages() / $config['thumb_keep_animation_frames']))
|
||||||
|
$keep_frames[] = $i;
|
||||||
|
|
||||||
|
$i = 0;
|
||||||
|
$delay = 0;
|
||||||
|
foreach($this->original as $frame) {
|
||||||
|
$delay += $frame->getImageDelay();
|
||||||
|
|
||||||
|
//if($i < $config['thumb_keep_animation_frames']) {
|
||||||
|
if(in_array($i, $keep_frames)) {
|
||||||
|
$frame->scaleImage($this->width, $this->height, false);
|
||||||
|
$frame->setImagePage($this->width, $this->height, 0, 0);
|
||||||
|
$frame->setImageDelay($delay);
|
||||||
|
$delay = 0;
|
||||||
|
|
||||||
|
$this->image->addImage(clone $frame->getImage());
|
||||||
|
}
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$this->image = clone $this->original;
|
||||||
|
// only resize one frame
|
||||||
|
$this->image->scaleImage($this->width, $this->height, false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user