Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk mencipta imej kecil daripada imej yang dimuat naik sambil mengekalkan nisbah aspek?

Bagaimana untuk mencipta imej kecil daripada imej yang dimuat naik sambil mengekalkan nisbah aspek?

Susan Sarandon
Susan Sarandonasal
2024-11-07 02:55:03945semak imbas

How to Create Thumbnails from Uploaded Images While Preserving Aspect Ratio?

Membuat Imej Kecil daripada Imej Yang Dimuat Naik untuk Pemeliharaan Nisbah Aspek

Pengenalan:

Apabila pengguna memuat naik imej ke tapak web anda, ia selalunya wajar untuk mencipta lakaran kecil untuk memaparkan versi imej yang lebih kecil tanpa menjejaskan nisbah bidangnya. Berikut ialah panduan komprehensif tentang cara membuat lakaran kecil sambil mengekalkan imej asal.

Cabaran:

Matlamat anda ialah untuk mencipta dua versi imej yang dimuat naik: yang asal imej dan lakaran kecil. Imej asal hendaklah disimpan ke pelayan anda dan lakaran kenit hendaklah versi yang lebih kecil daripada imej asal yang mengekalkan nisbah bidangnya.

Pelaksanaan:

1. Dapatkan Data Imej:

Dalam PHP, anda boleh mendapatkan semula data imej yang dimuat naik menggunakan pembolehubah global $_FILES. Gunakan fungsi file_get_contents() untuk membaca data imej ke dalam rentetan.

2. Tentukan Dimensi Imej:

Dapatkan dimensi imej menggunakan fungsi getimagesize(). Ini akan mengembalikan tatasusunan yang mengandungi lebar, ketinggian dan maklumat lain tentang imej.

3. Cipta Lakaran Kecil:

Gunakan pustaka pemprosesan imej seperti Imagick untuk mencipta lakaran kecil. Imagick menyediakan pelbagai kaedah untuk manipulasi imej, termasuk mengubah saiz dan memotong. Pastikan apabila mengubah saiz, anda mengekalkan nisbah bidang untuk mengelakkan regangan atau menyelit imej.

4. Simpan Imej:

Simpan kedua-dua imej asal dan lakaran kenit ke pelayan anda menggunakan fungsi file_put_contents(). Pastikan anda menggunakan nama fail unik untuk lakaran kenit, seperti menambah awalan atau akhiran untuk mengelak daripada menimpa imej asal.

5. Ubah Saiz Imej (Pilihan Tambahan):

Jika Imagick tidak tersedia pada pelayan anda, anda boleh menggunakan perpustakaan GD. Berikut ialah contoh fungsi yang menggunakan GD untuk mencipta lakaran kecil:

function makeThumbnails($updir, $img, $id)
{
    $thumbnail_width = 134;
    $thumbnail_height = 189;
    $arr_image_details = getimagesize("$updir" . $id . '_' . "$img");
    // Calculate new dimensions while preserving aspect ratio
    // ...
    // Create new image and copy from original image with resizing
    // ...
    // Save the thumbnail
    imagepng($new_image, "$updir" . $id . '_' . "thumb" . "$img");
}

Kesimpulan:

Dengan mengikuti langkah ini dan menggunakan perpustakaan pemprosesan imej yang sesuai, anda boleh dengan berkesan buat lakaran kenit daripada imej yang dimuat naik sambil mengekalkan nisbah bidangnya. Ini memastikan bahawa lakaran kecil anda mengekalkan integriti imej asal dan meningkatkan daya tarikan visual tapak web atau aplikasi anda.

Atas ialah kandungan terperinci Bagaimana untuk mencipta imej kecil daripada imej yang dimuat naik sambil mengekalkan nisbah aspek?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn