![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/ledger.corals.io/vendor/intervention/image/src/Intervention/Image/Imagick/ |
<?php namespace Intervention\Image\Imagick; use Intervention\Image\AbstractDecoder; use Intervention\Image\Exception\NotReadableException; use Intervention\Image\Exception\NotSupportedException; use Intervention\Image\Image; class Decoder extends AbstractDecoder { /** * Initiates new image from path in filesystem * * @param string $path * @return \Intervention\Image\Image */ public function initFromPath($path) { $core = new \Imagick; try { $core->setBackgroundColor(new \ImagickPixel('transparent')); $core->readImage($path); $core->setImageType(defined('\Imagick::IMGTYPE_TRUECOLORALPHA') ? \Imagick::IMGTYPE_TRUECOLORALPHA : \Imagick::IMGTYPE_TRUECOLORMATTE); } catch (\ImagickException $e) { throw new \Intervention\Image\Exception\NotReadableException( "Unable to read image from path ({$path}).", 0, $e ); } // build image $image = $this->initFromImagick($core); $image->setFileInfoFromPath($path); return $image; } /** * Initiates new image from GD resource * * @param Resource $resource * @return \Intervention\Image\Image */ public function initFromGdResource($resource) { throw new NotSupportedException( 'Imagick driver is unable to init from GD resource.' ); } /** * Initiates new image from Imagick object * * @param Imagick $object * @return \Intervention\Image\Image */ public function initFromImagick(\Imagick $object) { // currently animations are not supported // so all images are turned into static $object = $this->removeAnimation($object); // reset image orientation $object->setImageOrientation(\Imagick::ORIENTATION_UNDEFINED); return new Image(new Driver, $object); } /** * Initiates new image from binary data * * @param string $data * @return \Intervention\Image\Image */ public function initFromBinary($binary) { $core = new \Imagick; try { $core->setBackgroundColor(new \ImagickPixel('transparent')); $core->readImageBlob($binary); } catch (\ImagickException $e) { throw new NotReadableException( "Unable to read image from binary data.", 0, $e ); } // build image $image = $this->initFromImagick($core); $image->mime = finfo_buffer(finfo_open(FILEINFO_MIME_TYPE), $binary); return $image; } /** * Turns object into one frame Imagick object * by removing all frames except first * * @param Imagick $object * @return Imagick */ private function removeAnimation(\Imagick $object) { $imagick = new \Imagick; foreach ($object as $frame) { $imagick->addImage($frame->getImage()); break; } $object->destroy(); return $imagick; } }