Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk membuat lakaran kecil daripada imej yang dimuat naik sambil mengekalkan imej asal?

Bagaimana untuk membuat lakaran kecil daripada imej yang dimuat naik sambil mengekalkan imej asal?

Susan Sarandon
Susan Sarandonasal
2024-11-07 10:20:02583semak imbas

How to create thumbnails from uploaded images while preserving the original image?

Membuat Imej Kecil daripada Imej Yang Dimuat Naik Sambil Mengekalkan Yang 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!

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