Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk membuat lakaran kecil daripada imej yang dimuat naik sambil mengekalkan imej asal?
Membuat Imej Kecil pada Muat Naik Imej
Apabila pengguna memuat naik imej , adalah amalan biasa untuk membuat lakaran kecil bersebelahan dengan imej asal. Ini membolehkan pemuatan lebih pantas imej yang lebih kecil sambil mengekalkan versi berkualiti tinggi untuk paparan apabila perlu.
Struktur Pangkalan Data
Dalam kes ini, pangkalan data mempunyai dua lajur untuk simpan imej: user_pic untuk imej asal dan user_pic_small untuk lakaran kecil.
Borang Muat Naik Imej
Borang muat naik imej, imageupload.php, mengendalikan muat naik fail dan memasukkan imej bersaiz penuh ke dalam pangkalan data.
Skrip PHP Pemprosesan Imej
Skrip PHP, media.profileimage.upload.php, menyemak sama ada imej telah dimuat naik dan mencipta lakaran kecil jika perlu.
ImageMagick (Pilihan)
ImageMagick boleh digunakan untuk menjana lakaran kecil dengan lebih cekap. Berikut ialah contoh menggunakan Imagick:
/** * @param string $img Image path * @param int $width * @param int $height * @param int $quality * @return bool * @throws Exception */ function generateThumbnail($img, $width, $height, $quality = 90) { $imagick = new Imagick(realpath($img)); $imagick->setImageFormat('jpeg'); $imagick->setImageCompression(Imagick::COMPRESSION_JPEG); $imagick->setImageCompressionQuality($quality); $imagick->thumbnailImage($width, $height, false, false); $filename_no_ext = reset(explode('.', $img)); return file_put_contents($filename_no_ext . '_thumb' . '.jpg', $imagick); }
Contoh Fungsi
Satu lagi contoh fungsi, makeThumbnails() menggunakan fungsi imej PHP untuk mencipta lakaran kecil:
function makeThumbnails($updir, $img, $id) { $width = 134; $height = 189; $thumb_beforeword = "thumb"; list($original_width, $original_height) = getimagesize("$updir$id" . '_' . "$img"); if ($original_width > $original_height) { $new_width = $width; $new_height = intval($original_height * $new_width / $original_width); } else { $new_height = $height; $new_width = intval($original_width * $new_height / $original_height); } $old_image = imagecreatefromjpeg("$updir$id" . '_' . "$img"); $new_image = imagecreatetruecolor($width, $height); imagecopyresized($new_image, $old_image, intval(($width - $new_width) / 2), intval(($height - $new_height) / 2), 0, 0, $new_width, $new_height, $original_width, $original_height); imagejpeg($new_image, "$updir$id" . '_' . "$thumb_beforeword" . "$img"); }
Dengan melaksanakan teknik ini, anda boleh membuat dan menyimpan lakaran kecil bersama imej asal, mengoptimumkan prestasi tapak web dan meningkatkan pengalaman pengguna.
Atas ialah kandungan terperinci Bagaimana untuk membuat lakaran kecil daripada imej yang dimuat naik sambil mengekalkan imej asal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!