Resize Ukuran Gambar Untuk Menghemat Disk Space

Dec 4, 2022 by Ellyx Christian Level: Menengah Komentar Print

Jika anda menggunakan ukuran asli saat menyimpan gambar yang diupload oleh pengguna maka anda akan cepat kehabisan disk space di hosting Anda. Salah satu cara untuk menanggulangi itu adalah dengan mengubah atau resize ukuran gambar menjadi lebih kecil. Gambar yang lebih kecil juga lebih cepat ditransfer atau dikirim ke browser dan membuat website lebih cepat.

Berikut adalah langkah untuk meresize ukuran gambar dengan PHP.

Video Tutorial Resize Gambar Dengan PHP

Video Tutorial Resize Gambar Dengan PHP

Siapkan Gambar and Cari Tipe Gambar

Misal nama file gambar adalah example.jpg, gunakan fungsi getimagesize untuk mencari tipe gambar, tinggi dan lebar seperti contoh di bawah.

$file = "image/example.jpg";
list ($width, $height, $type) = getimagesize($file);

Buat Gambar Baru Sesuai Tipe Gambar

Kemudian setelah tahu tipe gambar buat gambar baru dengan tipe gambar yang sesuai. Gunakan imagecreatefromjpeg untuk gambar jpeg, gunakan fungsi imagecreatefrompng untuk gambar png, seperti di bawah.

switch ($type) {
    case IMAGETYPE_JPEG:
        $sourceImg = imagecreatefromjpeg($file);
        break;
    case IMAGETYPE_PNG:
        $sourceImg = imagecreatefrompng($file);
        break;
    default:
        throw new Exception('Invalid image type');
}

Buat Gambar dengan Ukuran Baru

Selanjutnya buat gambar baru dengan ukuran baru yang lebih kecil, dan gunakan fungsi imagecopyresized untuk copy gambar awal ke gambar baru dengan ukuran baru seperti contoh di bawah.

$newWidth = floor($width * 0.1);
$newHeight = floor($height * 0.1);
$image = imagecreatetruecolor($newWidth,$newHeight);
imagecopyresized($image, $sourceImg,
    0, 0, 0, 0,
    $newWidth, $newHeight, $width, $height);

Parameter 1 adalah gambar tujuan, parameter kedua gambar asli. Kemudian parameter 3 sampai 6 adalah koordinat masing masing gambar, isi dengan nol semua untuk mengambil keseluruhan gambar. Parameter 7 - 8 adalah lebar dan tinggi gambar yang baru. Parameter 9 - 10 adalah ukuran gambar asli.

Simpan Gambar Yang Diresize

Sekarang kita siap untuk menyimpan gambar dengan ukuran yang lebih kecil. Gunakan fungsi imagepng untuk menyimpan gambar. Kalau digabungkan semua kode dari langkah pertama akan seperti di bawah.

<?php
$file = "image/example.jpg";

list ($width, $height, $type) = getimagesize($file);

switch ($type) {
    case IMAGETYPE_JPEG:
        $sourceImg = imagecreatefromjpeg($file);
        break;
    case IMAGETYPE_PNG:
        $sourceImg = imagecreatefrompng($file);
        break;
    default:
        throw new Exception('Invalid image type');
}

$newWidth = floor($width * 0.1);
$newHeight = floor($height * 0.1);
$image = imagecreatetruecolor($newWidth,$newHeight);
imagecopyresized($image, $sourceImg,
    0, 0, 0, 0,
    $newWidth, $newHeight, $width, $height);

imagepng($image, "image/example-small.png");

Silahkan login atau register sebelum meninggalkan komentar.