Cara Kompres Gambar Sebelum Upload di PHP

Ukuran gambar yang besar akan memakan waktu yang lama pada saat mengupload di halaman web. Selain itu juga akan memakan memory penyimpanan pada web server kita. Oleh karena itu gambar yang akan diupload perlu untuk di kopres atau dikenal dengan istilah image compression. Image compression sangat menolong untuk mengurangi ukuran dari gambar yang kita ingin upload.

Umumnya, pengguna suatu sistem tidak melakukan kompresi image terlebih dahulu pada saat melakukan upload. Nah, dalam kasus seperti ini tentu kita perlu menambahkan kompresi image secara otomatis melalui kode PHP.

Compress Image sebelum upload dapat dilakukan dan diterapkan dengan mudah menggunakan bahasa pemrograman PHP. Manfaatnya adalah sebelum terupload ke server, gambar akan dikecilkan terlebih dahulu ukurannya. Kompresi gambar yang dilakukan dapat menolong untuk penggunaan server yang efisien baik dari segi waktu atau media penyimpanan. Sehingga akses website pun menjadi lebih cepat.

Dalam tutorial kali ini saya akan menampilkan bagaimana kode PHP untuk mengkompresi gambar sebelum diupload. Jadi prosesnya adalah ketika user memilih gambar dan menekan tombol upload maka kode PHP akan memproses gambar yang diupload tersebut untuk dikompres / dikecilkan terlebih dahulu.

Daftar Isi
1. Membuat Form File Upload
2. Membuat Folder Upload
3. Membuat File Aksi Upload

Download Source Code

Berikut adalah tatacara beserta pembahasannya :

1. Membuat Form File Upload

Buatlah file bernama index.php yang berisi kode form berikut :

<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>

Penjelasan kode :
action=”upload.php” adalah untuk aksi menuju file upload.php
enctype=”multipart/form-data” adalah untuk tipe form yang memiliki tipe “file”

2. Membuat folder upload

Tahap kedua adalah membuat folder bernama upload untuk menyimpan file dilokasi yang sama dengan file index.php

3. Buatlah File Aksi Upload

Cara terakhir adalah membuat file aksi bernaama upload.php dengan kode beserta penjelasan berikut :

<?php 
// Fungsi untuk kompres gamber sebelum upload
function compressImage($source, $destination, $quality) { 
    // mendapatkan info image
    $imgInfo = getimagesize($source); 
    $mime = $imgInfo['mime'];  
    // membuat image baru
    switch($mime){ 
    // proses kode memilih tipe tipe image 
        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); 
    } 
     
    // Menyimpan image dengan ukuran yang baru
    imagejpeg($image, $destination, $quality); 
     
    // Return image
    return $destination; 
} 
 
 
// ini adalah path folder upload yang sudah kita buat
$uploadPath = "upload/"; 
 
// jika form upload file sudah di submit :
$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); 
         
        // Tipe format yang diperbolehkan 
        $allowTypes = array('jpg','png','jpeg','gif'); 
        if(in_array($fileType, $allowTypes)){ 
            // Image temp source 
            $imageTemp = $_FILES["image"]["tmp_name"]; 
             
            // Ukuran Kompresi 75 (bisa diganti dengan yang lain)
            $compressedImage = compressImage($imageTemp, $imageUploadPath, 75); 
             
            if($compressedImage){ 
                $status = 'success'; 
                $statusMsg = "Gambar Sukses Dikompresi"; 
            }else{ 
                $statusMsg = "Gambar Gagal Dikompresi!"; 
            } 
        }else{ 
            $statusMsg = 'Maaf, hanya JPG, JPEG, PNG, & GIF yang diperbolehkan.'; 
        } 
    }else{ 
        $statusMsg = 'Mohon pilih file untuk di upload'; 
    } 
} 
 
// Menampilkan pesan status
echo $statusMsg; 
 
?>

Demikianlah tutorial kali ini, Semoga bermanfaat untuk Anda. Terimakasih

Bagi Anda yang ingin memesan sistem informais silahkan menghubungi kontak admin sistemit.com berikut ini :

Related posts

Leave a Comment