Share

Menyambung tutorial sebelumnya yaitu, upload dan resize gambar dengan PHP. Masih menggunakan library GD di PHP, saya akan menulis tutorial untuk menyisipkan text di dalam gambar dengan PHP.

Anda tentu pernah melihat gambar / foto yang di bagian bawahnya ada text tertentu misalnya tanggal, copyright, dan lain lain. Mungkin Anda bertanya, apakah setiap foto / gambar tersebut memang sengaja ditambahkan text atau diedit terlebih dahulu sebelum diupload. Akan sangat merepotkan sekali jika hal tersebut dilakukan, apalagi kalau situs kita memiliki banyak foto / gambar.

Dengan library GD di PHP, kita bisa menambahkan text dengan otomatis pada gambar. Sehingga akan menghemat waktu kita untuk tidak mengedit foto / gambar terlebih dahulu. Kita bisa menentukan jenis font yang akan digunakan, ukuran text, warna text dan letak text dalam gambar. PHP membuat proses ini menjadi lebih mudah, contoh script sederhananya seperti di bawah :

error_reporting(0);

function setPosition($jpg_image, $size, $color, $font, $text, $pos) {
    // load gambar
    $image = imagecreatefromjpeg('foto.jpg');
    // mendapatkan ukuran text yang akan dibuat
    $box = @imageTTFBbox($size, 0, $font, $text);
    // mendapatkan panjang
    $width = abs($box[4] - $box[0]);
    // mendapatkan tinggi
    $height = abs($box[5] - $box[1]);
    // panjang gambar
    $x = imagesx($image);
    // tinggi gambar
    $y = imagesy($image);
    switch ($pos) {
        case "center" :
            // posisi text di tengah gambar
            $newx = ($x - $width) / 2;
            $newy = ($y - $height) / 2;
            break;
        case "bottom-right" :
            // posisi text di kanan bawah
            $newx = ($x - $width);
            $newy = ($y - $height);
            break;
        case "top-left" :
            // posisi text di kiri atas
            $newx = 0;
            $newy = $height;
            break;
    }
    switch ($color) {
        case "red" :
            // warna text merah
            $newcolor = imagecolorallocate($image, 249, 0, 0);
            break;
        case "white" :
            // warna text putih
            $newcolor = imagecolorallocate($image, 255, 255, 255);
            break;
        case "black" :
            // warna text hitam
            $newcolor = imagecolorallocate($image, 0, 0, 0);
            break;
        case "blue" :
            // warna text biru
            $newcolor = imagecolorallocate($image, 0, 97, 255);
            break;
    }
    // print gambar
    return imagettftext($jpg_image, $size, 0, $newx, $newy, $newcolor, $font, $text);
}

header('Content-type: image/jpeg');

// load gambar
$jpg_image = imagecreatefromjpeg('foto.jpg');

// Set tipe font, ukuran, posisi dan warna
$font = 'Roboto-Regular.ttf';
$size = 25;
$pos = 'center';
$color = 'blue';

// tentukan text yang akan ditambakan
$text = 'copyright ' . date('Y') . ' www.yudana.id';

// print text d dalam gambar
setPosition($jpg_image, $size, $color, $font, $text, $pos);

// kirim gambar ke browser
imagejpeg($jpg_image);

// Hapus di memori
imagedestroy($jpg_image);

Selain .jpg, PHP juga bisa digunakan untuk memanipulasi gambar dengan tipe .png, .gif, .wbmp. Tentunya Anda bisa mencobanya juga dengan script di atas.

Semoga bermanfaat 😉