web/lib/ImageMimeType.php
Mike Colagrosso 6a5c05511a Add cover art database
Co-authored-by: Job Curtis <job.curtis@gmail.com>
Co-authored-by: Alex Cabal <alex@standardebooks.org>
2024-01-03 19:14:04 -06:00

47 lines
937 B
PHP

<?
use function Safe\mime_content_type;
use function Safe\imagecreatefromjpeg;
enum ImageMimeType: string{
case JPG = 'image/jpeg';
case BMP = 'image/bmp';
case PNG = 'image/png';
case TIFF = 'image/tiff';
public function GetFileExtension(): string{
return match($this){
self::JPG => '.jpg',
self::BMP => '.bmp',
self::PNG => '.png',
self::TIFF => '.tif',
};
}
public static function FromFile(?string $path): ?ImageMimeType{
if($path === null || $path == ''){
return null;
}
$mimeType = mime_content_type($path);
$mimeType = match($mimeType){
'image/x-ms-bmp', 'image/x-bmp' => 'image/bmp',
default => $mimeType,
};
if(!$mimeType){
return null;
}
return ImageMimeType::tryFrom($mimeType);
}
/**
* @return array<string>
*/
public static function Values(): array{
return array_map(function(ImageMimeType $case){
return $case->value;
}, ImageMimeType::cases());
}
}