aboutsummaryrefslogtreecommitdiff
path: root/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Image
diff options
context:
space:
mode:
authorCharles Cabergs <me@cacharle.xyz>2020-07-27 10:05:23 +0200
committerCharles Cabergs <me@cacharle.xyz>2020-07-27 10:05:23 +0200
commit5bf66662a9bdd62c5bccab15e607cd95cfb8fcab (patch)
tree39a1a4629749056191c05dfd899f931701b7acf3 /srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Image
parent5afd237bbd22028b85532b8c0b3fcead49a00764 (diff)
downloadft_server-master.tar.gz
ft_server-master.tar.bz2
ft_server-master.zip
Removed wordpress and phpmyadmin, my server doesn't handle it well and it brings shame on my famillyHEADmaster
Diffstat (limited to 'srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Image')
-rw-r--r--srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Image/EpsImageBackEnd.php376
-rw-r--r--srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Image/ImageBackEndInterface.php87
-rw-r--r--srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Image/ImagickImageBackEnd.php339
-rw-r--r--srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Image/SvgImageBackEnd.php369
-rw-r--r--srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Image/TransformationMatrix.php67
5 files changed, 0 insertions, 1238 deletions
diff --git a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Image/EpsImageBackEnd.php b/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Image/EpsImageBackEnd.php
deleted file mode 100644
index b581b54..0000000
--- a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Image/EpsImageBackEnd.php
+++ /dev/null
@@ -1,376 +0,0 @@
-<?php
-declare(strict_types = 1);
-
-namespace BaconQrCode\Renderer\Image;
-
-use BaconQrCode\Exception\RuntimeException;
-use BaconQrCode\Renderer\Color\Alpha;
-use BaconQrCode\Renderer\Color\Cmyk;
-use BaconQrCode\Renderer\Color\ColorInterface;
-use BaconQrCode\Renderer\Color\Gray;
-use BaconQrCode\Renderer\Color\Rgb;
-use BaconQrCode\Renderer\Path\Close;
-use BaconQrCode\Renderer\Path\Curve;
-use BaconQrCode\Renderer\Path\EllipticArc;
-use BaconQrCode\Renderer\Path\Line;
-use BaconQrCode\Renderer\Path\Move;
-use BaconQrCode\Renderer\Path\Path;
-use BaconQrCode\Renderer\RendererStyle\Gradient;
-use BaconQrCode\Renderer\RendererStyle\GradientType;
-
-final class EpsImageBackEnd implements ImageBackEndInterface
-{
- private const PRECISION = 3;
-
- /**
- * @var string|null
- */
- private $eps;
-
- public function new(int $size, ColorInterface $backgroundColor) : void
- {
- $this->eps = "%!PS-Adobe-3.0 EPSF-3.0\n"
- . "%%Creator: BaconQrCode\n"
- . sprintf("%%%%BoundingBox: 0 0 %d %d \n", $size, $size)
- . "%%BeginProlog\n"
- . "save\n"
- . "50 dict begin\n"
- . "/q { gsave } bind def\n"
- . "/Q { grestore } bind def\n"
- . "/s { scale } bind def\n"
- . "/t { translate } bind def\n"
- . "/r { rotate } bind def\n"
- . "/n { newpath } bind def\n"
- . "/m { moveto } bind def\n"
- . "/l { lineto } bind def\n"
- . "/c { curveto } bind def\n"
- . "/z { closepath } bind def\n"
- . "/f { eofill } bind def\n"
- . "/rgb { setrgbcolor } bind def\n"
- . "/cmyk { setcmykcolor } bind def\n"
- . "/gray { setgray } bind def\n"
- . "%%EndProlog\n"
- . "1 -1 s\n"
- . sprintf("0 -%d t\n", $size);
-
- if ($backgroundColor instanceof Alpha && 0 === $backgroundColor->getAlpha()) {
- return;
- }
-
- $this->eps .= wordwrap(
- '0 0 m'
- . sprintf(' %s 0 l', (string) $size)
- . sprintf(' %s %s l', (string) $size, (string) $size)
- . sprintf(' 0 %s l', (string) $size)
- . ' z'
- . ' ' .$this->getColorSetString($backgroundColor) . " f\n",
- 75,
- "\n "
- );
- }
-
- public function scale(float $size) : void
- {
- if (null === $this->eps) {
- throw new RuntimeException('No image has been started');
- }
-
- $this->eps .= sprintf("%1\$s %1\$s s\n", round($size, self::PRECISION));
- }
-
- public function translate(float $x, float $y) : void
- {
- if (null === $this->eps) {
- throw new RuntimeException('No image has been started');
- }
-
- $this->eps .= sprintf("%s %s t\n", round($x, self::PRECISION), round($y, self::PRECISION));
- }
-
- public function rotate(int $degrees) : void
- {
- if (null === $this->eps) {
- throw new RuntimeException('No image has been started');
- }
-
- $this->eps .= sprintf("%d r\n", $degrees);
- }
-
- public function push() : void
- {
- if (null === $this->eps) {
- throw new RuntimeException('No image has been started');
- }
-
- $this->eps .= "q\n";
- }
-
- public function pop() : void
- {
- if (null === $this->eps) {
- throw new RuntimeException('No image has been started');
- }
-
- $this->eps .= "Q\n";
- }
-
- public function drawPathWithColor(Path $path, ColorInterface $color) : void
- {
- if (null === $this->eps) {
- throw new RuntimeException('No image has been started');
- }
-
- $fromX = 0;
- $fromY = 0;
- $this->eps .= wordwrap(
- 'n '
- . $this->drawPathOperations($path, $fromX, $fromY)
- . ' ' . $this->getColorSetString($color) . " f\n",
- 75,
- "\n "
- );
- }
-
- public function drawPathWithGradient(
- Path $path,
- Gradient $gradient,
- float $x,
- float $y,
- float $width,
- float $height
- ) : void {
- if (null === $this->eps) {
- throw new RuntimeException('No image has been started');
- }
-
- $fromX = 0;
- $fromY = 0;
- $this->eps .= wordwrap(
- 'q n ' . $this->drawPathOperations($path, $fromX, $fromY) . "\n",
- 75,
- "\n "
- );
-
- $this->createGradientFill($gradient, $x, $y, $width, $height);
- }
-
- public function done() : string
- {
- if (null === $this->eps) {
- throw new RuntimeException('No image has been started');
- }
-
- $this->eps .= "%%TRAILER\nend restore\n%%EOF";
- $blob = $this->eps;
- $this->eps = null;
-
- return $blob;
- }
-
- private function drawPathOperations(Iterable $ops, &$fromX, &$fromY) : string
- {
- $pathData = [];
-
- foreach ($ops as $op) {
- switch (true) {
- case $op instanceof Move:
- $fromX = $toX = round($op->getX(), self::PRECISION);
- $fromY = $toY = round($op->getY(), self::PRECISION);
- $pathData[] = sprintf('%s %s m', $toX, $toY);
- break;
-
- case $op instanceof Line:
- $fromX = $toX = round($op->getX(), self::PRECISION);
- $fromY = $toY = round($op->getY(), self::PRECISION);
- $pathData[] = sprintf('%s %s l', $toX, $toY);
- break;
-
- case $op instanceof EllipticArc:
- $pathData[] = $this->drawPathOperations($op->toCurves($fromX, $fromY), $fromX, $fromY);
- break;
-
- case $op instanceof Curve:
- $x1 = round($op->getX1(), self::PRECISION);
- $y1 = round($op->getY1(), self::PRECISION);
- $x2 = round($op->getX2(), self::PRECISION);
- $y2 = round($op->getY2(), self::PRECISION);
- $fromX = $x3 = round($op->getX3(), self::PRECISION);
- $fromY = $y3 = round($op->getY3(), self::PRECISION);
- $pathData[] = sprintf('%s %s %s %s %s %s c', $x1, $y1, $x2, $y2, $x3, $y3);
- break;
-
- case $op instanceof Close:
- $pathData[] = 'z';
- break;
-
- default:
- throw new RuntimeException('Unexpected draw operation: ' . get_class($op));
- }
- }
-
- return implode(' ', $pathData);
- }
-
- private function createGradientFill(Gradient $gradient, float $x, float $y, float $width, float $height) : void
- {
- $startColor = $gradient->getStartColor();
- $endColor = $gradient->getEndColor();
-
- if ($startColor instanceof Alpha) {
- $startColor = $startColor->getBaseColor();
- }
-
- $startColorType = get_class($startColor);
-
- if (! in_array($startColorType, [Rgb::class, Cmyk::class, Gray::class])) {
- $startColorType = Cmyk::class;
- $startColor = $startColor->toCmyk();
- }
-
- if (get_class($endColor) !== $startColorType) {
- switch ($startColorType) {
- case Cmyk::class:
- $endColor = $endColor->toCmyk();
- break;
-
- case Rgb::class:
- $endColor = $endColor->toRgb();
- break;
-
- case Gray::class:
- $endColor = $endColor->toGray();
- break;
- }
- }
-
- $this->eps .= "eoclip\n<<\n";
-
- if ($gradient->getType() === GradientType::RADIAL()) {
- $this->eps .= " /ShadingType 3\n";
- } else {
- $this->eps .= " /ShadingType 2\n";
- }
-
- $this->eps .= " /Extend [ true true ]\n"
- . " /AntiAlias true\n";
-
- switch ($startColorType) {
- case Cmyk::class:
- $this->eps .= " /ColorSpace /DeviceCMYK\n";
- break;
-
- case Rgb::class:
- $this->eps .= " /ColorSpace /DeviceRGB\n";
- break;
-
- case Gray::class:
- $this->eps .= " /ColorSpace /DeviceGray\n";
- break;
- }
-
- switch ($gradient->getType()) {
- case GradientType::HORIZONTAL():
- $this->eps .= sprintf(
- " /Coords [ %s %s %s %s ]\n",
- round($x, self::PRECISION),
- round($y, self::PRECISION),
- round($x + $width, self::PRECISION),
- round($y, self::PRECISION)
- );
- break;
-
- case GradientType::VERTICAL():
- $this->eps .= sprintf(
- " /Coords [ %s %s %s %s ]\n",
- round($x, self::PRECISION),
- round($y, self::PRECISION),
- round($x, self::PRECISION),
- round($y + $height, self::PRECISION)
- );
- break;
-
- case GradientType::DIAGONAL():
- $this->eps .= sprintf(
- " /Coords [ %s %s %s %s ]\n",
- round($x, self::PRECISION),
- round($y, self::PRECISION),
- round($x + $width, self::PRECISION),
- round($y + $height, self::PRECISION)
- );
- break;
-
- case GradientType::INVERSE_DIAGONAL():
- $this->eps .= sprintf(
- " /Coords [ %s %s %s %s ]\n",
- round($x, self::PRECISION),
- round($y + $height, self::PRECISION),
- round($x + $width, self::PRECISION),
- round($y, self::PRECISION)
- );
- break;
-
- case GradientType::RADIAL():
- $centerX = ($x + $width) / 2;
- $centerY = ($y + $height) / 2;
-
- $this->eps .= sprintf(
- " /Coords [ %s %s 0 %s %s %s ]\n",
- round($centerX, self::PRECISION),
- round($centerY, self::PRECISION),
- round($centerX, self::PRECISION),
- round($centerY, self::PRECISION),
- round(max($width, $height) / 2, self::PRECISION)
- );
- break;
- }
-
- $this->eps .= " /Function\n"
- . " <<\n"
- . " /FunctionType 2\n"
- . " /Domain [ 0 1 ]\n"
- . sprintf(" /C0 [ %s ]\n", $this->getColorString($startColor))
- . sprintf(" /C1 [ %s ]\n", $this->getColorString($endColor))
- . " /N 1\n"
- . " >>\n>>\nshfill\nQ\n";
- }
-
- private function getColorSetString(ColorInterface $color) : string
- {
- if ($color instanceof Rgb) {
- return $this->getColorString($color) . ' rgb';
- }
-
- if ($color instanceof Cmyk) {
- return $this->getColorString($color) . ' cmyk';
- }
-
- if ($color instanceof Gray) {
- return $this->getColorString($color) . ' gray';
- }
-
- return $this->getColorSetString($color->toCmyk());
- }
-
- private function getColorString(ColorInterface $color) : string
- {
- if ($color instanceof Rgb) {
- return sprintf('%s %s %s', $color->getRed() / 255, $color->getGreen() / 255, $color->getBlue() / 255);
- }
-
- if ($color instanceof Cmyk) {
- return sprintf(
- '%s %s %s %s',
- $color->getCyan() / 100,
- $color->getMagenta() / 100,
- $color->getYellow() / 100,
- $color->getBlack() / 100
- );
- }
-
- if ($color instanceof Gray) {
- return sprintf('%s', $color->getGray() / 100);
- }
-
- return $this->getColorString($color->toCmyk());
- }
-}
diff --git a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Image/ImageBackEndInterface.php b/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Image/ImageBackEndInterface.php
deleted file mode 100644
index 0935819..0000000
--- a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Image/ImageBackEndInterface.php
+++ /dev/null
@@ -1,87 +0,0 @@
-<?php
-declare(strict_types = 1);
-
-namespace BaconQrCode\Renderer\Image;
-
-use BaconQrCode\Exception\RuntimeException;
-use BaconQrCode\Renderer\Color\ColorInterface;
-use BaconQrCode\Renderer\Path\Path;
-use BaconQrCode\Renderer\RendererStyle\Gradient;
-
-/**
- * Interface for back ends able to to produce path based images.
- */
-interface ImageBackEndInterface
-{
- /**
- * Starts a new image.
- *
- * If a previous image was already started, previous data get erased.
- */
- public function new(int $size, ColorInterface $backgroundColor) : void;
-
- /**
- * Transforms all following drawing operation coordinates by scaling them by a given factor.
- *
- * @throws RuntimeException if no image was started yet.
- */
- public function scale(float $size) : void;
-
- /**
- * Transforms all following drawing operation coordinates by translating them by a given amount.
- *
- * @throws RuntimeException if no image was started yet.
- */
- public function translate(float $x, float $y) : void;
-
- /**
- * Transforms all following drawing operation coordinates by rotating them by a given amount.
- *
- * @throws RuntimeException if no image was started yet.
- */
- public function rotate(int $degrees) : void;
-
- /**
- * Pushes the current coordinate transformation onto a stack.
- *
- * @throws RuntimeException if no image was started yet.
- */
- public function push() : void;
-
- /**
- * Pops the last coordinate transformation from a stack.
- *
- * @throws RuntimeException if no image was started yet.
- */
- public function pop() : void;
-
- /**
- * Draws a path with a given color.
- *
- * @throws RuntimeException if no image was started yet.
- */
- public function drawPathWithColor(Path $path, ColorInterface $color) : void;
-
- /**
- * Draws a path with a given gradient which spans the box described by the position and size.
- *
- * @throws RuntimeException if no image was started yet.
- */
- public function drawPathWithGradient(
- Path $path,
- Gradient $gradient,
- float $x,
- float $y,
- float $width,
- float $height
- ) : void;
-
- /**
- * Ends the image drawing operation and returns the resulting blob.
- *
- * This should reset the state of the back end and thus this method should only be callable once per image.
- *
- * @throws RuntimeException if no image was started yet.
- */
- public function done() : string;
-}
diff --git a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Image/ImagickImageBackEnd.php b/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Image/ImagickImageBackEnd.php
deleted file mode 100644
index f1a94e5..0000000
--- a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Image/ImagickImageBackEnd.php
+++ /dev/null
@@ -1,339 +0,0 @@
-<?php
-declare(strict_types = 1);
-
-namespace BaconQrCode\Renderer\Image;
-
-use BaconQrCode\Exception\RuntimeException;
-use BaconQrCode\Renderer\Color\Alpha;
-use BaconQrCode\Renderer\Color\Cmyk;
-use BaconQrCode\Renderer\Color\ColorInterface;
-use BaconQrCode\Renderer\Color\Gray;
-use BaconQrCode\Renderer\Color\Rgb;
-use BaconQrCode\Renderer\Path\Close;
-use BaconQrCode\Renderer\Path\Curve;
-use BaconQrCode\Renderer\Path\EllipticArc;
-use BaconQrCode\Renderer\Path\Line;
-use BaconQrCode\Renderer\Path\Move;
-use BaconQrCode\Renderer\Path\Path;
-use BaconQrCode\Renderer\RendererStyle\Gradient;
-use BaconQrCode\Renderer\RendererStyle\GradientType;
-use Imagick;
-use ImagickDraw;
-use ImagickPixel;
-
-final class ImagickImageBackEnd implements ImageBackEndInterface
-{
- /**
- * @var string
- */
- private $imageFormat;
-
- /**
- * @var int
- */
- private $compressionQuality;
-
- /**
- * @var Imagick|null
- */
- private $image;
-
- /**
- * @var ImagickDraw|null
- */
- private $draw;
-
- /**
- * @var int|null
- */
- private $gradientCount;
-
- /**
- * @var TransformationMatrix[]|null
- */
- private $matrices;
-
- /**
- * @var int|null
- */
- private $matrixIndex;
-
- public function __construct(string $imageFormat = 'png', int $compressionQuality = 100)
- {
- if (! class_exists(Imagick::class)) {
- throw new RuntimeException('You need to install the imagick extension to use this back end');
- }
-
- $this->imageFormat = $imageFormat;
- $this->compressionQuality = $compressionQuality;
- }
-
- public function new(int $size, ColorInterface $backgroundColor) : void
- {
- $this->image = new Imagick();
- $this->image->newImage($size, $size, $this->getColorPixel($backgroundColor));
- $this->image->setImageFormat($this->imageFormat);
- $this->image->setCompressionQuality($this->compressionQuality);
- $this->draw = new ImagickDraw();
- $this->gradientCount = 0;
- $this->matrices = [new TransformationMatrix()];
- $this->matrixIndex = 0;
- }
-
- public function scale(float $size) : void
- {
- if (null === $this->draw) {
- throw new RuntimeException('No image has been started');
- }
-
- $this->draw->scale($size, $size);
- $this->matrices[$this->matrixIndex] = $this->matrices[$this->matrixIndex]
- ->multiply(TransformationMatrix::scale($size));
- }
-
- public function translate(float $x, float $y) : void
- {
- if (null === $this->draw) {
- throw new RuntimeException('No image has been started');
- }
-
- $this->draw->translate($x, $y);
- $this->matrices[$this->matrixIndex] = $this->matrices[$this->matrixIndex]
- ->multiply(TransformationMatrix::translate($x, $y));
- }
-
- public function rotate(int $degrees) : void
- {
- if (null === $this->draw) {
- throw new RuntimeException('No image has been started');
- }
-
- $this->draw->rotate($degrees);
- $this->matrices[$this->matrixIndex] = $this->matrices[$this->matrixIndex]
- ->multiply(TransformationMatrix::rotate($degrees));
- }
-
- public function push() : void
- {
- if (null === $this->draw) {
- throw new RuntimeException('No image has been started');
- }
-
- $this->draw->push();
- $this->matrices[++$this->matrixIndex] = $this->matrices[$this->matrixIndex - 1];
- }
-
- public function pop() : void
- {
- if (null === $this->draw) {
- throw new RuntimeException('No image has been started');
- }
-
- $this->draw->pop();
- unset($this->matrices[$this->matrixIndex--]);
- }
-
- public function drawPathWithColor(Path $path, ColorInterface $color) : void
- {
- if (null === $this->draw) {
- throw new RuntimeException('No image has been started');
- }
-
- $this->draw->setFillColor($this->getColorPixel($color));
- $this->drawPath($path);
- }
-
- public function drawPathWithGradient(
- Path $path,
- Gradient $gradient,
- float $x,
- float $y,
- float $width,
- float $height
- ) : void {
- if (null === $this->draw) {
- throw new RuntimeException('No image has been started');
- }
-
- $this->draw->setFillPatternURL('#' . $this->createGradientFill($gradient, $x, $y, $width, $height));
- $this->drawPath($path);
- }
-
- public function done() : string
- {
- if (null === $this->draw) {
- throw new RuntimeException('No image has been started');
- }
-
- $this->image->drawImage($this->draw);
- $blob = $this->image->getImageBlob();
- $this->draw->clear();
- $this->image->clear();
- $this->draw = null;
- $this->image = null;
- $this->gradientCount = null;
-
- return $blob;
- }
-
- private function drawPath(Path $path) : void
- {
- $this->draw->pathStart();
-
- foreach ($path as $op) {
- switch (true) {
- case $op instanceof Move:
- $this->draw->pathMoveToAbsolute($op->getX(), $op->getY());
- break;
-
- case $op instanceof Line:
- $this->draw->pathLineToAbsolute($op->getX(), $op->getY());
- break;
-
- case $op instanceof EllipticArc:
- $this->draw->pathEllipticArcAbsolute(
- $op->getXRadius(),
- $op->getYRadius(),
- $op->getXAxisAngle(),
- $op->isLargeArc(),
- $op->isSweep(),
- $op->getX(),
- $op->getY()
- );
- break;
-
- case $op instanceof Curve:
- $this->draw->pathCurveToAbsolute(
- $op->getX1(),
- $op->getY1(),
- $op->getX2(),
- $op->getY2(),
- $op->getX3(),
- $op->getY3()
- );
- break;
-
- case $op instanceof Close:
- $this->draw->pathClose();
- break;
-
- default:
- throw new RuntimeException('Unexpected draw operation: ' . get_class($op));
- }
- }
-
- $this->draw->pathFinish();
- }
-
- private function createGradientFill(Gradient $gradient, float $x, float $y, float $width, float $height) : string
- {
- list($width, $height) = $this->matrices[$this->matrixIndex]->apply($x + $width, $y + $height);
- list($x, $y) = $this->matrices[$this->matrixIndex]->apply($x, $y);
- $width -= $x;
- $height -= $y;
-
- $startColor = $this->getColorPixel($gradient->getStartColor())->getColorAsString();
- $endColor = $this->getColorPixel($gradient->getEndColor())->getColorAsString();
- $gradientImage = new Imagick();
-
- switch ($gradient->getType()) {
- case GradientType::HORIZONTAL():
- $gradientImage->newPseudoImage((int) $height, (int) $width, sprintf(
- 'gradient:%s-%s',
- $startColor,
- $endColor
- ));
- $gradientImage->rotateImage('transparent', -90);
- break;
-
- case GradientType::VERTICAL():
- $gradientImage->newPseudoImage((int) $width, (int) $height, sprintf(
- 'gradient:%s-%s',
- $startColor,
- $endColor
- ));
- break;
-
- case GradientType::DIAGONAL():
- case GradientType::INVERSE_DIAGONAL():
- $gradientImage->newPseudoImage((int) ($width * sqrt(2)), (int) ($height * sqrt(2)), sprintf(
- 'gradient:%s-%s',
- $startColor,
- $endColor
- ));
-
- if (GradientType::DIAGONAL() === $gradient->getType()) {
- $gradientImage->rotateImage('transparent', -45);
- } else {
- $gradientImage->rotateImage('transparent', -135);
- }
-
- $rotatedWidth = $gradientImage->getImageWidth();
- $rotatedHeight = $gradientImage->getImageHeight();
-
- $gradientImage->setImagePage($rotatedWidth, $rotatedHeight, 0, 0);
- $gradientImage->cropImage(
- intdiv($rotatedWidth, 2) - 2,
- intdiv($rotatedHeight, 2) - 2,
- intdiv($rotatedWidth, 4) + 1,
- intdiv($rotatedWidth, 4) + 1
- );
- break;
-
- case GradientType::RADIAL():
- $gradientImage->newPseudoImage((int) $width, (int) $height, sprintf(
- 'radial-gradient:%s-%s',
- $startColor,
- $endColor
- ));
- break;
- }
-
- $id = sprintf('g%d', ++$this->gradientCount);
- $this->draw->pushPattern($id, 0, 0, $x + $width, $y + $height);
- $this->draw->composite(Imagick::COMPOSITE_COPY, $x, $y, $width, $height, $gradientImage);
- $this->draw->popPattern();
- return $id;
- }
-
- private function getColorPixel(ColorInterface $color) : ImagickPixel
- {
- $alpha = 100;
-
- if ($color instanceof Alpha) {
- $alpha = $color->getAlpha();
- $color = $color->getBaseColor();
- }
-
- if ($color instanceof Rgb) {
- return new ImagickPixel(sprintf(
- 'rgba(%d, %d, %d, %F)',
- $color->getRed(),
- $color->getGreen(),
- $color->getBlue(),
- $alpha / 100
- ));
- }
-
- if ($color instanceof Cmyk) {
- return new ImagickPixel(sprintf(
- 'cmyka(%d, %d, %d, %d, %F)',
- $color->getCyan(),
- $color->getMagenta(),
- $color->getYellow(),
- $color->getBlack(),
- $alpha / 100
- ));
- }
-
- if ($color instanceof Gray) {
- return new ImagickPixel(sprintf(
- 'graya(%d%%, %F)',
- $color->getGray(),
- $alpha / 100
- ));
- }
-
- return $this->getColorPixel(new Alpha($alpha, $color->toRgb()));
- }
-}
diff --git a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Image/SvgImageBackEnd.php b/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Image/SvgImageBackEnd.php
deleted file mode 100644
index 714da6e..0000000
--- a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Image/SvgImageBackEnd.php
+++ /dev/null
@@ -1,369 +0,0 @@
-<?php
-declare(strict_types = 1);
-
-namespace BaconQrCode\Renderer\Image;
-
-use BaconQrCode\Exception\RuntimeException;
-use BaconQrCode\Renderer\Color\Alpha;
-use BaconQrCode\Renderer\Color\ColorInterface;
-use BaconQrCode\Renderer\Path\Close;
-use BaconQrCode\Renderer\Path\Curve;
-use BaconQrCode\Renderer\Path\EllipticArc;
-use BaconQrCode\Renderer\Path\Line;
-use BaconQrCode\Renderer\Path\Move;
-use BaconQrCode\Renderer\Path\Path;
-use BaconQrCode\Renderer\RendererStyle\Gradient;
-use BaconQrCode\Renderer\RendererStyle\GradientType;
-use XMLWriter;
-
-final class SvgImageBackEnd implements ImageBackEndInterface
-{
- private const PRECISION = 3;
-
- /**
- * @var XMLWriter|null
- */
- private $xmlWriter;
-
- /**
- * @var int[]|null
- */
- private $stack;
-
- /**
- * @var int|null
- */
- private $currentStack;
-
- /**
- * @var int|null
- */
- private $gradientCount;
-
- public function __construct()
- {
- if (! class_exists(XMLWriter::class)) {
- throw new RuntimeException('You need to install the libxml extension to use this back end');
- }
- }
-
- public function new(int $size, ColorInterface $backgroundColor) : void
- {
- $this->xmlWriter = new XMLWriter();
- $this->xmlWriter->openMemory();
-
- $this->xmlWriter->startDocument('1.0', 'UTF-8');
- $this->xmlWriter->startElement('svg');
- $this->xmlWriter->writeAttribute('xmlns', 'http://www.w3.org/2000/svg');
- $this->xmlWriter->writeAttribute('version', '1.1');
- $this->xmlWriter->writeAttribute('width', (string) $size);
- $this->xmlWriter->writeAttribute('height', (string) $size);
- $this->xmlWriter->writeAttribute('viewBox', '0 0 '. $size . ' ' . $size);
-
- $this->gradientCount = 0;
- $this->currentStack = 0;
- $this->stack[0] = 0;
-
- $alpha = 1;
-
- if ($backgroundColor instanceof Alpha) {
- $alpha = $backgroundColor->getAlpha() / 100;
- }
-
- if (0 === $alpha) {
- return;
- }
-
- $this->xmlWriter->startElement('rect');
- $this->xmlWriter->writeAttribute('x', '0');
- $this->xmlWriter->writeAttribute('y', '0');
- $this->xmlWriter->writeAttribute('width', (string) $size);
- $this->xmlWriter->writeAttribute('height', (string) $size);
- $this->xmlWriter->writeAttribute('fill', $this->getColorString($backgroundColor));
-
- if ($alpha < 1) {
- $this->xmlWriter->writeAttribute('fill-opacity', (string) $alpha);
- }
-
- $this->xmlWriter->endElement();
- }
-
- public function scale(float $size) : void
- {
- if (null === $this->xmlWriter) {
- throw new RuntimeException('No image has been started');
- }
-
- $this->xmlWriter->startElement('g');
- $this->xmlWriter->writeAttribute(
- 'transform',
- sprintf('scale(%s)', round($size, self::PRECISION))
- );
- ++$this->stack[$this->currentStack];
- }
-
- public function translate(float $x, float $y) : void
- {
- if (null === $this->xmlWriter) {
- throw new RuntimeException('No image has been started');
- }
-
- $this->xmlWriter->startElement('g');
- $this->xmlWriter->writeAttribute(
- 'transform',
- sprintf('translate(%s,%s)', round($x, self::PRECISION), round($y, self::PRECISION))
- );
- ++$this->stack[$this->currentStack];
- }
-
- public function rotate(int $degrees) : void
- {
- if (null === $this->xmlWriter) {
- throw new RuntimeException('No image has been started');
- }
-
- $this->xmlWriter->startElement('g');
- $this->xmlWriter->writeAttribute('transform', sprintf('rotate(%d)', $degrees));
- ++$this->stack[$this->currentStack];
- }
-
- public function push() : void
- {
- if (null === $this->xmlWriter) {
- throw new RuntimeException('No image has been started');
- }
-
- $this->xmlWriter->startElement('g');
- $this->stack[] = 1;
- ++$this->currentStack;
- }
-
- public function pop() : void
- {
- if (null === $this->xmlWriter) {
- throw new RuntimeException('No image has been started');
- }
-
- for ($i = 0; $i < $this->stack[$this->currentStack]; ++$i) {
- $this->xmlWriter->endElement();
- }
-
- array_pop($this->stack);
- --$this->currentStack;
- }
-
- public function drawPathWithColor(Path $path, ColorInterface $color) : void
- {
- if (null === $this->xmlWriter) {
- throw new RuntimeException('No image has been started');
- }
-
- $alpha = 1;
-
- if ($color instanceof Alpha) {
- $alpha = $color->getAlpha() / 100;
- }
-
- $this->startPathElement($path);
- $this->xmlWriter->writeAttribute('fill', $this->getColorString($color));
-
- if ($alpha < 1) {
- $this->xmlWriter->writeAttribute('fill-opacity', (string) $alpha);
- }
-
- $this->xmlWriter->endElement();
- }
-
- public function drawPathWithGradient(
- Path $path,
- Gradient $gradient,
- float $x,
- float $y,
- float $width,
- float $height
- ) : void {