-
- if ($this->isImagick()) {
- /*
- * If it is not animated, there will be only one iteration here,
- * so don't bother checking
- */
- // Don't forget to go back to the first frame
- $this->image->setFirstIterator();
- do {
- // FIXME - implement horizantal bias for scaling as in followin GD functions
- // to allow very tall images to be constrained only horizontally.
-
- $this->image->scaleDown($dest_width, $dest_height);
- } while ($this->image->nextImage());
-
- // These may not be necessary any more
- $this->width = $this->image->getImageWidth();
- $this->height = $this->image->getImageHeight();
-
- return;
- }
-
-
- $dest = imagecreatetruecolor($dest_width, $dest_height);
- imagealphablending($dest, false);
- imagesavealpha($dest, true);
- if ($this->type=='image/png') {
- imagefill($dest, 0, 0, imagecolorallocatealpha($dest, 0, 0, 0, 127)); // fill with alpha
- }
- imagecopyresampled($dest, $this->image, 0, 0, 0, 0, $dest_width, $dest_height, $width, $height);
- if ($this->image) {
- imagedestroy($this->image);
- }
- $this->image = $dest;
- $this->width = imagesx($this->image);
- $this->height = imagesy($this->image);