
Membatasi lebar dan tinggi dari suatu image/gambar sangat diperlukan dalam satu kasus tertentu, agar layout web yg kita buat jadi tidak rusak. Ada banyak cara untuk membatas lebar dan tinggi dari suatu image, tapi tetap terlihat rapih. Salah satunya adalah dengan memotong (crop) image tersebut. Namun kebutuhan web yg dinamis membuat kita susah mengatur agar pengguna dari website tidak memasukan image yg lebar dan tingginya sesuai.
Anda bisa bayangkan jika hanya layout awal dari website mungkin Anda bisa memotong sendiri gambar tersebut menggunakan Photoshop atau tools lainnya. Akan tetapi jika website tersebut sudah aktif di publish dan website yg Anda publish adalah dinamis. Banyak kemungkinan pengguna umum website yg berpartisipasi mengisi konten website Anda memasukan image yg lebar dan tingginya tidak sesuai dan akan merusak layout web Anda.
Oleh karena itu kali ini saya akan menjelaskan cara untuk memotong gambar secara otomatis melalui sedikit kode CSS. Jadi jika pengguna website Anda memasukan gambar yg tidak sesuai ukuran maka secara otomatis gambar tersebut akan di crop.
Triknya sangat mudah, ini bisa kita umpamakan seperti Anda memasukan foto ke dalam bingkai fotonya. Dimana bingkai fotonya sudah dibatasi lebar dan tingginya, jadi ketika foto yg lebih besar dari bingkai dimasukan ke bingkainya maka hanya tampilan foto sebatas lebar dan tinggi bingkailah yg akan tampil. Untuk menampilkan bagian/posisi foto yg diinginkan kita cukup menggeser letak foto di dalam bingkai tersebut.
Source Code Penjelasan
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Crop Image</title>
<style>
#frame-image {
/*
CSS Untuk croping image
Disini Anda dapat menentukan lebar dan tinggi image
*/
width: 160px;
height: 160px;
overflow: hidden;
/*
CSS Untuk mengatur posisi image
Menjadikan frame sebagai patokan koordinat left/top
*/
position: relative;
}
#frame-image img {
/*
CSS Untuk croping image
Membatasi tinggi image, membiarkan width-nya auto
Bisa juga diganti jadi height: 320px kalau tinggi image mau dipaksa jadi 320px
*/
max-height: 320px;
/*
CSS Untuk mengatur posisi image
Left/top berpatokan pada frame
Diisi dengan nilai minus untuk memposisikan keluar dari frame
karena frame overflow-nya dibuat jadi hidden
posisi yg keluar area frame jadi tidak terlihat
Disini Anda dapat mengatur bagian/posisi gambar yg mana yg akan ditampilkan
*/
position: absolute;
left: -10px;
top: -86px;
}
</style>
</head>
<body>
<h1>Gambar Hasil Crop;</h1>
<div id="frame-image">
<img src="http://qaiserlab.com/wp-content/uploads/2016/07/html-css-js.png">
</div>
<h1>Gambar Asli;</h1>
<img src="http://qaiserlab.com/wp-content/uploads/2016/07/html-css-js.png">
</body>
</html>