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
- $cachefile : string|null
- /path/to/cache.file
- $circleRadius : float
- specifies the radius of the modules when $svgDrawCircularModules is set to true
- $cssClass : string
- a common css class
- $drawCircularModules : bool
- specify whether to draw the modules as filled circles
- $eccLevel : int
- Error correct level
- $eol : string
- newline string [HTML, SVG, TEXT]
- $fpdfMeasureUnit : string
- Measurement unit for FPDF output: pt, mm, cm, in (defaults to "pt")
- $imageBase64 : bool
- toggle base64 or raw image data
- $imageTransparencyBG : array<string|int, mixed>
- Sets the background color in GD mode.
- $imageTransparent : bool
- toggle background transparency
- $imagickBG : string|null
- Imagick background color (defaults to "transparent")
- $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
- 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
- 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 Imaagick (if available) when reading QR Codes
- $returnResource : bool
- Return the image resource instead of a render if applicable.
- $scale : int
- size of a QR code pixel [SVG, IMAGE_*], HTML via CSS
- $svgConnectPaths : bool
- whether to connect the paths for the several module types to avoid weird glitches when using gradients etc.
- $svgDefs : string
- anything between <defs>
- $svgExcludeFromConnect : array<string|int, mixed>
- specify which paths/patterns to exclude from connecting if $svgConnectPaths is set to true
- $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
- $version : int
- QR Code version number
- $versionMax : int
- Maximum QR version
- $versionMin : int
- Minimum QR version
- getLuminanceSourceFQCN() : string
- returns the FQCN of the luminance source class to use in the reader (GD or Imagick)
- clampLogoSpaceValue() : int
- clamp the logo space values between 0 and maximum length (177 modules at version 40)
- set_circleRadius() : void
- clamp/set SVG circle radius
- set_eccLevel() : void
- sets the error correction level
- set_fpdfMeasureUnit() : void
- sets the FPDF measurement unit
- set_imageTransparencyBG() : void
- sets the transparency background color
- 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_maskPattern() : void
- sets/clamps the mask pattern
- 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
$addQuietzone
Add a "quiet zone" (margin) according to the QR code spec
protected
bool
$addQuietzone
= true
$cachefile
/path/to/cache.file
protected
string|null
$cachefile
= null
$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 or equal than 20, the image will be upscaled internally, then the modules will be drawn using imagefilledellipse() and then scaled back to the expected size using IMG_BICUBIC which in turn produces unexpected outcomes in combination with transparency - to avoid this, set scale to a value greater than 20.
Tags
$eccLevel
Error correct level
protected
int
$eccLevel
= \chillerlan\QRCode\Common\EccLevel::L
QRCode::ECC_X where X is:
- L => 7%
- M => 15%
- Q => 25%
- H => 30%
$eol
newline string [HTML, SVG, TEXT]
protected
string
$eol
= PHP_EOL
$fpdfMeasureUnit
Measurement unit for FPDF output: pt, mm, cm, in (defaults to "pt")
protected
string
$fpdfMeasureUnit
= 'pt'
Tags
$imageBase64
toggle base64 or raw image data
protected
bool
$imageBase64
= true
$imageTransparencyBG
Sets the background color in GD mode.
protected
array<string|int, mixed>
$imageTransparencyBG
= [255, 255, 255]
When QROptions::$imageTransparent is set to true, this color is set as transparent in imagecolortransparent()
Tags
$imageTransparent
toggle background transparency
protected
bool
$imageTransparent
= true
-
In GdImage mode (png, gif) it sets imagecolortransparent() with QROptions::$imageTransparencyBG. It also sets the "normal" background color without transparency switch.
-
In SVG mode (as of v5), it won't render the "light" modules, as opacity/transparency can easily be set with css properties.
-
It has no effect in the FPDF and Imagick output modules.
Tags
$imagickBG
Imagick background color (defaults to "transparent")
protected
string|null
$imagickBG
= null
Tags
$imagickFormat
Imagick output format
protected
string
$imagickFormat
= 'png32'
Tags
$jpegQuality
protected
int
$jpegQuality
= 85
Tags
$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
$logoSpaceHeight
= 0
$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
$logoSpaceWidth
= 0
$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\QRCode::MASK_PATTERN_AUTO
[0...7] or QRCode::MASK_PATTERN_AUTO
$moduleValues
Module values map
protected
array<string|int, mixed>|null
$moduleValues
= null
- HTML, IMAGICK: #ABCDEF, cssname, rgb(), rgba()...
- IMAGE: [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\QRCode::OUTPUT_MARKUP_SVG
- 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
$pngCompression
protected
int
$pngCompression
= -1
Tags
$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 Imaagick (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:
- QRImage: resource (PHP < 8), GdImage
- QRImagick: Imagick
- QRFpdf: FPDF
Tags
$scale
size of a QR code pixel [SVG, IMAGE_*], HTML via CSS
protected
int
$scale
= 5
$svgConnectPaths
whether to connect the paths for the several module types to avoid weird glitches when using gradients etc.
protected
bool
$svgConnectPaths
= false
Tags
$svgDefs
anything between <defs>
protected
string
$svgDefs
= ''
Tags
$svgExcludeFromConnect
specify which paths/patterns to exclude from connecting if $svgConnectPaths is set to true
protected
array<string|int, mixed>
$svgExcludeFromConnect
= []
$svgHeight
optional "height" attribute with the specified value (note that the value is not checked!)
protected
string|null
$svgHeight
= null
Tags
$svgOpacity
SVG opacity
protected
float
$svgOpacity
= 1.0
$svgPreserveAspectRatio
protected
string
$svgPreserveAspectRatio
= 'xMidYMid'
Tags
$svgViewBoxSize
SVG viewBox size. a single integer number which defines width/height of the viewBox attribute.
protected
int|null
$svgViewBoxSize
= null
viewBox="0 0 x x"
Tags
$svgWidth
optional "width" attribute with the specified value (note that the value is not checked!)
protected
string|null
$svgWidth
= null
Tags
$textDark
string substitute for dark
protected
string
$textDark
= '🔴'
$textLight
string substitute for light
protected
string
$textLight
= 'â•'
$version
QR Code version number
protected
int
$version
= \chillerlan\QRCode\QRCode::VERSION_AUTO
[1 ... 40] or QRCode::VERSION_AUTO
$versionMax
Maximum QR version
protected
int
$versionMax
= 40
$versionMin
Minimum QR version
protected
int
$versionMin
= 1
if $version = QRCode::VERSION_AUTO
Methods
getLuminanceSourceFQCN()
returns the FQCN of the luminance source class to use in the reader (GD or Imagick)
public
getLuminanceSourceFQCN() : string
Tags
Return values
string —clampLogoSpaceValue()
clamp the logo space values between 0 and maximum length (177 modules at version 40)
protected
clampLogoSpaceValue(int $value) : int
Parameters
- $value : int
Return values
int —set_circleRadius()
clamp/set SVG circle radius
protected
set_circleRadius(float $circleRadius) : void
Parameters
- $circleRadius : float
Return values
void —set_eccLevel()
sets the error correction level
protected
set_eccLevel(int $eccLevel) : void
Parameters
- $eccLevel : int
Tags
Return values
void —set_fpdfMeasureUnit()
sets the FPDF measurement unit
protected
set_fpdfMeasureUnit(string $unit) : void
Parameters
- $unit : string
Tags
Return values
void —set_imageTransparencyBG()
sets the transparency background color
protected
set_imageTransparencyBG(array<string|int, mixed> $imageTransparencyBG) : void
Parameters
- $imageTransparencyBG : array<string|int, mixed>
Tags
Return values
void —set_logoSpaceHeight()
clamp/set logo space height
protected
set_logoSpaceHeight(int $value) : void
Parameters
- $value : int
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 $value) : void
Parameters
- $value : int
Return values
void —set_maskPattern()
sets/clamps the mask pattern
protected
set_maskPattern(int $maskPattern) : void
Parameters
- $maskPattern : 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