Baca Juga :  Apa, Mengapa, dan Cara Menciptakan Plugin Spesifik Website Wordpress

Script Image Resize PHP

0 713

Saat menampilkan gambar untuk situs web kami, penting untuk memastikannya dapat diatur dalam batas tata letak kami. Jika tidak, kita perlu mengubah ukuran gambar ini, sesuai dengan itu. Di PHP, mengubah ukuran gambar, bisa dicapai dengan menggunakan seperangkat fungsi PHP untuk membuat gambar baru dari awal, dengan dimensi yang diberikan, di mana gambar asli diperkirakan akan diubah ukurannya.

Jadi, kombinasi fungsi tersebut digunakan untuk mendapatkan langkah-langkah berikut, yang akan menghasilkan resize gambar yang berhasil melalui pemrograman PHP.

  • Dapatkan id sumber gambar untuk gambar sumber.
  • Dapatkan resource id untuk layer gambar target.
  • Mengubah ukuran dan pemasangan kembali.
  • Simpan gambar ukuran ke lokasi target yang ditentukan.

Mendapatkan Image Resource Id untuk Source Image

Untuk bekerja pada file gambar yang diberikan untuk diubah ukurannya, kita perlu mendapatkan referensi sumber daya untuk referensi, seperti yang telah kita lakukan saat bekerja dengan file setelah mendapatkan sumber daya file, atau suka, mendapatkan pegangan direktori untuk melakukan fungsi direktori PHP.

Di PHP, ada berbagai fungsi untuk mendapatkan sumber gambar id. Fungsi ini digunakan secara tepat berdasarkan jenis gambar yang diberikan untuk mengubah ukuran. Misalnya, imagecreatefromjpeg (), imagecreatefromgif (), imagecreatefrompng (), digunakan untuk mendapatkan pengenal sumber daya untuk gambar JPEG, GIF dan PNG.

Pada langkah ini, pertama, kita perlu mendapatkan tipe gambar dengan menggunakan fungsi getimagesize (), yang digunakan untuk mendapatkan seluruh daftar properti gambar, termasuk lebar, tinggi dan lain sebagainya. Setelah itu, kita bisa menerapkan fungsi yang sesuai untuk mendapatkan. id sumber daya Semua fungsi PHP ini digunakan untuk mendapatkan properti gambar dan untuk mendapatkan data sumber file gambar mengharapkan nama atau path dari file gambar. Sebagai contoh,

$file = "christmas.jpg"; 
$source_properties = getimagesize($file);
$image_type = $source_properties[2]; 
if( $image_type == IMAGETYPE_JPEG ) {   
$image_resource_id = imagecreatefromjpeg($file);  
}
elseif( $image_type == IMAGETYPE_GIF )  {  
$image_resource_id = imagecreatefromgif($file);  }
elseif( $image_type == IMAGETYPE_PNG ) {
$image_resource_id = imagecreatefrompng($file); }

Konstanta yang digunakan dalam pernyataan kondisional telah ditentukan dengan nilai integer yang sesuai menunjukkan tipe gambar. Misalnya, IMAGETYPE_JPEG didefinisikan dengan nilai 2 yang digunakan untuk menunjukkan gambar JPEG.

Dapatkan Resource Id untuk Target Image Layer

Setelah mendapatkan source referensi id dari source image file, kita perlu membuat image baru sebagai layer target. Gambar ini akan dibuat dengan dimensi pada gambar asli yang akan diubah ukurannya.

Fungsi built-in PHP, dinamakan sebagai, imagecreatetruecolor () digunakan untuk tujuan ini, dengan menerima dimensi yang dibutuhkan, yaitu lebar dan tinggi gambar target. Sebagai contoh,

$target_width =350;
$target_height =350;
$target_layer=imagecreatetruecolor($target_width,$target_height);

fungsi imagecreatetruecolor () akan membuat gambar kosong. Selain itu, ia akan mengembalikan pengenal data sumber daya sebagai referensi pada gambar yang baru dibuat dengan parameter lebar dan tinggi yang ditentukan. Referensi ini akan digunakan dalam langkah-langkah berikutnya, untuk menyebutkan target, di atas gambar resized yang akan dirakit.

Mengubah ukuran dan membangun kembali

Untuk langkah ini, kita harus memberikan daftar rincian tentang sumber dan gambar target, yang digunakan dalam proses pengubahan ukuran gambar. Ini adalah,

  • Sumber sumber dan sumber target id
  • Dimensi untuk menunjukkan lebar dan tinggi gambar asli dan lapisan gambar target.

Dengan menggunakan rincian ini, bagian yang diperlukan dari gambar asli akan disalin dan dipasang kembali ke lapisan target. Untuk itu, fungsi PHP dinamakan sebagai, imagecopyresampled () untuk proses resizing dan reassembling tersebut. Sebagai contoh,

imagecopyresampled($target_layer,$image_resource_id,0,0,0,0,$target_width,$target_height, $source_properties[0],$source_properties[1]);

Dalam contoh kode ini, ditunjukkan di atas, beberapa argumen dari fungsi ini dilewatkan dengan nilai 0. Argumen ini, sebenarnya, mewakili koordinat x, y dari target dan citra sumber.

Argumen ini akan berisi nilai untuk memotong beberapa bagian gambar sumber. Jika tidak, tidak perlu disebutkan x, y poin, artinya, keseluruhan gambar akan dipotong untuk mempertahankan tampilannya seperti kecuali dimensi-dimensinya.

Catatan: Ada fungsi PHP yang setara dengan imagecopyresized () seperti layaknya imagecopyresampled (), sedangkan fungsi imagecopyresampled () menciptakan ukuran gambar dengan kualitas lebih tinggi, komparatif.

Baca Juga :  Style Bottom Border CSS

Simpan Resize Image ke Lokasi Sasaran

Akhirnya, saatnya menyimpan gambar ukurannya ke lokasi target. Untuk itu, kita perlu menentukan rincian berikut.

  • Resource id dari layer gambar resize.
  • Targetkan nama atau lokasi gambar.

Sekarang, kita bisa menggunakan contoh kode yang ditunjukkan di bawah ini untuk menyimpan lapisan gambar yang telah diubah ukurannya.

imagejpeg($target_layer,"christmas_thump.jpg");

Contoh kode yang ditunjukkan pada setiap langkah hanya berlaku untuk gambar JPEG. Kita bisa meniru yang sama untuk jenis gambar lainnya dengan menggunakan fungsi PHP yang sesuai.

Contoh: PHP Image Resize

Contoh ini menunjukkan bagaimana mengubah ukuran semua jenis file gambar yang diunggah dari bentuk HTML. Jadi, script PHP yang ditunjukkan di bawah ini menangani file gambar yang diunggah yang akan diubah ukurannya.

<?php
if(isset($_POST["submit"])) {
if(is_array($_FILES)) {
$file = $_FILES['myImage']['tmp_name']; 
$source_properties = getimagesize($file);
$image_type = $source_properties[2]; 
if( $image_type == IMAGETYPE_JPEG ) {   
$image_resource_id = imagecreatefromjpeg($file);  
$target_layer = fn_resize($image_resource_id,$source_properties[0],$source_properties[1]);
imagejpeg($target_layer,$_FILES['myImage']['name'] . "_thump.jpg");
}
elseif( $image_type == IMAGETYPE_GIF )  {  
$image_resource_id = imagecreatefromgif($file);
$target_layer = fn_resize($image_resource_id,$source_properties[0],$source_properties[1]);
imagegif($target_layer,$_FILES['myImage']['name'] . "_thump.gif");
}
elseif( $image_type == IMAGETYPE_PNG ) {
$image_resource_id = imagecreatefrompng($file); 
$target_layer = fn_resize($image_resource_id,$source_properties[0],$source_properties[1]);
imagepng($target_layer,$_FILES['myImage']['name'] . "_thump.png");
}
}
}
function fn_resize($image_resource_id,$width,$height) {
$target_width =200;
$target_height =200;
$target_layer=imagecreatetruecolor($target_width,$target_height);
imagecopyresampled($target_layer,$image_resource_id,0,0,0,0,$target_width,$target_height, $width,$height);
return $target_layer;
}
?>

Dan kode HTML yang menyertakan form container untuk upload file gambar tersebut,

<form name="frmImageResize" action="" method="post" enctype="multipart/form-data">
<input type="file" name="myImage" /> 
<input type="submit" name="submit" value="Submit" />
</form>

Get real time updates directly on you device, subscribe now.

Leave A Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.