Heim > Backend-Entwicklung > PHP-Tutorial > php图片缩放代码-按比例缩放或截取指定大小的缩略图 非常好用的一个方法_PHP教程

php图片缩放代码-按比例缩放或截取指定大小的缩略图 非常好用的一个方法_PHP教程

WBOY
Freigeben: 2016-07-13 17:47:42
Original
857 Leute haben es durchsucht

 

/**********************************************************

 * function resize:

 *

 *  = creates a resized image based on the max width

 *    specified as well as generates a thumbnail from

 *    a rectangle cut from the middle of the image.

 *

     *    @dir    = directory image is stored in

     *    @newdir = directory new image will be stored in

     *    @img    = the image name

     *    @newimg = the image new name

     *    @max_w  = the max width of the resized image

     *    @max_h  = the max height of the resized image

     *    @th_x  = The starting point of the x-coordinate

     *    @th_y  = The starting point of the y-coordinate

     *    @th_w  = the width of the thumbnail

     *    @th_h  = the height of the thumbnail

     *    @cut = Whether to need cut out

     *    @center = whether cut from the middle of the image

 *

 **********************************************************/ 

 

function resize($dir, $newdir, $img, $newimg, $max_w, $max_h, $th_x = '', $th_y = '', $th_w = '', $th_h = '',$cut = FALSE,$center = FALSE) 

   // set destination directory 

   if (!$newdir) $newdir = $dir; 

   if (!$newimg) $newimg = $img; 

 

   // get original images width and height 

   list($or_w, $or_h, $or_t) = getimagesize($dir.$img); 

    

   switch($or_t){ 

    // original image 

    case 1: 

        $or_image = imagecreatefromgif($dir.$img); 

        break; 

    case 2: 

        $or_image = imagecreatefromjpeg($dir.$img); 

        break; 

    case 3: 

        $or_image = imagecreatefrompng($dir.$img); 

        break; 

    default: 

        return '不支持的图像格式';  www.2cto.com

        break;  

   } 

 

   // make sure image is a jpeg 

   // if ($or_t == 2) { 

    

       // obtain the image's ratio 

//       $ratio = ($or_h / $or_w); 

        $ratio = ($max_h / $max_w); 

 

       // original image 

//       $or_image = imagecreatefromjpeg($dir.$img); 

 

       // resize image?  

       if ($or_w > $max_w || $or_h > $max_h) { 

 

           // resize by height, then width (height dominant) 

           if ($max_h

               $rs_h = $max_h; 

               $rs_w = $rs_h / $ratio; 

           } 

           // resize by width, then height (width dominant) 

           else { 

               $rs_w = $max_w; 

               $rs_h = $ratio * $rs_w; 

           } 

 

           // copy old image to new image 

           $rs_image = imagecreatetruecolor($rs_w, $rs_h); 

           imagecopyresampled($rs_image, $or_image, 0, 0, 0, 0, $rs_w, $rs_h, $or_w, $or_h); 

       } 

       // image requires no resizing 

       else { 

           $rs_w = $or_w; 

           $rs_h = $or_h; 

 

           $rs_image = $or_image; 

       } 

 

       // generate resized image 

       DrawImage($rs_image, $newdir.$newimg,$or_t,100); 

 

        

       //裁剪生成指定的大小start------------------- 

       if ($cut){ 

            $th_image = imagecreatetruecolor($th_w, $th_h); 

 

           // cut out a rectangle from the resized image and store in thumbnail 

           if ($center){ 

                $new_w = (($rs_w / 2) - ($th_w / 2)); 

                $new_h = (($rs_h / 2) - ($th_h / 2)); 

           }else { 

                $new_w = $th_x; 

                $new_h = $th_y; 

           } 

            

     

           imagecopyresampled($th_image, $rs_image, 0, 0, $new_w, $new_h, $rs_w, $rs_h, $rs_w, $rs_h); 

     

           // generate thumbnail 

           DrawImage($th_image, $newdir.'th_'.$newimg,$or_t,100); 

           @ImageDestroy($th_image); 

       } 

        

       //生成指定的大小end------------------- 

 

//       return true; 

   //}  

 

   // Image type was not jpeg! 

   /* else {

       return false;

   } */ 

   @ImageDestroy($rs_image); 

 

/**

*   @resource image 

*   @filename

*   @quality

*   @type

**/ 

 

function DrawImage($resource,$filename,$type,$quality){ 

    switch($type){ 

    // original image 

    case 1: 

        $or_image = imagegif($resource,$filename); 

        break; 

    case 2: 

        $or_image = imagejpeg($resource,$filename,$quality); 

        break; 

    case 3: 

        $or_image = imagepng($resource,$filename); 

        break; 

      

   } 

 

摘自 aa705123123的专栏

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/478491.htmlTechArticle/********************************************************** * function resize: * * = creates a resized image based on the max width * specified as well as generates a thumbnail fro...
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage