Documentation

QROptionsTrait

The QRCode plug-in settings & setter functionality

Table of Contents

Properties

$addLogoSpace  : bool
Toggles logo space creation
$addQuietzone  : bool
Add a "quiet zone" (margin) according to the QR code spec
$bgColor  : mixed|null
Sets the image background color (if applicable)
$cachefile  : string|null
Optional cache file path `/path/to/cache.file`
$circleRadius  : float
Specifies the radius of the modules when `QROptions::$drawCircularModules` is set to `true`
$connectPaths  : bool
Whether to connect the paths for the several module types to avoid weird glitches when using gradients etc.
$cssClass  : string
A common css class
$drawCircularModules  : bool
Specify whether to draw the modules as filled circles
$drawLightModules  : bool
Whether to draw the light (false) modules
$eccLevel  : int
Error correct level
$eol  : string
Newline string
$excludeFromConnect  : array<string|int, mixed>
Specify which paths/patterns to exclude from connecting if `QROptions::$connectPaths` is set to `true`
$fpdfMeasureUnit  : string
Measurement unit for `FPDF` output: `pt`, `mm`, `cm`, `in` (default: `pt`)
$gdImageUseUpscale  : bool
Toggles the usage of internal upscaling when `QROptions::$drawCircularModules` is set to `true` and `QROptions::$scale` is less than 20
$imageBase64  : bool
$imageTransparencyBG  : array<string|int, mixed>
$imageTransparent  : bool
Toggle transparency
$imagickBG  : string
$imagickFormat  : string
Imagick output format
$invertMatrix  : bool
Whether to invert the matrix (reflectance reversal)
$jpegQuality  : int
$jsonAsBooleans  : bool
Whether to return matrix values in JSON as booleans or `$M_TYPE` integers
$jsonFlags  : int
Sets the flags to use for the `json_encode()` call
$keepAsSquare  : array<string|int, mixed>
Specifies which module types to exclude when `QROptions::$drawCircularModules` is set to `true`
$logoSpaceHeight  : int|null
Height of the logo space
$logoSpaceStartX  : int|null
Optional horizontal start position of the logo space (top left corner)
$logoSpaceStartY  : int|null
Optional vertical start position of the logo space (top left corner)
$logoSpaceWidth  : int|null
Width of the logo space
$maskPattern  : int
Mask Pattern to use (no value in using, mostly for unit testing purposes)
$moduleValues  : array<string|int, mixed>
Module values map
$outputBase64  : bool
Toggle base64 data URI or raw data output (if applicable)
$outputInterface  : string|null
The FQCN of the custom `QROutputInterface`
$outputType  : string
The built-in output type
$pngCompression  : int
$quality  : int
Compression quality
$quietzoneSize  : int
Size of the quiet zone
$readerGrayscale  : bool
Grayscale the image before reading
$readerIncreaseContrast  : bool
Increase the contrast before reading
$readerInvertColors  : bool
Invert the colors of the image
$readerUseImagickIfAvailable  : bool
Use Imagick (if available) when reading QR Codes
$returnResource  : bool
Return the image resource instead of a render if applicable.
$scale  : int
Pixel size of a QR code module
$svgAddXmlHeader  : bool
Whether to add an XML header line or not, e.g. to embed the SVG directly in HTML
$svgDefs  : string
Anything in the SVG `<defs>` tag
$svgPreserveAspectRatio  : string
Sets the value for the "preserveAspectRatio" on the `<svg>` element
$svgUseFillAttributes  : bool
Whether to use the SVG `fill` attributes
$textLineStart  : string
An optional line prefix, e.g. empty space to align the QR Code in a console
$transparencyColor  : mixed|null
Sets a transparency color for when `QROptions::$imageTransparent` is set to `true`.
$version  : int
QR Code version number
$versionMax  : int
Maximum QR version
$versionMin  : int
Minimum QR version

Methods

clampLogoSpaceValue()  : int|null
clamp the logo space values between 0 and maximum length (177 modules at version 40)
get_imageBase64()  : bool
redirect call to the new variable
get_imageTransparencyBG()  : array<string|int, mixed>|null
get_imagickBG()  : string|null
get_jpegQuality()  : int
get_pngCompression()  : int
set_circleRadius()  : void
clamp/set SVG circle radius
set_fpdfMeasureUnit()  : void
sets the FPDF measurement unit
set_imageBase64()  : void
redirect call to the new variable
set_imageTransparencyBG()  : void
set_imagickBG()  : void
set_jpegQuality()  : void
set_logoSpaceHeight()  : void
clamp/set logo space height
set_logoSpaceStartX()  : void
clamp/set horizontal logo space start
set_logoSpaceStartY()  : void
clamp/set vertical logo space start
set_logoSpaceWidth()  : void
clamp/set logo space width
set_pngCompression()  : void
set_quietzoneSize()  : void
sets/clamps the quiet zone size
set_readerUseImagickIfAvailable()  : void
enables Imagick for the QR Code reader if the extension is available
set_version()  : void
sets/clamps the version number
set_versionMax()  : void
sets the maximum version number
set_versionMin()  : void
sets the minimum version number
setMinMaxVersion()  : void
clamp min/max version number

Properties

$bgColor

Sets the image background color (if applicable)

protected mixed|null $bgColor = null
  • QRImagick: defaults to "white"
  • QRGdImage: defaults to [255, 255, 255]
  • QRFpdf: defaults to blank internally (white page)

$cachefile

Optional cache file path `/path/to/cache.file`

protected string|null $cachefile = null

Please note that the $file parameter in QRCode::render() and QRCode::renderMatrix() takes precedence over the QROptions::$cachefile value. (default: null)

Tags
see
QRCode::render()
see
QRCode::renderMatrix()

$circleRadius

Specifies the radius of the modules when `QROptions::$drawCircularModules` is set to `true`

protected float $circleRadius = 0.45

(default: 0.45)

$cssClass

A common css class

protected string $cssClass = 'qrcode'

$drawCircularModules

Specify whether to draw the modules as filled circles

protected bool $drawCircularModules = false

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

No effect in: QREps, QRFpdf, QRMarkupHTML

Tags
see
imagefilledellipse()
see
https://github.com/chillerlan/php-qrcode/issues/23
see
https://github.com/chillerlan/php-qrcode/discussions/122

$drawLightModules

Whether to draw the light (false) modules

protected bool $drawLightModules = true

(default: true)

$eol

Newline string

protected string $eol = \PHP_EOL

(default: PHP_EOL)

$excludeFromConnect

Specify which paths/patterns to exclude from connecting if `QROptions::$connectPaths` is set to `true`

protected array<string|int, mixed> $excludeFromConnect = []

$fpdfMeasureUnit

Measurement unit for `FPDF` output: `pt`, `mm`, `cm`, `in` (default: `pt`)

protected string $fpdfMeasureUnit = 'pt'
Tags
see
FPDF::__construct()

$imageBase64

protected bool $imageBase64
Tags
deprecated
5.0.0

use QROptions::$outputBase64 instead

see
QROptions::$outputBase64

$imageTransparencyBG

protected array<string|int, mixed> $imageTransparencyBG
Tags
deprecated
5.0.0

use QROptions::$transparencyColor instead

see
QROptions::$transparencyColor

$imagickBG

protected string $imagickBG
Tags
deprecated
5.0.0

use QROptions::$bgColor instead

see
QROptions::$bgColor

$jpegQuality

protected int $jpegQuality
Tags
deprecated
5.0.0

use QROptions::$quality instead

see
QROptions::$quality

$jsonAsBooleans

Whether to return matrix values in JSON as booleans or `$M_TYPE` integers

protected bool $jsonAsBooleans = false

$keepAsSquare

Specifies which module types to exclude when `QROptions::$drawCircularModules` is set to `true`

protected array<string|int, mixed> $keepAsSquare = []

(default: [])

$logoSpaceHeight

Height of the logo space

protected int|null $logoSpaceHeight = null

if only QROptions::$logoSpaceHeight is given, the logo space is assumed a square of that size

$logoSpaceStartX

Optional horizontal start position of the logo space (top left corner)

protected int|null $logoSpaceStartX = null

$logoSpaceStartY

Optional vertical start position of the logo space (top left corner)

protected int|null $logoSpaceStartY = null

$logoSpaceWidth

Width of the logo space

protected int|null $logoSpaceWidth = null

if only QROptions::$logoSpaceWidth is given, the logo space is assumed a square of that size

$maskPattern

Mask Pattern to use (no value in using, mostly for unit testing purposes)

protected int $maskPattern = \chillerlan\QRCode\Common\MaskPattern::AUTO

0 ... 7 or MaskPattern::PATTERN_AUTO (default)

Tags
see
MaskPattern

$moduleValues

Module values map

protected array<string|int, mixed> $moduleValues = []
  • QRImagick, QRMarkupHTML, QRMarkupSVG: #ABCDEF, cssname, rgb(), rgba()...
  • QREps, QRFpdf, QRGdImage: [R, G, B] // 0-255
  • QREps: [C, M, Y, K] // 0-255
Tags
see
QROutputAbstract::setModuleValues()

$outputInterface

The FQCN of the custom `QROutputInterface`

protected string|null $outputInterface = null

if QROptions::$outputType is set to QROutputInterface::CUSTOM (default: null)

Tags
deprecated
5.0.0

the nullable type will be removed in future versions and the default value will be set to QRMarkupSVG::class

$outputType

The built-in output type

protected string $outputType = \chillerlan\QRCode\Output\QROutputInterface::MARKUP_SVG
  • 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
Tags
see
QREps
see
QRFpdf
see
QRGdImage
see
QRImagick
see
QRMarkupHTML
see
QRMarkupSVG
see
QRString
see
https://github.com/chillerlan/php-qrcode/issues/223
deprecated
5.0.0

see issue #223

$pngCompression

protected int $pngCompression
Tags
deprecated
5.0.0

use QROptions::$quality instead

see
QROptions::$quality

$quality

Compression quality

protected int $quality = -1

The given value depends on the used output type:

  • QRGdImageBMP: [0...1]
  • QRGdImageJPEG: [0...100]
  • QRGdImageWEBP: [0...9]
  • QRGdImagePNG: [0...100]
  • QRImagick: [0...100]
Tags
see
imagebmp()
see
imagejpeg()
see
imagepng()
see
imagewebp()
see
Imagick::setImageCompressionQuality()

$quietzoneSize

Size of the quiet zone

protected int $quietzoneSize = 4

internally clamped to 0 ... $moduleCount / 2 (default: 4)

$readerGrayscale

Grayscale the image before reading

protected bool $readerGrayscale = false

$readerIncreaseContrast

Increase the contrast before reading

protected bool $readerIncreaseContrast = false

note that applying contrast works different in GD and Imagick, so mileage may vary

$readerInvertColors

Invert the colors of the image

protected bool $readerInvertColors = false

$readerUseImagickIfAvailable

Use Imagick (if available) when reading QR Codes

protected bool $readerUseImagickIfAvailable = false

$returnResource

Return the image resource instead of a render if applicable.

protected bool $returnResource = false
  • 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)

Tags
see
QROutputInterface::dump()

$svgAddXmlHeader

Whether to add an XML header line or not, e.g. to embed the SVG directly in HTML

protected bool $svgAddXmlHeader = true

<?xml version="1.0" encoding="UTF-8"?>

$svgUseFillAttributes

Whether to use the SVG `fill` attributes

protected bool $svgUseFillAttributes = true

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.

Tags
see
https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/fill

$textLineStart

An optional line prefix, e.g. empty space to align the QR Code in a console

protected string $textLineStart = ''

$transparencyColor

Sets a transparency color for when `QROptions::$imageTransparent` is set to `true`.

protected mixed|null $transparencyColor = null

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()
Tags
see
imagecolortransparent()
see
Imagick::transparentPaintImage()

$version

QR Code version number

protected int $version = \chillerlan\QRCode\Common\Version::AUTO

1 ... 40 or Version::AUTO (default)

Tags
see
Version

$versionMax

Maximum QR version

protected int $versionMax = 40

if QROptions::$version is set to Version::AUTO (default: 40)

$versionMin

Minimum QR version

protected int $versionMin = 1

if QROptions::$version is set to Version::AUTO (default: 1)

Methods

clampLogoSpaceValue()

clamp the logo space values between 0 and maximum length (177 modules at version 40)

protected clampLogoSpaceValue(int|null $value) : int|null
Parameters
$value : int|null
Return values
int|null

get_imageBase64()

redirect call to the new variable

protected get_imageBase64() : bool
Tags
deprecated
5.0.0

use QROptions::$outputBase64 instead

see
QROptions::$outputBase64
codeCoverageIgnore
Return values
bool

get_imageTransparencyBG()

protected get_imageTransparencyBG() : array<string|int, mixed>|null
Tags
deprecated
5.0.0

use QROptions::$transparencyColor instead

see
QROptions::$transparencyColor
codeCoverageIgnore
Return values
array<string|int, mixed>|null

get_imagickBG()

protected get_imagickBG() : string|null
Tags
deprecated
5.0.0

use QROptions::$bgColor instead

see
QROptions::$bgColor
codeCoverageIgnore
Return values
string|null

get_jpegQuality()

protected get_jpegQuality() : int
Tags
deprecated
5.0.0

use QROptions::$quality instead

see
QROptions::$quality
codeCoverageIgnore
Return values
int

get_pngCompression()

protected get_pngCompression() : int
Tags
deprecated
5.0.0

use QROptions::$quality instead

see
QROptions::$quality
codeCoverageIgnore
Return values
int

set_circleRadius()

clamp/set SVG circle radius

protected set_circleRadius(float $circleRadius) : void
Parameters
$circleRadius : float

set_fpdfMeasureUnit()

sets the FPDF measurement unit

protected set_fpdfMeasureUnit(string $unit) : void
Parameters
$unit : string
Tags
codeCoverageIgnore

set_imageBase64()

redirect call to the new variable

protected set_imageBase64(bool $imageBase64) : void
Parameters
$imageBase64 : bool
Tags
deprecated
5.0.0

use QROptions::$outputBase64 instead

see
QROptions::$outputBase64
codeCoverageIgnore

set_imageTransparencyBG()

protected set_imageTransparencyBG(array<string|int, mixed>|null $imageTransparencyBG) : void
Parameters
$imageTransparencyBG : array<string|int, mixed>|null
Tags
deprecated
5.0.0

use QROptions::$transparencyColor instead

see
QROptions::$transparencyColor
codeCoverageIgnore

set_imagickBG()

protected set_imagickBG(string|null $imagickBG) : void
Parameters
$imagickBG : string|null
Tags
deprecated
5.0.0

use QROptions::$bgColor instead

see
QROptions::$bgColor
codeCoverageIgnore

set_jpegQuality()

protected set_jpegQuality(int $jpegQuality) : void
Parameters
$jpegQuality : int
Tags
deprecated
5.0.0

use QROptions::$quality instead

see
QROptions::$quality
codeCoverageIgnore

set_logoSpaceHeight()

clamp/set logo space height

protected set_logoSpaceHeight(int|null $value) : void
Parameters
$value : int|null

set_logoSpaceStartX()

clamp/set horizontal logo space start

protected set_logoSpaceStartX(int|null $value) : void
Parameters
$value : int|null

set_logoSpaceStartY()

clamp/set vertical logo space start

protected set_logoSpaceStartY(int|null $value) : void
Parameters
$value : int|null

set_logoSpaceWidth()

clamp/set logo space width

protected set_logoSpaceWidth(int|null $value) : void
Parameters
$value : int|null

set_pngCompression()

protected set_pngCompression(int $pngCompression) : void
Parameters
$pngCompression : int
Tags
deprecated
5.0.0

use QROptions::$quality instead

see
QROptions::$quality
codeCoverageIgnore

set_quietzoneSize()

sets/clamps the quiet zone size

protected set_quietzoneSize(int $quietzoneSize) : void
Parameters
$quietzoneSize : int

set_readerUseImagickIfAvailable()

enables Imagick for the QR Code reader if the extension is available

protected set_readerUseImagickIfAvailable(bool $useImagickIfAvailable) : void
Parameters
$useImagickIfAvailable : bool

set_version()

sets/clamps the version number

protected set_version(int $version) : void
Parameters
$version : int

set_versionMax()

sets the maximum version number

protected set_versionMax(int $version) : void
Parameters
$version : int

set_versionMin()

sets the minimum version number

protected set_versionMin(int $version) : void
Parameters
$version : int

setMinMaxVersion()

clamp min/max version number

protected setMinMaxVersion(int $versionMin, int $versionMax) : void
Parameters
$versionMin : int
$versionMax : int

        
On this page

Search results