Sample code for 30+ languages & platforms
AutoIt Requires Chilkat v11.7.0+

QR Code Colors and Transparent Background

See more QR Code Examples

Demonstrates colored QR codes. render.foreground is the color of the dark modules and render.background the color behind them, each as #RRGGBB. Either can instead be an object with a color and an opacity from 0 to 1, and a background opacity of 0 gives a PNG with a transparent background to place over a page or a design. Readers need contrast: keep the modules clearly darker than whatever ends up behind them.

Chilkat AutoIt Downloads

AutoIt
Local $bSuccess = False

;  This example requires the Chilkat API to have been previously unlocked.
;  See Global Unlock Sample for sample code.

$oFmt = ObjCreate("Chilkat.Formats")
$oJsonOut = ObjCreate("Chilkat.JsonObject")

;  Dark blue modules on a pale yellow background.
$oJson = ObjCreate("Chilkat.JsonObject")
$oJson.UpdateString("payload.text","https://www.chilkatsoft.com/")
$oJson.UpdateInt("render.moduleSize",6)
$oJson.UpdateString("render.foreground","#1B3A6B")
$oJson.UpdateString("render.background","#FFF8DC")
$oJson.UpdateString("output.path","qa_output/qr_blue.png")
$oJson.UpdateBool("output.overwrite",True)
$oJson.UpdateString("output.return","none")
$bSuccess = $oFmt.QrCode("generate",$oJson,$oJsonOut)
If ($bSuccess = False) Then
    ConsoleWrite($oFmt.LastErrorText & @CRLF)
    Exit
EndIf

ConsoleWrite("colored: " & $oJsonOut.StringOf("outputs[0].path") & ", " & $oJsonOut.IntOf("outputs[0].byteCount") & " bytes" & @CRLF)

;  The image written to qa_output/qr_blue.png:

;  image

;  The same modules on a fully transparent background.
$oJson2 = ObjCreate("Chilkat.JsonObject")
$oJson2.UpdateString("payload.text","https://www.chilkatsoft.com/")
$oJson2.UpdateInt("render.moduleSize",6)
$oJson2.UpdateString("render.foreground","#1B3A6B")
$oJson2.UpdateString("render.background.color","#FFFFFF")
$oJson2.UpdateNumber("render.background.opacity","0")
$oJson2.UpdateString("output.path","qa_output/qr_transparent.png")
$oJson2.UpdateBool("output.overwrite",True)
$oJson2.UpdateString("output.return","none")
$bSuccess = $oFmt.QrCode("generate",$oJson2,$oJsonOut)
If ($bSuccess = False) Then
    ConsoleWrite($oFmt.LastErrorText & @CRLF)
    Exit
EndIf

ConsoleWrite("transparent: " & $oJsonOut.StringOf("outputs[0].path") & ", " & $oJsonOut.IntOf("outputs[0].byteCount") & " bytes" & @CRLF)

;  qa_output/qr_transparent.png, placed here over a checkerboard and over a colored page
;  to show that whatever is behind the image shows through:

;  image

;  Sample output:

;  colored: qa_output/qr_blue.png, 1345 bytes
;  transparent: qa_output/qr_transparent.png, 1377 bytes