Documentation

QROptionsTrait

The QRCode plug-in settings & setter functionality

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
see
https://github.com/chillerlan/php-qrcode/issues/23
see
https://github.com/chillerlan/php-qrcode/discussions/122

$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
see
FPDF::__construct()

$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
see
QRGdImage
see
QROptions::$imageTransparent
see
imagecolortransparent()

[R, G, B]

$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
see
QROptions::$imageTransparencyBG
see
https://github.com/chillerlan/php-qrcode/discussions/121

$imagickBG

Imagick background color (defaults to "transparent")

protected string|null $imagickBG = null
Tags
see
ImagickPixel::__construct()

$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 $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
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 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
see
QROutputInterface::dump()

$scale

size of a QR code pixel [SVG, IMAGE_*], HTML via CSS

protected int $scale = 5

$svgExcludeFromConnect

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

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

$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

$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
see
LuminanceSourceInterface
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
throws
QRCodeException
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_imageTransparencyBG()

sets the transparency background color

protected set_imageTransparencyBG(array<string|int, mixed> $imageTransparencyBG) : void
Parameters
$imageTransparencyBG : array<string|int, mixed>
Tags
throws
QRCodeException
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
Return values
void

Search results