Documentation

QROptions extends SettingsContainerAbstract
in package
Uses QROptionsTrait

The QRCode settings container

Table of Contents

$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
/path/to/cache.file
$circleRadius  : float
specifies the radius of the modules when $svgDrawCircularModules 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 $svgConnectPaths is set to true
$fpdfMeasureUnit  : string
Measurement unit for FPDF output: pt, mm, cm, in (defaults to "pt")
$imageBase64  : bool
toggle base64 or raw image data (if applicable)
$imageTransparent  : bool
toggle transparency
$imagickFormat  : string
Imagick output format
$jpegQuality  : int
$keepAsSquare  : array<string|int, mixed>
specifies which module types to exclude when $svgDrawCircularModules 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
$markupDark  : string
markup substitute for dark (CSS value)
$markupLight  : string
markup substitute for light (CSS value)
$maskPattern  : int
Mask Pattern to use (no value in using, mostly for unit testing purposes)
$moduleValues  : array<string|int, mixed>|null
Module values map
$outputInterface  : string|null
the FQCN of the custom QROutputInterface if $outputType is set to QRCode::OUTPUT_CUSTOM
$outputType  : string
The output type
$pngCompression  : int
$quietzoneSize  : int
Size of the quiet zone
$readerGrayscale  : bool
grayscale the image before reading
$readerIncreaseContrast  : bool
increase the contrast before reading
$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
$svgDefs  : string
anything between <defs>
$svgHeight  : string|null
optional "height" attribute with the specified value (note that the value is not checked!)
$svgOpacity  : float
SVG opacity
$svgPreserveAspectRatio  : string
$svgViewBoxSize  : int|null
SVG viewBox size. a single integer number which defines width/height of the viewBox attribute.
$svgWidth  : string|null
optional "width" attribute with the specified value (note that the value is not checked!)
$textDark  : string
string substitute for dark
$textLight  : string
string substitute for light
$transparencyColor  : mixed|null
Sets a transparency color for when {@see \chillerlan\QRCode\QROptions::$imageTransparent QROptions::$imageTransparent} is set to true.
$version  : int
QR Code version number
$versionMax  : int
Maximum QR version
$versionMin  : int
Minimum QR version
clampLogoSpaceValue()  : int|null
clamp the logo space values between 0 and maximum length (177 modules at version 40)
set_circleRadius()  : void
clamp/set SVG circle radius
set_fpdfMeasureUnit()  : void
sets the FPDF measurement unit
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_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

$addLogoSpace

Toggles logo space creation

protected bool $addLogoSpace = false

$bgColor

Sets the image background color (if applicable)

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

$cachefile

/path/to/cache.file

protected string|null $cachefile = null

please note that the $file parameter in QRCode::render*() takes precedence over the $cachefile value

$circleRadius

specifies the radius of the modules when $svgDrawCircularModules is set to true

protected float $circleRadius = 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
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

$excludeFromConnect

specify which paths/patterns to exclude from connecting if $svgConnectPaths is set to true

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

$fpdfMeasureUnit

Measurement unit for FPDF output: pt, mm, cm, in (defaults to "pt")

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

$imageBase64

toggle base64 or raw image data (if applicable)

protected bool $imageBase64 = true

$jpegQuality

protected int $jpegQuality = 85
Tags
see
imagejpeg()

$keepAsSquare

specifies which module types to exclude when $svgDrawCircularModules is set to true

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

$logoSpaceHeight

height of the logo space

protected int|null $logoSpaceHeight = null

if only either $logoSpaceWidth or $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 either $logoSpaceWidth or $logoSpaceHeight is given, the logo space is assumed a square of that size

$markupDark

markup substitute for dark (CSS value)

protected string $markupDark = '#000'

$markupLight

markup substitute for light (CSS value)

protected string $markupLight = '#fff'

$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

$moduleValues

Module values map

protected array<string|int, mixed>|null $moduleValues = null
  • QRImagick, QRMarkupHTML, QRMarkupSVG: #ABCDEF, cssname, rgb(), rgba()...
  • QREps, QRFpdf, QRGdImage: [63, 127, 255] // R, G, B

$outputInterface

the FQCN of the custom QROutputInterface if $outputType is set to QRCode::OUTPUT_CUSTOM

protected string|null $outputInterface = null

$outputType

The output type

protected string $outputType = \chillerlan\QRCode\Output\QROutputInterface::MARKUP_SVG
  • QROutputInterface::MARKUP_XXXX where XXXX = HTML, SVG
  • QROutputInterface::GDIMAGE_XXX where XXX = PNG, GIF, JPG
  • QROutputInterface::STRING_XXXX where XXXX = TEXT, JSON
  • QROutputInterface::IMAGICK
  • QROutputInterface::EPS
  • QROutputInterface::FPDF
  • QROutputInterface::CUSTOM

$pngCompression

protected int $pngCompression = -1
Tags
see
imagepng()

$quietzoneSize

Size of the quiet zone

protected int $quietzoneSize = 4

internally clamped to [0 ... $moduleCount / 2], defaults to 4 modules

$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

$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

This option overrides other output options, such as $cachefile and $imageBase64.

Supported by the following modules:

  • QRGdImage: resource (PHP < 8), GdImage
  • QRImagick: Imagick
  • QRFpdf: FPDF
Tags
see
QROutputInterface::dump()

$textDark

string substitute for dark

protected string $textDark = '🔴'

$textLight

string substitute for light

protected string $textLight = 'â­•'

$transparencyColor

Sets a transparency color for when {@see \chillerlan\QRCode\QROptions::$imageTransparent 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()

$version

QR Code version number

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

[1 ... 40] or Version::AUTO

$versionMin

Minimum QR version

protected int $versionMin = 1

if $version = QRCode::VERSION_AUTO

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

set_circleRadius()

clamp/set SVG circle radius

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

set_fpdfMeasureUnit()

sets the FPDF measurement unit

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

set_logoSpaceHeight()

clamp/set logo space height

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

set_logoSpaceStartX()

clamp/set horizontal logo space start

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

set_logoSpaceStartY()

clamp/set vertical logo space start

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

set_logoSpaceWidth()

clamp/set logo space width

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

set_quietzoneSize()

sets/clamps the quiet zone size

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

set_readerUseImagickIfAvailable()

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

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

set_version()

sets/clamps the version number

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

set_versionMax()

sets the maximum version number

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

set_versionMin()

sets the minimum version number

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

setMinMaxVersion()

clamp min/max version number

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

Search results