Perl Requires Chilkat v11.7.0+
Chilkat2 Perl
Embed a QR Code in HTML as a Data URI
See more QR Code Examples
Demonstrates putting a QR code directly into an HTML page or HTML email with no separate image file. The base64 PNG returned by QrCode becomes the src of an img tag as a data URI, which is the MIME type from outputs[0].mimeType followed by the base64 from outputs[0].base64.Chilkat Perl Downloads
use strict;
use warnings;
use Chilkat2;
# This example requires the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.
my $json = Chilkat2::JsonObject->new;
$json->UpdateString('payload.text', 'https://www.chilkatsoft.com/');
$json->UpdateInt('render.moduleSize', 5);
my $fmt = Chilkat2::Formats->new;
my $jsonOut = Chilkat2::JsonObject->new;
my $success = $fmt->QrCode('generate', $json, $jsonOut);
if (!$success) {
print $fmt->LastErrorText, "\n";
exit;
}
# A data URI has the form data:<MIME type>;base64,<base64 data>
my $sbHtml = Chilkat2::StringBuilder->new;
$sbHtml->Append('<html><body><p>Scan to visit chilkatsoft.com</p><img alt="QR code" width="');
$sbHtml->AppendInt($jsonOut->IntOf('outputs[0].width'));
$sbHtml->Append('" height="');
$sbHtml->AppendInt($jsonOut->IntOf('outputs[0].height'));
$sbHtml->Append('" src="data:');
$sbHtml->Append($jsonOut->StringOf('outputs[0].mimeType'));
$sbHtml->Append(';base64,');
$sbHtml->Append($jsonOut->StringOf('outputs[0].base64'));
$sbHtml->Append('"></body></html>');
$success = $sbHtml->WriteFile('qa_output/qr_page.html', 'utf-8', 0);
if (!$success) {
print $sbHtml->LastErrorText, "\n";
exit;
}
print 'image: ', $jsonOut->IntOf('outputs[0].width'), ' x ', $jsonOut->IntOf('outputs[0].height'), " pixels\n";
print 'HTML length: ', $sbHtml->Length, "\n";
# The page, as a browser shows it:
#
# Sample output:
# image: 185 x 185 pixels
# HTML length: 1211