;

Tutorial Membuat QRCode Dengan PHP CodeIgniter

Pict by pexel @pixabay

Kali ini saya akan membagikan tutorial membuat QRCode menggunakan PHP Codeigniter.
Tepatnya QRCode yang akan saya buat adalah QRCode dengan tambahan gambar atau logo tepat ditengahnya

Untuk membuat QRCode di CodeIgniter kita membutuhkan library bantuan. Pada tutorial kali ini saya akan menggunakan library PHP QRCode yang bisa teman-teman dapatkan disini CodeIgniter-PHP-QR-Code

Download terlebih dahulu library tersebut, lalu esktrak, kita akan memperoleh folder qrcode dan file Ciqrcode.php
kemudian simpan file dan folder tersebut di dalam folder masterapp/application/libraries, sehingga folder libraries akan terlihat seperti gambar dibawah

susunan folder


Lakukan perubahan pada file Ciqrcode.php dengan mengganti isi fungsi construct

ganti code ini
Ganti isi dari fungsi construct dengan code dibawah ini


*catatan : jika tidak terjadi error include() failed untuk file file yang ada di dalam construct tersebut, maka kamu tidak perlu melakukan perubahan.

Selanjutnya kita akan membuat fungsi untuk menggenerate QRCode dengan memberikan logo/gambar ditengah tengah QRCode yang kita buat.
Perhatikan fungsi generate_qr_code() yang saya buat dibawah



fungsi generate_qr_code() yang saya buat menerima sebuah parameter bernama $value. Parameter ini berisi data yang akan kita gunakan sebagai nilai atau data dari QRCode yang dibuat, sekaligus sebagai nama file yang disimpan didalam variabel $filename dengan format .png
kode $fullpath = APPPATH.'../public/files/'.$filename; berfungsi untuk membuat path file yang ada di dalam folder public/files
sedangkan kode $logopath = APPPATH.'../assets/img/logo/kemdikbud.png'; digunakan untuk membuat path dari gambar kemdikbud.png, gambar ini nantinya akan kita simpan ditengah tengah QRCode.

Kode $this->load->library('ciqrcode'); adalah untuk meload library ciqrcode
dan kode $this->ciqrcode->generate($params); adalah untuk menggenerate sebuah QRCode.
Sampai disini QRCode kita sudah berhasil di generate

Selanjunya kode

$QR = imagecreatefrompng($fullpath);
$logo = imagecreatefromstring(file_get_contents($logopath));
imagecolortransparent($logo , imagecolorallocatealpha($logo , 0, 0, 0, 127));
imagealphablending($logo , false);
imagesavealpha($logo , true);
$QR_width = imagesx($QR);//get logo width
$QR_height = imagesy($QR);//get logo width

$logo_width = imagesx($logo);
$logo_height = imagesy($logo);

$logo_qr_width = $QR_width/2;
$scale = $logo_width/$logo_qr_width;
$logo_qr_height = $logo_height/$scale;

imagecopyresampled($QR, $logo, $QR_width/4, $QR_height/3.5, 0, 0, $logo_qr_width, $logo_qr_height, $logo_width, $logo_height);

imagepng($QR,$fullpath);


adalah kode untuk mengedit File QRCode yang kita buat dengan menambahkan logo kemdikbud yang kita load tadi ke tengah tengah gambar QRCode yang telah kita generate tadi.

untuk menggukan fungsi generate_qr_code() yang kita buat tadi, silahkan perhatikan kode dibawah ini


Dan hasil dari QRCode yang kita buat kurang lebih akan seperti ini

QRCode yang telah dibuat

Jika ada yang kurang jelas silahkan bertanya di kolom komentar, terima kasih

2 comments

  1. setelah saya coba dengan metode yang dipaparkan ketika render qrcode dengan logo hasilnya background logo masih kebawa ya bang ? ato ada prasyarat file png logo yang harus dipenuhi ?

    1. logonya gak boleh punya background, harus transparan, karena code ini tidak menghapus background logo. untuk menghapus backgroundnyanya, bisa menggunakan software semacam adobe photoshop