Kompres Gambar, Ubah Size Gambar dengan PHP

Kompres Gambar, Ubah Size Gambar dengan PHP - Hallo semuanya, pada pembuatan sebuah website, gambar menjadi salah satu pokok inti yang bisa menjadi kekuatan utama dari website tersebut, namun yang dinamakan gambar tetaplah gambar, sebuah file yang memiliki ukuran, warna dan resolusi, semakin besar ukuran dan resolusi serta semakin beragam warna yang digunakan maka semakin besar ukuran byte dari gambar tersebut. Untuk normalnya, ukuran gambar dalam sebuah website yang ditampilkan secara langsung tidak lebih dari 1000px, oleh karena itu dalam kasus ini, bagian backend bisa menyesuaikan dengan memanipulasi gambar yang diupload oleh penulis bisa dicompress atau diperkecil dari ukuran aslinya.

Mengkompres atau mengoptimalkan gambar untuk website bisa dilakukan melalui fungsi php dengan cukup mudah, berikut adalah cara kompres gambar dengan php.

Form Upload File

Pada form upload file kita memerlukan 2 hal penting

  • method='post'
  • enctype="multipart/form-data"

<form action="upload.php" method="post" enctype="multipart/form-data">
    <label>Select Image File:</label>
    <input type="file" name="image">
    <input type="submit" name="submit" value="Upload">
</form>

Setelah melakukan submit, maka data akan diproses pada file upload.php.

 

Kompres dan Upload Gambar dengan PHP

Selanjutnya kita buat sebuah file bernama upload.php untuk melakukan kompresi gambar dan menguploadnya.

Pada proses kompresi ini kita menggunakan fungsi compressImage() pada php.

Berikut adalah kode yang kalian butuhkan

<?php
 
function compressImage($source, $destination, $quality) {
    // Mendapatkan info gambar
    $imgInfo = getimagesize($source);
    $mime = $imgInfo['mime'];
     
    // Membuat gambar baru dari file yang diupload
    switch($mime){
        case 'image/jpeg':
            $image = imagecreatefromjpeg($source);
            break;
        case 'image/png':
            $image = imagecreatefrompng($source);
            break;
        case 'image/gif':
            $image = imagecreatefromgif($source);
            break;
        default:
            $image = imagecreatefromjpeg($source);
    }
     
    // simpan gambar
    imagejpeg($image, $destination, $quality);
     
    // Return gambar yang dikompres
    return $destination;
}
 
 
// Lokasi path untuk upload
$uploadPath = "uploads/";
 
// ketika melakukan submit file
$status = $statusMsg = '';
if(isset($_POST["submit"])){
    $status = 'error';
    if(!empty($_FILES["image"]["name"])) {
        // File info
        $fileName = basename($_FILES["image"]["name"]);
        $imageUploadPath = $uploadPath . $fileName;
        $fileType = pathinfo($imageUploadPath, PATHINFO_EXTENSION);
         
        // Syarat format yang diperbolehkan
        $allowTypes = array('jpg','png','jpeg','gif');
        if(in_array($fileType, $allowTypes)){
            // array gambar sementara
            $imageTemp = $_FILES["image"]["tmp_name"];
             
            // Kompres dan upload data
            $compressedImage = compressImage($imageTemp, $imageUploadPath, 75);
             
            if($compressedImage){
                $status = 'success';
                $statusMsg = "Gambar Berhasil dikompres.";
            }else{
                $statusMsg = "Kompres gambar gagal!";
            }
        }else{
            $statusMsg = 'Maaf, hanya JPG, JPEG, PNG, & GIF yang diperbolehkan.';
        }
    }else{
        $statusMsg = 'Pilih gambar untuk diupload.';
    }
}
 
// Mencetak pesan status
echo $statusMsg;
 
?>

 

Baiklah teman-teman, pada fungsi diatas kita menggunakan fungsi compressImage() pada php, dan melakukan kompresi sebesar 75% dari kualitas asli saat gambar diupload. demikian artikel kali ini yang membahas tentang kompres dan upload gambar dengan php. semoga bermanfaat

21 Februari 2020

Webinar Gratis 2024


Selanjutnya Pada Bulan Maret 2024

Sabtu, 09 Maret 2024


10 Bahasa Rekomendasi Untuk Dipelajari di 2024

Python Developer, Data Science, Web Application

Kursus Python Django Web Application 2024 di DUMET School Mini Bootcamp Backend Laravel 11 Bulan Mei 2024 di DUMET School
Webinar Selanjutnya Mei 2024

Minggu, 26 Mei 2024, 09.00-13.00 WIB

(4 Jam Membuat Backend di Laravel 11)

chat