Implement Arrayable to image metadata

This commit is contained in:
Giuseppe Criscione 2023-08-23 17:13:25 +02:00
parent 4a14b02b8a
commit de1781b288
4 changed files with 33 additions and 15 deletions

View File

@ -2,18 +2,18 @@
namespace Formwork\Images\ColorProfile;
enum ColorSpace
enum ColorSpace: string
{
case XYZ;
case LAB;
case LUV;
case YCbCr;
case XYY;
case RGB;
case Grayscale;
case HSV;
case HLS;
case CMYK;
case CMY;
case Palette;
case XYZ = 'XYZ';
case LAB = 'LAB';
case LUV = 'LUV';
case YCbCr = 'YCbCr';
case XYY = 'XYY';
case RGB = 'RGB';
case Grayscale = 'Grayscale';
case HSV = 'HSV';
case HLS = 'HLS';
case CMYK = 'CMYK';
case CMY = 'CMY';
case Palette = 'Palette';
}

View File

@ -2,7 +2,9 @@
namespace Formwork\Images\Exif;
class ExifData
use Formwork\Data\Contracts\Arrayable;
class ExifData implements Arrayable
{
protected ExifReader $reader;
@ -27,6 +29,11 @@ class ExifData
return $this->tags;
}
public function toArray(): array
{
return iterator_to_array($this->parsedTags());
}
public function parsedTags()
{
foreach ($this->tags as $key => $value) {

View File

@ -349,6 +349,11 @@ class Image extends File
return $this->handler()->getInfo();
}
public function toArray(): array
{
return [...parent::toArray(), 'imageInfo' => $this->info()->toArray(), 'exif' => $this->getExifData()?->toArray(), 'colorProfile' => $this->getColorProfile()?->name(), 'uri' => $this->uri()];
}
protected function getHash(?string $mimeType = null): string
{
$mimeType ??= $this->mimeType();

View File

@ -2,10 +2,11 @@
namespace Formwork\Images;
use Formwork\Data\Contracts\Arrayable;
use Formwork\Images\ColorProfile\ColorSpace;
use UnexpectedValueException;
class ImageInfo
class ImageInfo implements Arrayable
{
protected string $mimeType;
@ -87,4 +88,9 @@ class ImageInfo
{
return $this->animationRepeatCount;
}
public function toArray(): array
{
return get_object_vars($this);
}
}