Resize image tidak hanya menjadi tugas berbagai macam tool design grafis, tetapi hal ini juga bisa dilakukan dengan baik oleh bahasa pemrograman, termasuk PHP. Keberadaan ekstensi GD memungkinkan kita untuk modifikasi ukuran gambar dengan mudah sekali. Sering sekali dalam proses upload, kita akan mendapatkan ukuran gambar yang lumayan besar. Biasanya kita melakukan batasan ukuran file dalam proses upload ini.

Tapi bagaimana kalau kita akan menggunakan satu gambar untuk ukuran yang berbeda-beda? Misalnya akan membuat thumbnail dari gambar yang diupload. Tentu kita semestinya tetap hanya membuat satu form upload untuk mempermudah user dan membuat duplikasi gambar dengan ukuran berbeda. Dan di sinilah kita akan mempergunakan library GD.

 

Sekilas mengenai library GD

GD Graphics Library merupakan librari perangkat lunak untuk grafis oleh Thomas Boutell dan lainnya untuk memanipulasi gambar secara dinamis. Bahasa pemrograman asli yang digunakan adalah ANSI C, tetapi memiliki interface untuk banyak bahasa pemrograman lainnya. Librari ini dapat membuat GIF, JPEG, PNG, dan WBMP. Library GD dapat membuat gambar terdiri dari garis, busur, teks (menggunakan tipe font), serta beberapa warna. Versi 2.0 menambahkan dukungan untuk gambar true-color, alpha, resampling, dan banyak fitur lainnya.

 

Berikut ini adalah tutorial sederhana untuk kasus di atas

Buat file upload.html untuk membuat halaman upload :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<!DOCTYPE html>
<html>
    <head>
        <title>Tutorial Upload dan Resize Image</title>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    </head>
    <body>
        <form method="POST" action="upload_process.php" enctype="multipart/form-data">
            <input type="file" name="gambar" />
            <input type="submit" name="upload_image" value="Upload" />
        </form>
    </body>
</html>

 

Buat file upload_process.php untuk memproses image yang diupload :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
error_reporting(0);
$folder = "images/";
$upload_image = $_FILES['gambar']['name'];
// tentukan ukuran width yang diharapkan
$width_size = 480;
 
// tentukan di mana image akan ditempatkan setelah diupload
$filesave = $folder . $upload_image;
move_uploaded_file($_FILES['gambar']['tmp_name'], $filesave);
 
// menentukan nama image setelah dibuat
$resize_image = $folder . "resize_" . uniqid(rand()) . ".jpg";
 
// mendapatkan ukuran width dan height dari image
list( $width, $height ) = getimagesize($filesave);
 
// mendapatkan nilai pembagi supaya ukuran skala image yang dihasilkan sesuai dengan aslinya
$k = $width / $width_size;
 
// menentukan width yang baru
$newwidth = $width / $k;
 
// menentukan height yang baru
$newheight = $height / $k;
 
// fungsi untuk membuat image yang baru
$thumb = imagecreatetruecolor($newwidth, $newheight);
$source = imagecreatefromjpeg($filesave);
 
// men-resize image yang baru
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
 
// menyimpan image yang baru
imagejpeg($thumb, $resize_image);
 
imagedestroy($thumb);
imagedestroy($source);
 
echo 'Image Asli : <img src="' . $filesave . '" /><br />';
echo 'Image setelah di resize : <img src="' . $resize_image . '" />';

 

Cukup mudah bukan :)

 

#sumber: https://www.yudana.id/cara-mudah-upload-dan-resize-gambar-php/

Bingung tentang sourcecode atau pemrograman yang ingin dipelajari? TANYA DI SINI
Bingung cari modul, soal, pembahasan mata kuliah? CARI DI SINI