vendor/endroid/qr-code/src/Writer/WebPWriter.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\ResultInterface;
  9. use Endroid\QrCode\Writer\Result\WebPResult;
  10. final class WebPWriter extends AbstractGdWriter
  11. {
  12. public const WRITER_OPTION_QUALITY = 'quality';
  13. public function write(QrCodeInterface $qrCode, LogoInterface $logo = null, LabelInterface $label = null, array $options = []): ResultInterface
  14. {
  15. if (!isset($options[self::WRITER_OPTION_QUALITY])) {
  16. $options[self::WRITER_OPTION_QUALITY] = -1;
  17. }
  18. /** @var GdResult $gdResult */
  19. $gdResult = parent::write($qrCode, $logo, $label, $options);
  20. return new WebPResult($gdResult->getMatrix(), $gdResult->getImage(), $options[self::WRITER_OPTION_QUALITY]);
  21. }
  22. }