vendor/endroid/qr-code/src/Writer/PngWriter.php line 18

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace Endroid\QrCode\Writer;
  4. use Endroid\QrCode\Label\LabelInterface;
  5. use Endroid\QrCode\Logo\LogoInterface;
  6. use Endroid\QrCode\QrCodeInterface;
  7. use Endroid\QrCode\Writer\Result\GdResult;
  8. use Endroid\QrCode\Writer\Result\PngResult;
  9. use Endroid\QrCode\Writer\Result\ResultInterface;
  10. final class PngWriter extends AbstractGdWriter
  11. {
  12.     public const WRITER_OPTION_COMPRESSION_LEVEL 'compression_level';
  13.     public function write(QrCodeInterface $qrCodeLogoInterface $logo nullLabelInterface $label null, array $options = []): ResultInterface
  14.     {
  15.         if (!isset($options[self::WRITER_OPTION_COMPRESSION_LEVEL])) {
  16.             $options[self::WRITER_OPTION_COMPRESSION_LEVEL] = -1;
  17.         }
  18.         /** @var GdResult $gdResult */
  19.         $gdResult parent::write($qrCode$logo$label$options);
  20.         return new PngResult($gdResult->getMatrix(), $gdResult->getImage(), $options[self::WRITER_OPTION_COMPRESSION_LEVEL]);
  21.     }
  22. }