| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- <?php
- namespace Identicon;
- use Identicon\Generator\GdGenerator;
- use Identicon\Generator\GeneratorInterface;
- /**
- * @author Benjamin Laugueux <benjamin@yzalis.com>
- */
- class Identicon
- {
- /**
- * @var \Identicon\Generator\GeneratorInterface
- */
- private $generator;
- /**
- * Identicon constructor.
- *
- * @param \Identicon\Generator\GeneratorInterface|null $generator
- */
- public function __construct($generator = null)
- {
- if (null === $generator) {
- $this->generator = new GdGenerator();
- } else {
- $this->generator = $generator;
- }
- }
- /**
- * Set the image generator.
- *
- * @param \Identicon\Generator\GeneratorInterface $generator
- *
- * @return $this
- */
- public function setGenerator(GeneratorInterface $generator)
- {
- $this->generator = $generator;
- return $this;
- }
- /**
- * Display an Identicon image.
- *
- * @param string $string
- * @param int $size
- * @param string $color
- * @param string $backgroundColor
- */
- public function displayImage($string, $size = 64, $color = null, $backgroundColor = null)
- {
- header('Content-Type: '.$this->generator->getMimeType());
- echo $this->getImageData($string, $size, $color, $backgroundColor);
- }
- /**
- * Get an Identicon PNG image data.
- *
- * @param string $string
- * @param int $size
- * @param string $color
- * @param string $backgroundColor
- *
- * @return string
- */
- public function getImageData($string, $size = 64, $color = null, $backgroundColor = null)
- {
- return $this->generator->getImageBinaryData($string, $size, $color, $backgroundColor);
- }
- /**
- * Get an Identicon PNG image resource.
- *
- * @param string $string
- * @param int $size
- * @param string $color
- * @param string $backgroundColor
- *
- * @return string
- */
- public function getImageResource($string, $size = 64, $color = null, $backgroundColor = null)
- {
- return $this->generator->getImageResource($string, $size, $color, $backgroundColor);
- }
- /**
- * Get an Identicon PNG image data as base 64 encoded.
- *
- * @param string $string
- * @param int $size
- * @param string $color
- * @param string $backgroundColor
- *
- * @return string
- */
- public function getImageDataUri($string, $size = 64, $color = null, $backgroundColor = null)
- {
- return sprintf('data:%s;base64,%s', $this->generator->getMimeType(), base64_encode($this->getImageData($string, $size, $color, $backgroundColor)));
- }
-
- /**
- * Get the color of the Identicon
- *
- * Returns an array with RGB values of the Identicon's color. Colors may be NULL if no image has been generated
- * so far (e.g., when calling the method on a new Identicon()).
- *
- * @return array
- */
- public function getColor()
- {
- $colors = $this->generator->getColor();
- return [
- "r" => $colors[0],
- "g" => $colors[1],
- "b" => $colors[2]
- ];
- }
- }
|