diff options
Diffstat (limited to 'vendor/chillerlan/php-qrcode/src/QROptionsTrait.php')
-rw-r--r-- | vendor/chillerlan/php-qrcode/src/QROptionsTrait.php | 648 |
1 files changed, 518 insertions, 130 deletions
diff --git a/vendor/chillerlan/php-qrcode/src/QROptionsTrait.php b/vendor/chillerlan/php-qrcode/src/QROptionsTrait.php index 74c384b13..d2bc8c2ce 100644 --- a/vendor/chillerlan/php-qrcode/src/QROptionsTrait.php +++ b/vendor/chillerlan/php-qrcode/src/QROptionsTrait.php @@ -2,232 +2,493 @@ /** * Trait QROptionsTrait * - * @filesource QROptionsTrait.php + * Note: the docblocks in this file are optimized for readability in PhpStorm ond on readthedocs.io + * * @created 10.03.2018 - * @package chillerlan\QRCode * @author smiley <smiley@chillerlan.net> * @copyright 2018 smiley * @license MIT * - * @noinspection PhpUnused + * @noinspection PhpUnused, PhpComposerExtensionStubsInspection */ namespace chillerlan\QRCode; -use function array_values, count, in_array, is_numeric, max, min, sprintf, strtolower; +use chillerlan\QRCode\Output\QROutputInterface; +use chillerlan\QRCode\Common\{EccLevel, MaskPattern, Version}; +use function extension_loaded, in_array, max, min, strtolower; +use const JSON_THROW_ON_ERROR, PHP_EOL; /** * The QRCode plug-in settings & setter functionality */ trait QROptionsTrait{ + /* + * QR Code specific settings + */ + /** * QR Code version number * - * [1 ... 40] or QRCode::VERSION_AUTO + * `1 ... 40` or `Version::AUTO` (default) + * + * @see \chillerlan\QRCode\Common\Version */ - protected int $version = QRCode::VERSION_AUTO; + protected int $version = Version::AUTO; /** * Minimum QR version * - * if $version = QRCode::VERSION_AUTO + * if `QROptions::$version` is set to `Version::AUTO` (default: 1) */ protected int $versionMin = 1; /** * Maximum QR version + * + * if `QROptions::$version` is set to `Version::AUTO` (default: 40) */ protected int $versionMax = 40; /** * Error correct level * - * QRCode::ECC_X where X is: + * `EccLevel::X` where `X` is: + * + * - `L` => 7% (default) + * - `M` => 15% + * - `Q` => 25% + * - `H` => 30% * - * - L => 7% - * - M => 15% - * - Q => 25% - * - H => 30% + * @todo: accept string values (PHP8+) + * @see \chillerlan\QRCode\Common\EccLevel + * @see https://github.com/chillerlan/php-qrcode/discussions/160 */ - protected int $eccLevel = QRCode::ECC_L; + protected int $eccLevel = EccLevel::L; /** - * Mask Pattern to use + * Mask Pattern to use (no value in using, mostly for unit testing purposes) * - * [0...7] or QRCode::MASK_PATTERN_AUTO + * `0 ... 7` or `MaskPattern::PATTERN_AUTO` (default) + * + * @see \chillerlan\QRCode\Common\MaskPattern */ - protected int $maskPattern = QRCode::MASK_PATTERN_AUTO; + protected int $maskPattern = MaskPattern::AUTO; /** * Add a "quiet zone" (margin) according to the QR code spec + * + * @see https://www.qrcode.com/en/howto/code.html */ protected bool $addQuietzone = true; /** * Size of the quiet zone * - * internally clamped to [0 ... $moduleCount / 2], defaults to 4 modules + * internally clamped to `0 ... $moduleCount / 2` (default: 4) */ protected int $quietzoneSize = 4; + + /* + * General output settings + */ + /** - * Use this to circumvent the data mode detection and force the usage of the given mode. + * The built-in output type + * + * - `QROutputInterface::MARKUP_SVG` (default) + * - `QROutputInterface::MARKUP_HTML` + * - `QROutputInterface::GDIMAGE_BMP` + * - `QROutputInterface::GDIMAGE_GIF` + * - `QROutputInterface::GDIMAGE_JPG` + * - `QROutputInterface::GDIMAGE_PNG` + * - `QROutputInterface::GDIMAGE_WEBP` + * - `QROutputInterface::STRING_TEXT` + * - `QROutputInterface::STRING_JSON` + * - `QROutputInterface::IMAGICK` + * - `QROutputInterface::EPS` + * - `QROutputInterface::FPDF` + * - `QROutputInterface::CUSTOM` * - * valid modes are: Number, AlphaNum, Kanji, Byte (case insensitive) + * @see \chillerlan\QRCode\Output\QREps + * @see \chillerlan\QRCode\Output\QRFpdf + * @see \chillerlan\QRCode\Output\QRGdImage + * @see \chillerlan\QRCode\Output\QRImagick + * @see \chillerlan\QRCode\Output\QRMarkupHTML + * @see \chillerlan\QRCode\Output\QRMarkupSVG + * @see \chillerlan\QRCode\Output\QRString + * @see https://github.com/chillerlan/php-qrcode/issues/223 * - * @see https://github.com/chillerlan/php-qrcode/issues/39 - * @see https://github.com/chillerlan/php-qrcode/issues/97 (changed default value to '') + * @deprecated 5.0.0 see issue #223 */ - protected string $dataModeOverride = ''; + protected string $outputType = QROutputInterface::MARKUP_SVG; /** - * The output type + * The FQCN of the custom `QROutputInterface` * - * - QRCode::OUTPUT_MARKUP_XXXX where XXXX = HTML, SVG - * - QRCode::OUTPUT_IMAGE_XXX where XXX = PNG, GIF, JPG - * - QRCode::OUTPUT_STRING_XXXX where XXXX = TEXT, JSON - * - QRCode::OUTPUT_CUSTOM + * if `QROptions::$outputType` is set to `QROutputInterface::CUSTOM` (default: `null`) + * + * @deprecated 5.0.0 the nullable type will be removed in future versions + * and the default value will be set to `QRMarkupSVG::class` */ - protected string $outputType = QRCode::OUTPUT_IMAGE_PNG; + protected ?string $outputInterface = null; /** - * the FQCN of the custom QROutputInterface if $outputType is set to QRCode::OUTPUT_CUSTOM + * Return the image resource instead of a render if applicable. + * + * - `QRGdImage`: `resource` (PHP < 8), `GdImage` + * - `QRImagick`: `Imagick` + * - `QRFpdf`: `FPDF` + * + * This option overrides/ignores other output settings, such as `QROptions::$cachefile` + * and `QROptions::$outputBase64`. (default: `false`) + * + * @see \chillerlan\QRCode\Output\QROutputInterface::dump() */ - protected ?string $outputInterface = null; + protected bool $returnResource = false; /** - * /path/to/cache.file + * Optional cache file path `/path/to/cache.file` + * + * Please note that the `$file` parameter in `QRCode::render()` and `QRCode::renderMatrix()` + * takes precedence over the `QROptions::$cachefile` value. (default: `null`) + * + * @see \chillerlan\QRCode\QRCode::render() + * @see \chillerlan\QRCode\QRCode::renderMatrix() */ protected ?string $cachefile = null; /** - * newline string [HTML, SVG, TEXT] + * Toggle base64 data URI or raw data output (if applicable) + * + * (default: `true`) + * + * @see \chillerlan\QRCode\Output\QROutputAbstract::toBase64DataURI() */ - protected string $eol = PHP_EOL; + protected bool $outputBase64 = true; /** - * size of a QR code pixel [SVG, IMAGE_*], HTML via CSS + * Newline string + * + * (default: `PHP_EOL`) + */ + protected string $eol = PHP_EOL; + + /* + * Common visual modifications */ - protected int $scale = 5; /** - * a common css class + * Sets the image background color (if applicable) + * + * - `QRImagick`: defaults to `"white"` + * - `QRGdImage`: defaults to `[255, 255, 255]` + * - `QRFpdf`: defaults to blank internally (white page) + * + * @var mixed|null */ - protected string $cssClass = ''; + protected $bgColor = null; /** - * SVG opacity + * Whether to invert the matrix (reflectance reversal) + * + * (default: `false`) + * + * @see \chillerlan\QRCode\Data\QRMatrix::invert() */ - protected float $svgOpacity = 1.0; + protected bool $invertMatrix = false; /** - * anything between <defs> + * Whether to draw the light (false) modules * - * @see https://developer.mozilla.org/docs/Web/SVG/Element/defs + * (default: `true`) */ - protected string $svgDefs = '<style>rect{shape-rendering:crispEdges}</style>'; + protected bool $drawLightModules = true; /** - * SVG viewBox size. a single integer number which defines width/height of the viewBox attribute. + * Specify whether to draw the modules as filled circles + * + * a note for `GdImage` output: + * + * if `QROptions::$scale` is less than 20, the image will be upscaled internally, then the modules will be drawn + * using `imagefilledellipse()` and then scaled back to the expected size * - * viewBox="0 0 x x" + * No effect in: `QREps`, `QRFpdf`, `QRMarkupHTML` * - * @see https://css-tricks.com/scale-svg/#article-header-id-3 + * @see \imagefilledellipse() + * @see https://github.com/chillerlan/php-qrcode/issues/23 + * @see https://github.com/chillerlan/php-qrcode/discussions/122 */ - protected ?int $svgViewBoxSize = null; + protected bool $drawCircularModules = false; /** - * string substitute for dark + * Specifies the radius of the modules when `QROptions::$drawCircularModules` is set to `true` + * + * (default: 0.45) */ - protected string $textDark = '🔴'; + protected float $circleRadius = 0.45; /** - * string substitute for light + * Specifies which module types to exclude when `QROptions::$drawCircularModules` is set to `true` + * + * (default: `[]`) */ - protected string $textLight = 'â•'; + protected array $keepAsSquare = []; /** - * markup substitute for dark (CSS value) + * Whether to connect the paths for the several module types to avoid weird glitches when using gradients etc. + * + * This option is exclusive to output classes that use the module collector `QROutputAbstract::collectModules()`, + * which converts the `$M_TYPE` of all modules to `QRMatrix::M_DATA` and `QRMatrix::M_DATA_DARK` respectively. + * + * Module types that should not be added to the connected path can be excluded via `QROptions::$excludeFromConnect`. + * + * Currentty used in `QREps` and `QRMarkupSVG`. + * + * @see \chillerlan\QRCode\Output\QROutputAbstract::collectModules() + * @see \chillerlan\QRCode\QROptionsTrait::$excludeFromConnect + * @see https://github.com/chillerlan/php-qrcode/issues/57 */ - protected string $markupDark = '#000'; + protected bool $connectPaths = false; /** - * markup substitute for light (CSS value) + * Specify which paths/patterns to exclude from connecting if `QROptions::$connectPaths` is set to `true` + * + * @see \chillerlan\QRCode\QROptionsTrait::$connectPaths */ - protected string $markupLight = '#fff'; + protected array $excludeFromConnect = []; /** - * Return the image resource instead of a render if applicable. - * This option overrides other output options, such as $cachefile and $imageBase64. + * Module values map * - * Supported by the following modules: + * - `QRImagick`, `QRMarkupHTML`, `QRMarkupSVG`: #ABCDEF, cssname, rgb(), rgba()... + * - `QREps`, `QRFpdf`, `QRGdImage`: `[R, G, B]` // 0-255 + * - `QREps`: `[C, M, Y, K]` // 0-255 * - * - QRImage: resource (PHP < 8), GdImage - * - QRImagick: Imagick - * - QRFpdf: FPDF + * @see \chillerlan\QRCode\Output\QROutputAbstract::setModuleValues() + */ + protected array $moduleValues = []; + + /** + * Toggles logo space creation * - * @see \chillerlan\QRCode\Output\QROutputInterface::dump() + * @see \chillerlan\QRCode\QRCode::addMatrixModifications() + * @see \chillerlan\QRCode\Data\QRMatrix::setLogoSpace() + */ + protected bool $addLogoSpace = false; + + /** + * Width of the logo space * - * @var bool + * if only `QROptions::$logoSpaceWidth` is given, the logo space is assumed a square of that size */ - protected bool $returnResource = false; + protected ?int $logoSpaceWidth = null; + + /** + * Height of the logo space + * + * if only `QROptions::$logoSpaceHeight` is given, the logo space is assumed a square of that size + */ + protected ?int $logoSpaceHeight = null; /** - * toggle base64 or raw image data + * Optional horizontal start position of the logo space (top left corner) */ - protected bool $imageBase64 = true; + protected ?int $logoSpaceStartX = null; /** - * toggle transparency, not supported by jpg + * Optional vertical start position of the logo space (top left corner) */ - protected bool $imageTransparent = true; + protected ?int $logoSpaceStartY = null; + + + /* + * Common raster image settings (QRGdImage, QRImagick) + */ + + /** + * Pixel size of a QR code module + */ + protected int $scale = 5; /** - * @see imagecolortransparent() + * Toggle transparency + * + * - `QRGdImage` and `QRImagick`: the given `QROptions::$transparencyColor` is set as transparent * - * [R, G, B] + * @see https://github.com/chillerlan/php-qrcode/discussions/121 */ - protected array $imageTransparencyBG = [255, 255, 255]; + protected bool $imageTransparent = false; /** - * @see imagepng() + * Sets a transparency color for when `QROptions::$imageTransparent` is set to `true`. + * + * Defaults to `QROptions::$bgColor`. + * + * - `QRGdImage`: `[R, G, B]`, this color is set as transparent in `imagecolortransparent()` + * - `QRImagick`: `"color_str"`, this color is set in `Imagick::transparentPaintImage()` + * + * @see \imagecolortransparent() + * @see \Imagick::transparentPaintImage() + * + * @var mixed|null */ - protected int $pngCompression = -1; + protected $transparencyColor = null; /** - * @see imagejpeg() + * Compression quality + * + * The given value depends on the used output type: + * + * - `QRGdImageBMP`: `[0...1]` + * - `QRGdImageJPEG`: `[0...100]` + * - `QRGdImageWEBP`: `[0...9]` + * - `QRGdImagePNG`: `[0...100]` + * - `QRImagick`: `[0...100]` + * + * @see \imagebmp() + * @see \imagejpeg() + * @see \imagepng() + * @see \imagewebp() + * @see \Imagick::setImageCompressionQuality() + */ + protected int $quality = -1; + + /* + * QRGdImage settings + */ + + /** + * Toggles the usage of internal upscaling when `QROptions::$drawCircularModules` is set to `true` and + * `QROptions::$scale` is less than 20 + * + * @see \chillerlan\QRCode\Output\QRGdImage::createImage() + * @see https://github.com/chillerlan/php-qrcode/issues/23 + */ + protected bool $gdImageUseUpscale = true; + + /* + * QRImagick settings */ - protected int $jpegQuality = 85; /** * Imagick output format * - * @see \Imagick::setType() + * @see \Imagick::setImageFormat() + * @see https://www.imagemagick.org/script/formats.php + */ + protected string $imagickFormat = 'png32'; + + + /* + * Common markup output settings (QRMarkupSVG, QRMarkupHTML) + */ + + /** + * A common css class + */ + protected string $cssClass = 'qrcode'; + + /* + * QRMarkupSVG settings + */ + + /** + * Whether to add an XML header line or not, e.g. to embed the SVG directly in HTML + * + * `<?xml version="1.0" encoding="UTF-8"?>` */ - protected string $imagickFormat = 'png'; + protected bool $svgAddXmlHeader = true; /** - * Imagick background color (defaults to "transparent") + * Anything in the SVG `<defs>` tag + * + * @see https://developer.mozilla.org/en-US/docs/Web/SVG/Element/defs + */ + protected string $svgDefs = ''; + + /** + * Sets the value for the "preserveAspectRatio" on the `<svg>` element + * + * @see https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/preserveAspectRatio + */ + protected string $svgPreserveAspectRatio = 'xMidYMid'; + + /** + * Whether to use the SVG `fill` attributes + * + * If set to `true` (default), the `fill` attribute will be set with the module value for the `<path>` element's `$M_TYPE`. + * When set to `false`, the module values map will be ignored and the QR Code may be styled via CSS. * - * @see \ImagickPixel::__construct() + * @see https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/fill + */ + protected bool $svgUseFillAttributes = true; + + /* + * QRStringText settings + */ + + /** + * An optional line prefix, e.g. empty space to align the QR Code in a console + */ + protected string $textLineStart = ''; + + /* + * QRStringJSON settings + */ + + /** + * Sets the flags to use for the `json_encode()` call + * + * @see https://www.php.net/manual/json.constants.php + */ + protected int $jsonFlags = JSON_THROW_ON_ERROR; + + /** + * Whether to return matrix values in JSON as booleans or `$M_TYPE` integers + */ + protected bool $jsonAsBooleans = false; + + /* + * QRFpdf settings */ - protected ?string $imagickBG = null; /** - * Measurement unit for FPDF output: pt, mm, cm, in (defaults to "pt") + * Measurement unit for `FPDF` output: `pt`, `mm`, `cm`, `in` (default: `pt`) * - * @see \FPDF::__construct() + * @see FPDF::__construct() */ protected string $fpdfMeasureUnit = 'pt'; + + /* + * QR Code reader settings + */ + /** - * Module values map + * Use Imagick (if available) when reading QR Codes + */ + protected bool $readerUseImagickIfAvailable = false; + + /** + * Grayscale the image before reading + */ + protected bool $readerGrayscale = false; + + /** + * Invert the colors of the image + */ + protected bool $readerInvertColors = false; + + /** + * Increase the contrast before reading * - * - HTML, IMAGICK: #ABCDEF, cssname, rgb(), rgba()... - * - IMAGE: [63, 127, 255] // R, G, B + * note that applying contrast works different in GD and Imagick, so mileage may vary */ - protected ?array $moduleValues = null; + protected bool $readerIncreaseContrast = false; + /** * clamp min/max version number @@ -255,87 +516,214 @@ trait QROptionsTrait{ } /** - * sets the error correction level + * sets/clamps the version number + */ + protected function set_version(int $version):void{ + $this->version = ($version !== Version::AUTO) ? max(1, min(40, $version)) : Version::AUTO; + } + + /** + * sets/clamps the quiet zone size + */ + protected function set_quietzoneSize(int $quietzoneSize):void{ + $this->quietzoneSize = max(0, min($quietzoneSize, 75)); + } + + /** + * sets the FPDF measurement unit * - * @throws \chillerlan\QRCode\QRCodeException + * @codeCoverageIgnore */ - protected function set_eccLevel(int $eccLevel):void{ + protected function set_fpdfMeasureUnit(string $unit):void{ + $unit = strtolower($unit); - if(!isset(QRCode::ECC_MODES[$eccLevel])){ - throw new QRCodeException(sprintf('Invalid error correct level: %s', $eccLevel)); + if(in_array($unit, ['cm', 'in', 'mm', 'pt'], true)){ + $this->fpdfMeasureUnit = $unit; } - $this->eccLevel = $eccLevel; + // @todo throw or ignore silently? + } + + /** + * enables Imagick for the QR Code reader if the extension is available + */ + protected function set_readerUseImagickIfAvailable(bool $useImagickIfAvailable):void{ + $this->readerUseImagickIfAvailable = ($useImagickIfAvailable && extension_loaded('imagick')); } /** - * sets/clamps the mask pattern + * clamp the logo space values between 0 and maximum length (177 modules at version 40) */ - protected function set_maskPattern(int $maskPattern):void{ + protected function clampLogoSpaceValue(?int $value):?int{ - if($maskPattern !== QRCode::MASK_PATTERN_AUTO){ - $this->maskPattern = max(0, min(7, $maskPattern)); + if($value === null){ + return null; } + return (int)max(0, min(177, $value)); } /** - * sets the transparency background color - * - * @throws \chillerlan\QRCode\QRCodeException + * clamp/set logo space width */ - protected function set_imageTransparencyBG(array $imageTransparencyBG):void{ + protected function set_logoSpaceWidth(?int $value):void{ + $this->logoSpaceWidth = $this->clampLogoSpaceValue($value); + } - // invalid value - set to white as default - if(count($imageTransparencyBG) < 3){ - $this->imageTransparencyBG = [255, 255, 255]; + /** + * clamp/set logo space height + */ + protected function set_logoSpaceHeight(?int $value):void{ + $this->logoSpaceHeight = $this->clampLogoSpaceValue($value); + } - return; - } + /** + * clamp/set horizontal logo space start + */ + protected function set_logoSpaceStartX(?int $value):void{ + $this->logoSpaceStartX = $this->clampLogoSpaceValue($value); + } - foreach($imageTransparencyBG as $k => $v){ + /** + * clamp/set vertical logo space start + */ + protected function set_logoSpaceStartY(?int $value):void{ + $this->logoSpaceStartY = $this->clampLogoSpaceValue($value); + } + + /** + * clamp/set SVG circle radius + */ + protected function set_circleRadius(float $circleRadius):void{ + $this->circleRadius = max(0.1, min(0.75, $circleRadius)); + } - // cut off exceeding items - if($k > 2){ - break; - } + /* + * redirect calls of deprecated variables to new/renamed property + */ - if(!is_numeric($v)){ - throw new QRCodeException('Invalid RGB value.'); - } + /** + * @deprecated 5.0.0 use QROptions::$outputBase64 instead + * @see \chillerlan\QRCode\QROptions::$outputBase64 + */ + protected bool $imageBase64; - // clamp the values - $this->imageTransparencyBG[$k] = max(0, min(255, (int)$v)); - } + /** + * redirect call to the new variable + * + * @deprecated 5.0.0 use QROptions::$outputBase64 instead + * @see \chillerlan\QRCode\QROptions::$outputBase64 + * @codeCoverageIgnore + */ + protected function set_imageBase64(bool $imageBase64):void{ + $this->outputBase64 = $imageBase64; + } - // use the array values to not run into errors with the spread operator (...$arr) - $this->imageTransparencyBG = array_values($this->imageTransparencyBG); + /** + * redirect call to the new variable + * + * @deprecated 5.0.0 use QROptions::$outputBase64 instead + * @see \chillerlan\QRCode\QROptions::$outputBase64 + * @codeCoverageIgnore + */ + protected function get_imageBase64():bool{ + return $this->outputBase64; } /** - * sets/clamps the version number + * @deprecated 5.0.0 use QROptions::$quality instead + * @see \chillerlan\QRCode\QROptions::$quality */ - protected function set_version(int $version):void{ + protected int $jpegQuality; - if($version !== QRCode::VERSION_AUTO){ - $this->version = max(1, min(40, $version)); - } + /** + * @deprecated 5.0.0 use QROptions::$quality instead + * @see \chillerlan\QRCode\QROptions::$quality + * @codeCoverageIgnore + */ + protected function set_jpegQuality(int $jpegQuality):void{ + $this->quality = $jpegQuality; + } + /** + * @deprecated 5.0.0 use QROptions::$quality instead + * @see \chillerlan\QRCode\QROptions::$quality + * @codeCoverageIgnore + */ + protected function get_jpegQuality():int{ + return $this->quality; } /** - * sets the FPDF measurement unit - * + * @deprecated 5.0.0 use QROptions::$quality instead + * @see \chillerlan\QRCode\QROptions::$quality + */ + protected int $pngCompression; + + /** + * @deprecated 5.0.0 use QROptions::$quality instead + * @see \chillerlan\QRCode\QROptions::$quality * @codeCoverageIgnore */ - protected function set_fpdfMeasureUnit(string $unit):void{ - $unit = strtolower($unit); + protected function set_pngCompression(int $pngCompression):void{ + $this->quality = $pngCompression; + } - if(in_array($unit, ['cm', 'in', 'mm', 'pt'], true)){ - $this->fpdfMeasureUnit = $unit; - } + /** + * @deprecated 5.0.0 use QROptions::$quality instead + * @see \chillerlan\QRCode\QROptions::$quality + * @codeCoverageIgnore + */ + protected function get_pngCompression():int{ + return $this->quality; + } - // @todo throw or ignore silently? + /** + * @deprecated 5.0.0 use QROptions::$transparencyColor instead + * @see \chillerlan\QRCode\QROptions::$transparencyColor + */ + protected array $imageTransparencyBG; + + /** + * @deprecated 5.0.0 use QROptions::$transparencyColor instead + * @see \chillerlan\QRCode\QROptions::$transparencyColor + * @codeCoverageIgnore + */ + protected function set_imageTransparencyBG(?array $imageTransparencyBG):void{ + $this->transparencyColor = $imageTransparencyBG; + } + + /** + * @deprecated 5.0.0 use QROptions::$transparencyColor instead + * @see \chillerlan\QRCode\QROptions::$transparencyColor + * @codeCoverageIgnore + */ + protected function get_imageTransparencyBG():?array{ + return $this->transparencyColor; + } + + /** + * @deprecated 5.0.0 use QROptions::$bgColor instead + * @see \chillerlan\QRCode\QROptions::$bgColor + */ + protected string $imagickBG; + + /** + * @deprecated 5.0.0 use QROptions::$bgColor instead + * @see \chillerlan\QRCode\QROptions::$bgColor + * @codeCoverageIgnore + */ + protected function set_imagickBG(?string $imagickBG):void{ + $this->bgColor = $imagickBG; + } + + /** + * @deprecated 5.0.0 use QROptions::$bgColor instead + * @see \chillerlan\QRCode\QROptions::$bgColor + * @codeCoverageIgnore + */ + protected function get_imagickBG():?string{ + return $this->bgColor; } } |