nguyenary / QRCodeMonkey

A library using PHP to generate QRCode from https://www.qrcode-monkey.com free
https://packagist.org/packages/nguyenary/qr-code-monkey
MIT License
77 stars 20 forks source link
php-class-qrcode php-qrcode qrcode-generator qrcode-monkey qrcode-printer-label

PHP Class Generate Free QRCode

👉 A library using PHP to generate QRCode from https://www.qrcode-monkey.com free
✋ NOTE: Do not generate too many QRCode at once or your IP will be locked for a period of time

Getting started

Use composer to integrate your PHP project

composer require nguyenary/qr-code-monkey

Configuration

📘 You can configure to generate QRCode or use default configuration. Below is a list of configurations that you can use

Parameter Type Default Description
body String square     square
    mosaic
    dot
    circle
    circle-zebra
    circle-zebra-vertical
    circular
  edge-cut
  edge-cut-smooth
  japnese
  leaf
  pointed
  pointed-edge-cut
  pointed-in
  pointed-in-smooth
  pointed-smooth
  round
  rounded-in
  rounded-in-smooth
  rounded-pointed
  star
  diamond
eye String frame0   frame0
  frame1
  frame2
  frame3
  frame4
  frame5
  frame6
  frame7
  frame8
  frame10
  frame11
  frame12
  frame13
  frame14
  frame16
eyeBall String ball0   ball0
  ball1
  ball2
  ball3
  ball5
  ball6
  ball7
  ball8
  ball10
  ball11
  ball12
  ball13
  ball14
  ball15
  ball16
  ball17
  ball18
ball19
erf1 Array [ ] Rotate the upper left eye element. Add "fv" or "fh" to invert element vertically or horizontally. E.g. ["fv","fh"] inverts a element vertically and horziontally.
erf2 Array [ ] Rotate the upper right eye element. Add "fv" or "fh" to invert element vertically or horizontally. E.g. ["fv","fh"] inverts a element vertically and horziontally.
erf3 Array [ ] Rotate the lower left eye element. Add "fv" or "fh" to invert element vertically or horizontally. E.g. ["fv","fh"] inverts a element vertically and horziontally.
brf1 Array [ ] Rotate the upper left eye ball element. Add "fv" or "fh" to invert element vertically or horizontally. E.g. ["fv","fh"] inverts a element vertically and horziontally.
brf2 Array [ ] Rotate the upper right eye ball element. Add "fv" or "fh" to invert element vertically or horizontally. E.g. ["fv","fh"] inverts a element vertically and horziontally.
brf3 Array [ ] Rotate the lower left eye ball element. Add "fv" or "fh" to invert element vertically or horizontally. E.g. ["fv","fh"] inverts a element vertically and horziontally.
bodyColor String #000000 Color of QR code body as HEX value.
bgColor String #ffffff Color of QR code background as HEX value. Note: the background should always have a lighter color to be scanable with all devices.
eye1Color String #000000 Color of the upper left eye as HEX value.
eye2Color String #000000 Color of the upper right eye as HEX value.
eye3Color String #000000 Color of the lower left eye as HEX value.
eyeBall1Color String #000000 Color of the upper left eye ball as HEX value.
eyeBall2Color String #000000 Color of the upper right eye ball as HEX value.
eyeBall3Color String #000000 Color of the lower left eye ball as HEX value.
gradientColor1 String null Color 1 for gradient color of body as HEX.
gradientColor2 String null Color 2 for gradient color of body as HEX.
gradientType String linear Gradient type for color of body. Value can be "linear" or "radial".
gradientOnEyes Boolean false Disable individual colors for the eye elements and set the gradient color for the complete QR code.

Example Usage

For details on the examples please see the file example.php

First you need to initialize a QRCode instance

require_once 'vendor/autoload.php';

use nguyenary\QRCodeMonkey\QRCode;

$qrcode = new QRCode('nguyenary');

Example easy usage:

print_r($qrcode->create());

The above code will return a URL containing a QR Code

Example of saving QRCode as a file

$qrcode->create('file_qrcode.png');

Example for config:

$qrcode = new QRCode('nguyenary');

$qrcode->setConfig([
    'bgColor' => '#FFFFFF',
    'body' => 'square',
    'bodyColor' => '#0277bd',
    'brf1' => [],
    'brf2' => [],
    'brf3' => [],
    'erf1' => [],
    'erf2' => [],
    'erf3' => [],
    'eye' => 'frame0',
    'eye1Color' => '#000000',
    'eye2Color' => '#000000',
    'eye3Color' => '#000000',
    'eyeBall' => 'ball0',
    'eyeBall1Color' => '#000000',
    'eyeBall2Color' => '#000000',
    'eyeBall3Color' => '#000000',
    'gradientColor1' => '#0277bd',
    'gradientColor2' => '#000000',
    'gradientOnEyes' => 'true',
    'gradientType' => 'linear',
]);

Example for set logo, file type and size

// Set logo path file to use
$qrcode->setLogo('image/facebook.png');

// Support png, svg, jpg, pdf, eps
$qrcode->setFileType('png');

// Size limit is 3480 pixel
$qrcode->setSize(200);

Features

What's all the bells and whistles this project can perform?

✋ NOTE: Format pdf and eps no support for color gradients

Contributing

This is a project I do in my spare time to contribute to the community. I would very much welcome if you would like to contribute to this project

Licensing

The code in this project is licensed under MIT license