%PDF- %PDF-
| Direktori : /home/vacivi36/intranet.vacivitta.com.br/protected/vendor/imagine/imagine/src/Image/ |
| Current File : /home/vacivi36/intranet.vacivitta.com.br/protected/vendor/imagine/imagine/src/Image/Format.php |
<?php
namespace Imagine\Image;
use ReflectionClass;
/**
* Represent an image format.
*
* @since 1.3.0
*/
class Format
{
const ID_AVIF = 'avif';
const ID_BMP = 'bmp';
const ID_GIF = 'gif';
const ID_HEIC = 'heic';
const ID_JPEG = 'jpeg';
const ID_JXL = 'jxl';
const ID_PNG = 'png';
const ID_WBMP = 'wbmp';
const ID_WEBP = 'webp';
const ID_XBM = 'xbm';
/**
* @var \Imagine\Image\FormatList|null
*/
private static $all = null;
/**
* @var string
*/
private $id;
/**
* @var string
*/
private $mimeType;
/**
* @var string
*/
private $canonicalFileExtension;
/**
* @var string[]
*/
private $alternativeIDs;
/**
* @param string $id
* @param string $fileExtension
* @param string $mimeType
* @param string[] $alternativeIDs
* @param mixed $canonicalFileExtension
*/
private function __construct($id, $mimeType, $canonicalFileExtension, $alternativeIDs = array())
{
$this->id = $id;
$this->mimeType = $mimeType;
$this->canonicalFileExtension = $canonicalFileExtension;
$this->alternativeIDs = $alternativeIDs;
}
/**
* @return string
*/
public function getID()
{
return $this->id;
}
/**
* @return string
*/
public function getMimeType()
{
return $this->mimeType;
}
/**
* @return string
*/
public function getCanonicalFileExtension()
{
return $this->canonicalFileExtension;
}
/**
* @return string[]
*/
public function getAlternativeIDs()
{
return $this->alternativeIDs;
}
/**
* Get a format given its ID.
*
* @param static|string $format the format (a Format instance of a format ID)
*
* @return static|null
*/
public static function get($format)
{
return static::getList()->find($format);
}
/**
* @return static[]
*/
public static function getAll()
{
return static::getList()->getAll();
}
/**
* @return \Imagine\Image\FormatList
*/
protected static function getList()
{
if (self::$all !== null) {
return self::$all;
}
$class = new ReflectionClass(get_called_class());
$formats = array();
foreach ($class->getConstants() as $constantName => $constantValue) {
if (strpos($constantName, 'ID_') === 0) {
$formats[] = static::create($constantValue);
}
}
self::$all = new FormatList($formats);
return self::$all;
}
/**
* @param string $formatID
*
* @return static
*/
protected static function create($formatID)
{
switch ($formatID) {
case static::ID_JPEG:
return new static($formatID, 'image/jpeg', 'jpg', array('jpg', 'pjpeg', 'jfif'));
case static::ID_WBMP:
return new static($formatID, 'image/vnd.wap.wbmp', $formatID);
default:
return new static($formatID, "image/{$formatID}", $formatID);
}
}
}