From 04135462c83647b406606416d727dcd8146c7f93 Mon Sep 17 00:00:00 2001 From: horst-n Date: Fri, 26 Apr 2019 18:11:04 +0200 Subject: [PATCH] refactored webp creation and compression --- .../ImageSizerEngineIMagick.module | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/wire/modules/Image/ImageSizerEngineIMagick/ImageSizerEngineIMagick.module b/wire/modules/Image/ImageSizerEngineIMagick/ImageSizerEngineIMagick.module index 7332fd3d..2f743e00 100755 --- a/wire/modules/Image/ImageSizerEngineIMagick/ImageSizerEngineIMagick.module +++ b/wire/modules/Image/ImageSizerEngineIMagick/ImageSizerEngineIMagick.module @@ -360,6 +360,10 @@ class ImageSizerEngineIMagick extends ImageSizerEngine { $this->im->setImageDepth(($this->imageDepth > 8 ? 8 : $this->imageDepth)); // prepare to save file(s) + if($this->webpAdd) { + $this->imWebp = clone $this->im; // make a copy before compressions take effect + } + $this->im->setImageFormat($this->imageFormat); $this->im->setImageType($this->imageType); if(in_array(strtoupper($this->imageFormat), array('JPG', 'JPEG'))) { @@ -394,16 +398,13 @@ class ImageSizerEngineIMagick extends ImageSizerEngine { // optionally create a WebP dependency file if($this->webpAdd) { - $this->imWebp = new \IMagick(); - if($this->imWebp->readImage($dstFilename)) { - // prepare for webp output - $this->imWebp->setImageFormat('webp'); - $this->imWebp->setImageCompressionQuality($this->webpQuality); - $this->imWebp->setOption('webp:method', '6'); - #$this->imWebp->setOption('webp:lossless', 'true'); - // save to file - $return = $this->imWebp->writeImage($webpFilename); - } + // prepare for webp output + $this->imWebp->setImageFormat('webp'); + $this->imWebp->setImageCompressionQuality($this->webpQuality); + $this->imWebp->setOption('webp:method', '6'); + #$this->imWebp->setOption('webp:lossless', 'true'); + // save to file + $return = $this->imWebp->writeImage($webpFilename); } // release and return to event-object