Skip to content

Files

Latest commit

 

History

History
102 lines (74 loc) · 3.49 KB

QRInterventionImage.md

File metadata and controls

102 lines (74 loc) · 3.49 KB

QRInterventionImage

Class QRInterventionImage: intervention/image alternative GD/ImageMagick output.

Note: this output class works significantly slower than the native GD/Imagick output classes due to the several underlying abstraction layers. Use only if you must.

Example

See: intervention/image example

Set the options:

$options = new QROptions;

$options->outputInterface     = QRInterventionImage::class;
$options->scale               = 20;
$options->bgColor             = '#ccccaa';
$options->imageTransparent    = false;
$options->transparencyColor   = '#ccccaa';
$options->drawLightModules    = false;
$options->drawCircularModules = true;
$options->circleRadius        = 0.4;
$options->keepAsSquare        = [
	QRMatrix::M_FINDER_DARK,
	QRMatrix::M_FINDER_DOT,
	QRMatrix::M_ALIGNMENT_DARK,
];
$options->moduleValues        = [
	QRMatrix::M_FINDER_DARK    => '#A71111', // dark (true)
	QRMatrix::M_FINDER_DOT     => '#A71111', // finder dot, dark (true)
	QRMatrix::M_FINDER         => '#FFBFBF', // light (false)
	QRMatrix::M_ALIGNMENT_DARK => '#A70364',
	QRMatrix::M_ALIGNMENT      => '#FFC9C9',
	QRMatrix::M_VERSION_DARK   => '#650098',
	QRMatrix::M_VERSION        => '#E0B8FF',
];

Render the output:

$data = 'https://www.youtube.com/watch?v=dQw4w9WgXcQ';
$out  = (new QRCode($options))->render($data); // -> data:image/png;base64,...

printf('<img alt="%s" src="%s" />', $alt, $out);

Return the ImageInterface instance (will ignore other output options):

$options->returnResource = true;

/** @var \Intervention\Image\Interfaces\ImageInterface $image */
$image = (new QRCode($options))->render($data);

// do stuff with the ImageInterface instance...

// ...dump output

header('Content-type: image/png');

echo $image->toPng()->toString();

Set a different driver in the internal ImageManager instance (the internal detection order is: 1. GD, 2. Imagick):

$qrOutputInterface = new QRInterventionImage($options, $matrix);
// set a different driver
$qrOutputInterface->setDriver(new \Intervention\Image\Drivers\Imagick\Driver);
// dump output
$out = $qrOutputInterface->dump();

Additional methods

method return description
setDriver(DriverInterface $driver) static Sets a DriverInterface, see instantiation (intervention.io)
(protected) module() void Draws a single pixel at the given position

Options that affect this module

property type
$bgColor mixed
$circleRadius float
$drawCircularModules bool
$drawLightModules bool
$imageTransparent bool
$keepAsSquare array
$outputBase64 bool
$returnResource bool
$scale int
$transparencyColor mixed