[
MAINHACK
]
Mail Test
BC
Config Scan
HOME
Create...
New File
New Folder
Viewing / Editing File: AbstractEncoder.php
<?php namespace Intervention\Image; use Intervention\Image\Exception\InvalidArgumentException; use Intervention\Image\Exception\NotSupportedException; abstract class AbstractEncoder { /** * Buffer of encode result data * * @var string */ public $result; /** * Image object to encode * * @var Image */ public $image; /** * Output format of encoder instance * * @var string */ public $format; /** * Output quality of encoder instance * * @var int */ public $quality; /** * Processes and returns encoded image as JPEG string * * @return string */ abstract protected function processJpeg(); /** * Processes and returns encoded image as PNG string * * @return string */ abstract protected function processPng(); /** * Processes and returns encoded image as GIF string * * @return string */ abstract protected function processGif(); /** * Processes and returns encoded image as TIFF string * * @return string */ abstract protected function processTiff(); /** * Processes and returns encoded image as BMP string * * @return string */ abstract protected function processBmp(); /** * Processes and returns encoded image as ICO string * * @return string */ abstract protected function processIco(); /** * Processes and returns image as WebP encoded string * * @return string */ abstract protected function processWebp(); /** * Processes and returns image as Avif encoded string * * @return string */ abstract protected function processAvif(); /** * Processes and returns image as Heic encoded string * * @return string */ abstract protected function processHeic(); /** * Process a given image * * @param Image $image * @param string $format * @param int $quality * @return Image */ public function process(Image $image, $format = null, $quality = null) { $this->setImage($image); $this->setFormat($format); $this->setQuality($quality); switch (strtolower($this->format)) { case 'data-url': $this->result = $this->processDataUrl(); break; case 'gif': case 'image/gif': $this->result = $this->processGif(); break; case 'png': case 'image/png': case 'image/x-png': $this->result = $this->processPng(); break; case 'jpg': case 'jpeg': case 'jfif': case 'image/jp2': case 'image/jpg': case 'image/jpeg': case 'image/pjpeg': case 'image/jfif': $this->result = $this->processJpeg(); break; case 'tif': case 'tiff': case 'image/tiff': case 'image/tif': case 'image/x-tif': case 'image/x-tiff': $this->result = $this->processTiff(); break; case 'bmp': case 'ms-bmp': case 'x-bitmap': case 'x-bmp': case 'x-ms-bmp': case 'x-win-bitmap': case 'x-windows-bmp': case 'x-xbitmap': case 'image/ms-bmp': case 'image/x-bitmap': case 'image/x-bmp': case 'image/x-ms-bmp': case 'image/x-win-bitmap': case 'image/x-windows-bmp': case 'image/x-xbitmap': $this->result = $this->processBmp(); break; case 'ico': case 'image/x-ico': case 'image/x-icon': case 'image/vnd.microsoft.icon': $this->result = $this->processIco(); break; case 'psd': case 'image/vnd.adobe.photoshop': $this->result = $this->processPsd(); break; case 'webp': case 'image/webp': case 'image/x-webp': $this->result = $this->processWebp(); break; case 'avif': case 'image/avif': $this->result = $this->processAvif(); break; case 'heic': case 'image/heic': case 'image/heif': $this->result = $this->processHeic(); break; default: throw new NotSupportedException( "Encoding format ({$this->format}) is not supported." ); } $this->setImage(null); return $image->setEncoded($this->result); } /** * Processes and returns encoded image as data-url string * * @return string */ protected function processDataUrl() { $mime = $this->image->mime ? $this->image->mime : 'image/png'; return sprintf('data:%s;base64,%s', $mime, base64_encode($this->process($this->image, $mime, $this->quality)) ); } /** * Sets image to process * * @param Image $image */ protected function setImage($image) { $this->image = $image; } /** * Determines output format * * @param string $format */ protected function setFormat($format = null) { if ($format == '' && $this->image instanceof Image) { $format = $this->image->mime; } $this->format = $format ? $format : 'jpg'; return $this; } /** * Determines output quality * * @param int $quality */ protected function setQuality($quality) { $quality = is_null($quality) ? 90 : $quality; $quality = $quality === 0 ? 1 : $quality; if ($quality < 0 || $quality > 100) { throw new InvalidArgumentException( 'Quality must range from 0 to 100.' ); } $this->quality = intval($quality); return $this; } }
Save Changes
Cancel / Back
Close ×
Server Info
Hostname: server1.winmanyltd.com
Server IP: 203.161.60.52
PHP Version: 8.3.27
Server Software: Apache
System: Linux server1.winmanyltd.com 4.18.0-553.22.1.el8_10.x86_64 #1 SMP Tue Sep 24 05:16:59 EDT 2024 x86_64
HDD Total: 117.98 GB
HDD Free: 59.69 GB
Domains on IP: N/A (Requires external lookup)
System Features
Safe Mode:
Off
disable_functions:
None
allow_url_fopen:
On
allow_url_include:
Off
magic_quotes_gpc:
Off
register_globals:
Off
open_basedir:
None
cURL:
Enabled
ZipArchive:
Enabled
MySQLi:
Enabled
PDO:
Enabled
wget:
Yes
curl (cmd):
Yes
perl:
Yes
python:
Yes (py3)
gcc:
Yes
pkexec:
Yes
git:
Yes
User Info
Username: eliosofonline
User ID (UID): 1002
Group ID (GID): 1003
Script Owner UID: 1002
Current Dir Owner: 1002