Rumah > pembangunan bahagian belakang > masalah PHP > Bagaimana untuk menjana imej kecil dalam php tanpa herotan

Bagaimana untuk menjana imej kecil dalam php tanpa herotan

藏色散人
Lepaskan: 2023-03-15 07:30:02
asal
2373 orang telah melayarinya

Cara menjana lakaran kecil dalam PHP tanpa herotan: 1. Cipta fail sampel PHP 2. Hasilkan imej dalam perkadaran yang sama melalui "fungsi reSizeImg($imgSrc, $resize_width...) {...} " kaedah Imej kecil akan dilakukan.

Bagaimana untuk menjana imej kecil dalam php tanpa herotan

Persekitaran pengendalian artikel ini: sistem Windows 7, PHP versi 7.1 , komputer DELL G3

php Bagaimana untuk menjana imej kecil tanpa herotan?

Kod untuk menggunakan fungsi PHP untuk menjana lakaran kecil imej dalam perkadaran yang sama tanpa herotan

//等比例生成图片缩略图不失真

/**
    * 生成缩略图
    * $imgSrc           图片源路径
    * $resize_width     图片宽度
    * $resize_height    图片高度
    * $dstimg           缩略图路径
    * $isCut            是否剪切图片
    */
     function reSizeImg($imgSrc, $resize_width, $resize_height, $dstimg, $isCut = false) {
        //图片的类型
        $type = substr(strrchr($imgSrc, "."), 1);
        //初始化图象
        if ($type == "jpg" || $type == "jpeg") {
            $im = imagecreatefromjpeg($imgSrc);
        }
        if ($type == "gif") {
            $im = imagecreatefromgif($imgSrc);
        }
        if ($type == "png") {
            $im = imagecreatefrompng($imgSrc);
        }

        $width = imagesx($im);
        $height = imagesy($im);

        //生成图象
        //改变后的图象的比例
        $resize_ratio = ($resize_width) / ($resize_height);
        //实际图象的比例
        $ratio = ($width) / ($height);
        if (($isCut) == 1) {
            if ($ratio >= $resize_ratio) {
                //高度优先
                $newimg = imagecreatetruecolor($resize_width, $resize_height);
                imagecopyresampled($newimg, $im, 0, 0, 0, 0, $resize_width, $resize_height, (($height) * $resize_ratio), $height);
                ImageJpeg($newimg, $dstimg);
            }
            if ($ratio < $resize_ratio) {
                //宽度优先
                $newimg = imagecreatetruecolor($resize_width, $resize_height);
                imagecopyresampled($newimg, $im, 0, 0, 0, 0, $resize_width, $resize_height, $width, (($width) / $resize_ratio));
                ImageJpeg($newimg, $dstimg);
            }
        } else {
            if ($ratio >= $resize_ratio) {
                $newimg = imagecreatetruecolor($resize_width, ($resize_width) / $ratio);
                imagecopyresampled($newimg, $im, 0, 0, 0, 0, $resize_width, ($resize_width) / $ratio, $width, $height);
                ImageJpeg($newimg, $dstimg);
            }
            if ($ratio < $resize_ratio) {
                $newimg = imagecreatetruecolor(($resize_height) * $ratio, $resize_height);
                imagecopyresampled($newimg, $im, 0, 0, 0, 0, ($resize_height) * $ratio, $resize_height, $width, $height);
                ImageJpeg($newimg, $dstimg);
            }
        }
        ImageDestroy($im);
    }

$result = reSizeImg(&#39;images/15M.jpg&#39;, 1280, 1280,&#39;thumb/xiao15.jpg&#39;);
Salin selepas log masuk

Kajian yang disyorkan: "Tutorial Video PHP"

Atas ialah kandungan terperinci Bagaimana untuk menjana imej kecil dalam php tanpa herotan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan