Menambahkan watermark di gambar dengan PHP

2
Menambahkan watermark di gambar dengan PHP

WaterMark itu ibarat label yang digunakan pada gambar atau hal kreatif lainnya oleh pemilik dan memberitahu bahwa dia adalah pemilik benda tertentu. WaterMark sangat berguna dalam era digital di mana sangat banyak penyebaran konten digital dimana saja dan siapa saja dapat menggunakan konten tersebut. Dalam tutorial ini kita akan menambahkan WaterMark di gambar menggunakan PHP. Kamu mungkin juga ingin menambahkan teks ke gambar dengan PHP.

Untuk menambahkan WaterMark di gambar hanya butuh dua langkah:

  • Membuat file HTML dan menentukan markup Upload Gambar
  • Membuat file PHP untuk menambahkan watermark ke gambar

Langkah 1: Membuat file HTML dan menentukan markup untuk halaman web

Silahkan buat file HTML dulu dan simpan dengan nama index.html. Halaman ini untuk mengupload gambar.

<!DOCTYPE html>
<html>
<body>

  <form method="post" action="proses.php" enctype="multipart/form-data">
  <input type="file" name="uploadgbr">
  <input type="submit" name="submit" value="Upload">
  </form>

</body>
</html>

Langkah 2: Membuat file PHP untuk menambahkan watermark ke gambar.

Buat file PHP nya dan simpan dengan nama proses.php.

<?php
// Mendapatkan input file dari form
if(isset($_POST['submit'])) {
  $errors     = array();
  $maxsize    = 1048576; //ukuran units dalam bits, berarti 1 megabytes
  $acceptable = array( //hanya file jpeg dan jpg yang diperbolehkan
    'image/jpeg',
    'image/jpg'
  );

  // Memeriksa ekstensi file
  if((!in_array($_FILES['uploadgbr']['type'], $acceptable)) && (!empty($_FILES["uploadgbr"]["type"]))) {
    $errors[] = 'Tipe file tidak valid. Hanya tipe file jpg dan jpeg yang diperbolehkan.';
  }

  // Memeriksa ukuran file
  if(($_FILES['uploadgbr']['size'] >= $maxsize) || ($_FILES["uploadgbr"]["size"] == 0)) {
    $errors[] = 'File terlalu besar. File harus kurang dari 2 megabyte.';
  }

  if(count($errors) === 0) {
    // Membersohkan nama file dari karakter spesial dan spasi
    $namafile = $_FILES['uploadgbr']['name'];
    $namafile = str_replace(' ', '_', $namafile);
    $namafile = preg_replace('/[^a-zA-Z0-9\'\w.-]/', '-', $namafile);

    // Berikan path folder Lengkap di mana kamu ingin menyimpan gambar
    $folder="upload/";
    move_uploaded_file($_FILES["uploadgbr"]["tmp_name"], "$folder".$namafile);
    $file=$folder.$namafile;

    $uploadgambar=$folder.$namafile;
    $namabaru=$namafile;

    // Menetapkan nama thumbnail
    $thumbnail = $folder."wtm_".$namabaru;
    $actual = $folder.$namabaru;
    $namagbr="wtm_".$namabaru;

    // Memuat gambar utama
    $source = imagecreatefromjpeg($uploadgambar);

    // Memuat gambar watermark
    $watermark = imagecreatefrompng('watermark.png');

    // mendapatkan lebar dan tinggi dari gambar watermark
    $water_width = imagesx($watermark);
    $water_height = imagesy($watermark);

    // mendapatkan lebar dan tinggi dari gambar utama
    $main_width = imagesx($source);
    $main_height = imagesy($source);

    // Menetapkan posisi gambar watermark
    $dime_x = 8;
    $dime_y = 8;

    // menyalin kedua gambar
    imagecopy($source, $watermark, $dime_x, $dime_y, 0, 0, $water_width, $water_height);

    // pemrosesan akhir, Membuat gambar baru dengan nama file baru
    imagejpeg($source, $thumbnail, 100);
  } else {
      foreach($errors as $error) {
        echo '<script>alert("'.$error.'");</script>';
      }
      die();
  }
}
?>

<img src='upload/<?php echo $namagbr;?>'>

Dalam langkah ini saya menggunakan library PHP GD untuk menambahkan watermark ke gambar. Pertama, upload gambar ke folder upload. Dan setelah itu memuat kedua gambar, salah satu gambar tersebut didapatkan dari form upload (index.html) dan gambar lainnya adalah gambar watermark. Kamu bisa menggunakan gambar manapun untuk watermark dari format apapun. Saya menggunakan PNG, dan setelah itu mendapatkan dimensi dari kedua gambar untuk menciptakan satu gambar yang memiliki watermark di dalamnya.

Kemudian kita mengatur dimensi untuk menempatkan watermark pada area tertentu, saya memberi nilai 8 untuk X-axis dan Y-axis untuk menempatkan watermark di pojok kiri-atas gambar. Kamu bisa mengatur koordinat sesuai kebutuhanmu. Dan kemudian kita menggunakan fungsi imagecopy() untuk menyalin kedua gambar dan untuk membuat satu gambar lagi maka kita gunakan fungsi imagejpeg() untuk membuat gambar lain dari hasil pemrosesan tersebut. Kita menggunakan fungsi imagejpeg() agar gambar hasil pemrosesan tersebut menjadi dalam format JPEG.

Itu saja gan, ini adalah cara menambahkan WaterMark di gambar menggunakan PHP. Kamu bisa mengembangkan kode ini lebih lanjut sesuai kebutuhanmu. Kalau ada kesulitan silahkan berkomentar.

BAGIKAN
Subscribe
Beritahu
guest

2 Comments
terlama
terbaru vote teratas
Inline Feedbacks
View all comments
brabusday
Oktober 26, 2017 09:33

terimakasih banyak atas pelajarnnya ini berarti banyak anda menanamkan ilmu dengan sepenuhnya
salam

ctrl
ctrl
April 13, 2019 00:09

mengatur ukuran watermark nya gimana om