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

Susan Sarandon
Lepaskan: 2024-11-07 10:20:02
asal
582 orang telah melayarinya

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);
}
Salin selepas log masuk

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");
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!