Selamat datang di blog Mari belajar coding. Tutorial kali ini kita akan belajar bagaimana cara mengupload gambar kemudian mengurangi(reduce) ukuran file gambar tersebut. Dengan mengurangi ukuran file gambar yang di upload, kita dapat menghemat kapasitas disk space atau web hosting.
Pertama-tama buat form untuk upload gambar seperti dibawah ini.
<form method="POST" enctype='multipart/form-data'>
<input type="file" name="filename">
<br>
<input type="submit" name="submit" value="Submit">
</form>
Buat fungsi compress image, fungsi ini akan me resize ukuran file gambar berdasarkan quality yang telah di tentukan.
function compress($source, $destination, $quality) {
$info = getimagesize($source);
if ($info['mime'] == 'image/jpeg')
$image = imagecreatefromjpeg($source);
elseif ($info['mime'] == 'image/gif')
$image = imagecreatefromgif($source);
elseif ($info['mime'] == 'image/png')
$image = imagecreatefrompng($source);
imagejpeg($image, $destination, $quality);
return $destination;
}
terakhir buat fungsi aksi upload gambar.
if (isset($_POST['submit'])) {
//create folder upload
$tempdir = "upload/";
if (!file_exists($tempdir))
mkdir($tempdir,0755);
//target file
$target_path = $tempdir . basename($_FILES['filename']['name']);
$source_img = $_FILES['filename']['tmp_name'];
$destination_img = $target_path;
//panggil fungsi compress,
compress($source_img, $destination_img, 65);
}
Keterangan:
mkdir merupakan fungsi php untuk create folder, disini kita akan membuat folder bernama upload untuk menyimpan file gambar.
$target_path merupakan file hasil compress yang akan di simpan di folder upload.
Untuk menentukan qualitas gambar saat di rezise, teman-teman bisa mengubah nilai 65 pada baris yang di beri highlight diatas. Jika memberikan nilai terlalu rendah, maka gambar hasil resize akan pecah-pecah.
Baca juga Upload Gambar dengan AJAX PHP dan MySQL
Kode lengkap seperti dibawah ini.
mkdir merupakan fungsi php untuk create folder, disini kita akan membuat folder bernama upload untuk menyimpan file gambar.
$target_path merupakan file hasil compress yang akan di simpan di folder upload.
Untuk menentukan qualitas gambar saat di rezise, teman-teman bisa mengubah nilai 65 pada baris yang di beri highlight diatas. Jika memberikan nilai terlalu rendah, maka gambar hasil resize akan pecah-pecah.
Baca juga Upload Gambar dengan AJAX PHP dan MySQL
Kode lengkap seperti dibawah ini.
<!DOCTYPE html>
<html>
<head>
<title>Upload dan Resize File Gambar dengan PHP - maribelajarcoding.com</title>
</head>
<body>
<form method="POST" enctype='multipart/form-data'>
<input type="file" name="filename"><br>
<input type="submit" name="submit" value="Submit">
</form>
<?php
function compress($source, $destination, $quality)
{
$info = getimagesize($source);
if ($info['mime'] == 'image/jpeg') $image = imagecreatefromjpeg($source);
elseif ($info['mime'] == 'image/gif') $image = imagecreatefromgif($source);
elseif ($info['mime'] == 'image/png') $image = imagecreatefrompng($source);
imagejpeg($image, $destination, $quality);
return $destination;
}
if (isset($_POST['submit']))
{
//create folder upload
$tempdir = "upload/";
if (!file_exists($tempdir)) mkdir($tempdir, 0755);
//target file
$target_path = $tempdir . basename($_FILES['filename']['name']);
$source_img = $_FILES['filename']['tmp_name'];
$destination_img = $target_path;
//panggil fungsi compress,
compress($source_img, $destination_img, 65);
}
?>
</body>
</html>