Cara convert teks ke gambar dengan PHP

3
Cara convert teks ke gambar dengan PHP

Dalam beberapa kasus, kita perlu membuat gambar dinamis dengan cepat dan menulis teks pada gambar di aplikasi web. Kalau kamu punya kebutuhan seperti ini, jangan khawatir kali ini saya akan memberikan contoh script PHP sederhana untuk convert teks ke gambar dengan PHP dan menyimpannya sebagai format PNG atau JPG.

Untuk mengontrol teks untuk proses pembuatan gambar, kita harus membuat class PHP. Dengan menggunakan class PHP ini kita dapat dengan mudah membuat gambar dan menambahkan beberapa teks ke gambar.

Kita akan menggunakan Libary GD untuk membuat dan memanipulasi file gambar dalam script PHP. Jadi sebelum kamu memulai, pastikan PHP GD sudah diinstal pada server kamu. Jika kamu menggunakan XAMPP, secara default, GD sudah aktif otomatis sejak XAMPP versi 1.7.0.

Class TeksKeGambar

Class TeksKeGambar akan membantu untuk menghasilkan gambar dan menambahkan teks ke gambar. Class TeksKeGambar berisi 4 fungsi dan fungsi tersebut akan melakukan hal berikut.

  • buatGambar() – Menciptakan gambar dari teks. String teks harus diberikan agar dapat menulis pada gambar. Juga, kamu dapat menentukan ukuran font, lebar gambar, dan tinggi gambar.
  • tampilkanGambar() – Mengembalikan gambar yang dibuat oleh fungsi buatGambar().
  • simpanKePng() – Menyimpan file gambar sebagai format .png. Kamu dapat menentukan nama file dan lokasi untuk menyimpan gambar.
  • simpanKeJpg() – Menyimpan file gambar sebagai format .jpg. Kamu dapat menentukan nama file dan lokasi untuk menyimpan gambar.
<?php
/**
 * class TeksKeGambar
 * Class ini digunakan untuk mengconvert teks ke gambar
*/
class TeksKeGambar {
    private $img;

    //Membuat gambar dari teks
    function buatGambar($text, $ukuranFont = 20, $lebarGbr = 400, $tinggiGbr = 80){

        //path font
        $font = 'font/Tiempos_Text_Regular.otf';

        //membuat gambar
        $this->img = imagecreatetruecolor($lebarGbr, $tinggiGbr);

        //memberi warna
        $white = imagecolorallocate($this->img, 255, 255, 255);
        $grey = imagecolorallocate($this->img, 128, 128, 128);
        $black = imagecolorallocate($this->img, 0, 0, 0);
        imagefilledrectangle($this->img, 0, 0, $lebarGbr - 1, $tinggiGbr - 1, $white);

        //ganti baris
        $pisahTeks = explode ( "\\n" , $text );
        $baris = count($pisahTeks);

        foreach($pisahTeks as $txt){
            $textBox = imagettfbbox($ukuranFont,$angle,$font,$txt);
            $lebarTeks = abs(max($textBox[2], $textBox[4]));
            $tinggiTeks = abs(max($textBox[5], $textBox[7]));
            $x = (imagesx($this->img) - $lebarTeks)/2;
            $y = ((imagesy($this->img) + $tinggiTeks)/2)-($baris-2)*$tinggiTeks;
            $baris = $baris-1;

            //menambahkan bayangan untuk teks
            imagettftext($this->img, $ukuranFont, $angle, $x, $y, $grey, $font, $txt);

            //menambahkan teks
            imagettftext($this->img, $ukuranFont, $angle, $x, $y, $black, $font, $txt);
        }
  return true;
    }

    //Menampilkan gambar
    function tampilkanGambar(){
        header('Content-Type: image/png');
        return imagepng($this->img);
    }

    //Simpan gambar sebagai format png
    function simpanKePng($namaFile = 'text-image', $lokasi = ''){
        $namaFile = $namaFile.".png";
        $namaFile = !empty($lokasi)?$lokasi.$namaFile:$namaFile;
        return imagepng($this->img, $namaFile);
    }

    //Simpan gambar sebagai format jpg
    function simpanKeJpg($namaFile = 'text-image', $lokasi = ''){
        $namaFile = $namaFile.".jpg";
        $namaFile = !empty($lokasi)?$lokasi.$namaFile:$namaFile;
        return imagejpeg($this->img, $namaFile);
    }
}

Convert teks ke gambar di PHP

Menyertakan file TeksKeGambar.php (class TeksKeGambar) dan membuat objek. Memanggil fungsi tampilkanGambar() dan masukkan string teks. Kalo kamu ingin menambahkan baris baru, tambahkan “\n” sebelum baris baru.

//menyertakan class TeksKeGambar
require_once 'TeksKeGambar.php';

//membuat object img
$img = new TeksKeGambar;

//membuat gambar dari teks
$text = 'Codingan.\nTutorial pemograman web.';
$img->buatGambar($text);

Untuk menampilkan gambar gunakan fungsi tampilkanGambar().

//menampilkan gambar
$image = $img->tampilkanGambar();

Untuk menyimpan file gambar sebagai format PNG atau JPG, gunakan fungsi simpanKePng() atau simpanKeJpg(). Tentukan nama file dan lokasi untuk menyimpan gambar, jika tidak, gambar akan disimpan dengan nama default ke direktori yang sama di mana script berada.

//simpan gambar sebagai format png
$img->simpanKePng('hasil-convert','gambar/');

//simpan gambar sebagai format jpg
$img->simpanKeJpg('hasil-convert','gambar/');

Kesimpulan

Di clas TeksKeGambar saya menggunakan font Roboto Black untuk teksnya. Kamu bisa mengganti fontnya, dan tempatkan font di direktori font/ dan tentukan path font dalam fungsi buatGambar() di class TeksKeGambar. Kamu dapat mendownload Source code convert teks ke gambar di PHP dibawah ini.

Pecandu Aceh Gayo dan 182. Follow Instagram ↓↓↓
BAGIKAN

Leave a Reply

3 Komentar di "Cara convert teks ke gambar dengan PHP"

avatar
400
  Subscribe  
terbaru terlama vote teratas
Beritahu
ARif
Tamu

Kalau untuk html ke jpg gimana gan..?