Cara Membuat QRCode Generator Menggunakan PHP – Part 12 (QRCode Warna)

Cara Membuat QRCode Berwarna pada PHP – Ini merupakan postingan saya yang ke 12 yang membahas tentang qr code pada bahasa pemrograman PHP. Sekarang sobat tahu kan ada banyak sekali macam-macam qrcode yang bisa dibuat. Jika sobat belum mengetahuinya maka sobat bisa melihat postingan saya yang sebelumnya. Ada banyak sekali cara dan masing-masing tentunya berkaitan. Dan pada postingan ini saya akan membahas tentang cara merubah color/warna qrcode yang tadinya warna hitam ternyata bisa diubah menjadi warna-warni lho… dan tentunya bisa juga ditambah dengan gambar/logo pada tengah qrcode dengan demikian QRCode yang dibuat oleh aplikasi Anda bisa mempunyai ciri khas tersendiri dibandingkan dengan qrcode yang digenerate dari aplikasi/website lain.

Baca Juga :

Cara Membuat QRCode Generator Menggunakan PHP – Part 1

Cara Membuat QRCode Generator Menggunakan PHP – Part 2 (QRCode with Image)

Cara Membuat QRCode Generator Menggunakan PHP – Part 3 (Generate to PDF)

Cara Membuat QRCode Generator Menggunakan PHP – Part 4 (Dinamis dari Input Form)

Cara Membuat QRCode Generator Menggunakan PHP – Part 5 (Dinamis dari Database MySQL

Cara Membuat QRCode Generator Menggunakan PHP – Part 6 (QRCode Nomor Handphone)

Cara Membuat QRCode Generator Menggunakan PHP – Part 7 (QRCode SMS App)

Cara Membuat QRCode Generator Menggunakan PHP – Part 8 (QRCode Kirim Email)

Cara Membuat QRCode Generator Menggunakan PHP – Part 9 (QRCode Geografis)

Cara Membuat QRCode Generator Menggunakan PHP – Part 10 (QRCode VCard/Kontak)

Cara Membuat QRCode Generator Menggunakan PHP – Part 11 (QRCode MeCard/Kontak)

Cara Membuat QRCode Generator Menggunakan PHP – Part 12 (QRCode Warna)

 

Ada banyak cara untuk membuat qrcode dan pada postingan kali ini saya masih konsisten seperti postingan-postingan saya sebelumnya yaitu menggunakan 2 library phpqrcode dan endroid qrcode. Jika sobat masih belum tau caranya alangkah baiknya sobat lihat postingan saya sebelumnya karena disini saya anggap sobat sudah tahu dan saya tidak menjelaskan lebih detilnya lagi dan saya juga langsung memberikan contohnya dengan gambar. Tentunya sobat sudah tidak sabar kan untuk mengetahui cara membuatnya. Oke langsung saja saya jelaskan satu per satu

Membuat QRCode Berwarna Menggunakan Library Phpqrcode

Pada contoh yang pertama saya akan membuat menggunakan librari phpqrcode caranya adalah sebagai berikut

1. Download library phpqrcode, kemudian ekstrak ke dalam projek yang akan sobat buat pada contoh dibawah ini saya buat di folder htdocs/qrcode_warna

 

2. Buat folder baru pada folder project sobat (pada contoh disini folder qrcode), beri nama temp yang berfungsi untuk menyimpan gambar hasil generate QRCode.

 

3. Sediakan gambar sebagai logo yang berada di tengah qrcode dan pastekan pada folder project sobat. Untuk format filenya bisa .jpg,.png, dll. Pada contoh ini saya memberikan gambar bernama dk.png.

 

4. Buat index.php pada project yang akan sobat buat sehingga akan menghasilkan tampilan kurang lebih seperti dibawah ini

 

5. Buka index.php dan ketikkan script dibawah ini

    //library phpqrcode
    include "phpqrcode/qrlib.php";

    //direktory tempat menyimpan hasil generate qrcode jika folder belum dibuat maka secara otomatis akan membuat terlebih dahulu
    $tempdir = "temp/"; 
    if (!file_exists($tempdir))
        mkdir($tempdir);

    //isi QRCode saat discan
    $isi_teks = "Dewan Komputer With Image";
    //direktori dan nama logo
    $logopath = 'dk.png';
    //namafile setelah jadi qrcode
    $namafile = "dewan-komputer.png";
    //kualitas dan ukuran qrcode (L, M, Q, H)
    $quality = 'M'; 
    $ukuran = 8; 
    $padding = 2;

    QRCode::png($isi_teks,$tempdir.$namafile,QR_ECLEVEL_H,$ukuran,$padding);
    $filepath = $tempdir.$namafile;
    $QR = imagecreatefrompng($filepath);

    $logo = imagecreatefromstring(file_get_contents($logopath));
    $QR_width = imagesx($QR);
    $QR_height = imagesy($QR);

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

    //besar logo
    $logo_qr_width = $QR_width/2.5;
    $scale = $logo_width/$logo_qr_width;
    $logo_qr_height = $logo_height/$scale;

    //posisi logo
    imagecopyresampled($QR, $logo, $QR_width/3.3, $QR_height/2.5, 0, 0, $logo_qr_width, $logo_qr_height, $logo_width, $logo_height);

    imagepng($QR,$filepath);

    echo '<h3>Cara Membuat QRCode Generator Menggunakan PHP – Part 2 (QRCode with Image)</h3>';
    echo '<h3>Library PHPQrcode</h3>';
    echo '<img src="'.$tempdir.$namafile.'" width="250px">';

6. Jalankan project sobat melalui url http://localhost/qrcode_warna/ maka akan muncul gambar QRCode dengan namun warnanya masih hitam. Lantas bagaimanakah mengubah warnanya? Ok lanjut ke step 6

 

7. Buka folder phpqrcode lalu edit file qrencode.php lalu cari fungsi png() dan edit bagian $back_color untuk mengubah warna background dan ubah $fore_color untuk mengubah warna qrcode. Warna yang digunakan adalah Hex Code yang sobat bisa lihat disini. Ambil warna yang tengah dan ganti pada $fore_color namun tanpa menghapus 0x…

Sebelum :

public static function png($text, $outfile = false, $level = QR_ECLEVEL_L, $size = 3, $margin = 4, $saveandprint=false, $back_color = 0xFFFFFF, $fore_color = 0x000000)
{
    $enc = QRencode::factory($level, $size, $margin, $back_color, $fore_color);
    return $enc->encodePNG($text, $outfile, $saveandprint=false);
}

Sesudah :

public static function png($text, $outfile = false, $level = QR_ECLEVEL_L, $size = 3, $margin = 4, $saveandprint=false, $back_color = 0xFFF8DC, $fore_color = 0x0000FF)
{
    $enc = QRencode::factory($level, $size, $margin, $back_color, $fore_color);
    return $enc->encodePNG($text, $outfile, $saveandprint=false);
}

Hasil :

 

Membuat QRCode Berwarna Menggunakan Library Endroid QRCode

Cara yang kedua adalah cara yang menurut saya lebih bagus karena lebih mudah untuk customnya. Jika ingin membuat qrcode standar saya lebih suka membuat menggunakan phpqrcode tapi jika ingin membuat QRCode dengan mengganti warna qrcode atau menambahkan gambar/logo pada tengah qrcode saya lebih merekomendasikan menggunakan library ini. Untuk cara membuat qrcode custom sobat bisa melihat pada tutorial saya selanjutnya. Berikut ini cara membuat qrcode menggunakan library endroid qrcode :

1. Download library endroid atau sobat bisa mendownload melalui github resminya untuk mendapatkan versi yang paling baru disini atau menggunakan composer dengan perintah dibawah pada terminal windows sobat

composer require endroid/qr-code

Jika sobat belum menginstal composer atau malah belum mengerti juga cara menginstal library menggunakan composer, maka sobat bisa melihat artikel dibawah karena sekarang merupakan eranya penggunaan composer baik php native maupun framework.

Cara Menginstal dan Menggunakan Composer pada Windows Dengan Mudah

 

2. Setelah mendownload melalui composer biasanya pada folder direktory yang sobat pilih saat menjalankan perintah composer akan muncul folder ‘vendor‘. Kemudian buat copy folder vendor ke direktori project sobat dan rename menjadi endroid-qrcode.

 

3. Pada index.php di bagian tag body tambahkan code berikut

<?php    
    //Library Endroid
    require ('qcode-endroid/autoload.php');
    use Endroid\QrCode\ErrorCorrectionLevel;
    use Endroid\QrCode\LabelAlignment;
    use Endroid\QrCode\QrCode;
    use Endroid\QrCode\Response\QrCodeResponse;
    ?>

    <table style="text-align: center; margin-top: 30px;">
        <tr>
            <td>
                <?php
                    //Isi dari QRCode Saat discan
                    $isi_teks = "Dewan Komputer With Image";
                    $namafile = "dewan-komputer1.png";
                    $qrCode = new QrCode();
                    // Set Text
                    $qrCode->setText($isi_teks);
                    $qrCode->setWriterByName('png');
                    $qrCode->setMargin(10);
                    $qrCode->setEncoding('UTF-8');
                    $qrCode->setErrorCorrectionLevel(new ErrorCorrectionLevel(ErrorCorrectionLevel::HIGH));
                    // Warna QRCode
                    $qrCode->setForegroundColor(['r' => 255, 'g' => 0, 'b' => 0, 'a' => 0]);
                    // Warna Background
                    $qrCode->setBackgroundColor(['r' => 255, 'g' => 255, 'b' => 255, 'a' => 0]);
                    //Set Logo
                    $qrCode->setLogoPath('dk.png');
                    $qrCode->setLogoSize(100, 100);
                    $qrCode->setRoundBlockSize(true);
                    $qrCode->setValidateResult(false);
                    $qrCode->setWriterOptions(['exclude_xml_declaration' => true]);

                    // Save it to a file
                    $qrCode->writeFile($tempdir.$namafile);

                    echo '<h3>Library Endroid</h3>';
                    echo '<img src="temp/'.$namafile.'" width="250px">';
                    echo "<br/><br/>";
                ?>
            </td>
            <td>
                <?php
                    //Isi dari QRCode Saat discan
                    $isi_teks = "Dewan Komputer With Image";
                    $namafile = "dewan-komputer2.png";
                    $qrCode = new QrCode();
                    // Set Text
                    $qrCode->setText($isi_teks);
                    $qrCode->setWriterByName('png');
                    $qrCode->setMargin(10);
                    $qrCode->setEncoding('UTF-8');
                    $qrCode->setErrorCorrectionLevel(new ErrorCorrectionLevel(ErrorCorrectionLevel::HIGH));
                    // Warna QRCode
                    $qrCode->setForegroundColor(['r' => 255, 'g' => 0, 'b' => 0, 'a' => 0]);
                    // Warna Background
                    $qrCode->setBackgroundColor(['r' => 0, 'g' => 255, 'b' => 255, 'a' => 0]);
                    //Set Logo
                    $qrCode->setLogoPath('dk2.png');
                    $qrCode->setLogoSize(100, 100);
                    $qrCode->setRoundBlockSize(true);
                    $qrCode->setValidateResult(false);
                    $qrCode->setWriterOptions(['exclude_xml_declaration' => true]);

                    // Save it to a file
                    $qrCode->writeFile($tempdir.$namafile);

                    echo '<h3>Library Endroid</h3>';
                    echo '<img src="temp/'.$namafile.'" width="250px">';
                    echo "<br/><br/>";
                ?>
            </td>
        </tr>
    </table>

4. Jika sobat jalankan maka akan menghasilkan tampilan qrcode seperti dibawah

 

Bagaimana mudah bukan? Saran saya untuk gambar tidak usah terlalu besar karena nantinya akan menghalangi kode atau titik-titik dari qrcode tersebut. Untuk custom tentunya lebih mudah library endroid bukan? dan sobat bisa juga membuat qrcode yang berbeda, warna yang berbeda, dan gambar yang berbeda pada 1 halaman. Sekian postingan saya tentang Cara Membuat QRCode Generator Menggunakan PHP – Part 12 (QRCode Warna). Semoga bermanfaat dan jika ada salah kata saya mohon maaf.

Jika sobat butuh aplikasi qrcode generator yang sudah jadi, tanpa repot membuatnya dari awal. Saya juga menyediakan aplikasi yang bisa langsung sobat gunakan. Harganya juga cukup terjangkau. Pada aplikasi tersebut juga ada bonus barcode generator dan scanner qrcode. Pada aplikasi itu sobat sudah bisa membuat qrcode dan meng-customnya sesuai kemauan sobat sepeperti ganti warna , ganti logo, secara satuan dan langsung banyak. Jika sobat berminat maka bisa kunjungi toko saya di bawah ini

Jika sobat ingin mendownload tutorial diatas maka sobat bisa klik link dibawah ini :


Sampai jumpa pada postingan saya lainnya..

3 thoughts on “Cara Membuat QRCode Generator Menggunakan PHP – Part 12 (QRCode Warna)

Leave a Reply

Your email address will not be published. Required fields are marked *

17 − seven =