yoti-8.x-2.5/sdk/Yoti/Entity/Image.php

sdk/Yoti/Entity/Image.php
<?php

namespace Yoti\Entity;

use Yoti\Exception\AttributeException;

/**
 * Image entity class.
 *
 * @package Yoti\Entity
 */
class Image
{
    /**
     * Image data.
     *
     * @var string
     */
    private $content;

    /**
     * @var string
     */
    private $mimeType;

    /**
     * Map image extension to the type enum which is an integer.
     *
     * @var array
     */
    private $imageTypeMap = [
        'jpeg' => IMAGETYPE_JPEG,
        'png' => IMAGETYPE_PNG,
    ];

    /**
     * Image constructor.
     *
     * @param string $content
     * @param string $imageExtension
     */
    public function __construct($content, $imageExtension)
    {
        $this->content = $content;
        $this->mimeType = $this->imageTypeToMimeType(strtolower($imageExtension));
    }

    /**
     * @param $imageExtension
     *
     * @return string
     *
     * @throws AttributeException
     */
    private function imageTypeToMimeType($imageExtension)
    {
        $this->validateImageExtension($imageExtension);
        $imageTypeEnum = $this->imageTypeMap[$imageExtension];

        return image_type_to_mime_type($imageTypeEnum);
    }

    /**
     * Returns Image data.
     *
     * @return string
     */
    public function getContent()
    {
        return $this->content;
    }

    /**
     * @return string
     */
    public function getMimeType()
    {
        return $this->mimeType;
    }

    /**
     * @return null|string
     */
    public function getBase64Content()
    {
        $data = base64_encode($this->content);
        return "data:{$this->mimeType};base64,{$data}";
    }

    /**
     * @param $imageExtension
     *
     * @throws AttributeException
     */
    private function validateImageExtension($imageExtension)
    {
        if (!isset($this->imageTypeMap[$imageExtension])) {
            throw new AttributeException("Image extension {$imageExtension} not supported");
        }
    }

    /**
     * Return Image data.
     *
     * @return string
     */
    public function __toString()
    {
        return $this->content;
    }
}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc