| Server IP : 54.233.248.239 / Your IP : 172.28.1.13 Web Server : Apache System : Linux ip-172-28-29-189 6.5.0-1014-aws #14~22.04.1-Ubuntu SMP Thu Feb 15 15:27:06 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.2.34-43+ubuntu22.04.1+deb.sury.org+1 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /var/www/html/vinumday2_0/vendor/intervention/image/src/Intervention/Image/Imagick/ |
Upload File : |
<?php
namespace Intervention\Image\Imagick;
use Intervention\Image\Image;
class Decoder extends \Intervention\Image\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 \Intervention\Image\Exception\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->readImageBlob($binary);
} catch (\ImagickException $e) {
throw new \Intervention\Image\Exception\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;
}
}