首页 → 名言 → 正能量文章
php生成縮略圖的方法有哪些 php生成縮略圖的方法是什么
日期:2023-03-08 16:48:03    编辑:网络投稿    来源:网络资源
PHP生成縮略圖的方法  PHP語法吸收了C語言、Java和Perl的特點,利于學習,使用廣泛,以下是為大家分享的PHP生成縮略圖的方法,供大家參考借鑒,歡迎瀏覽!  <?php  function get
为你推荐:
  • 形容花和人心情的句
  • PHP生成縮略圖的方法

      PHP語法吸收了C語言、Java和Perl的特點,利于學習,使用廣泛,以下是為大家分享的PHP生成縮略圖的方法,供大家參考借鑒,歡迎瀏覽!

      <?php

      function getCropper($source_path,$NewImagePath, $target_width, $target_height)

      {

      $source_info = getimagesize($source_path);

      $source_width = $source_info[0];

      $source_height = $source_info[1];

      $source_mime = $source_info['mime'];

      $source_ratio = $source_height / $source_width;

      $target_ratio = $target_height / $target_width;

      // 源圖過高

      if ($source_ratio > $target_ratio)

      {

      $cropped_width = $source_width;

      $cropped_height = $source_width * $target_ratio;

      $source_x = 0;

      $source_y = ($source_height - $cropped_height) / 2;

      }

      // 源圖過寬

      elseif ($source_ratio < $target_ratio)

      {

      $cropped_width = $source_height / $target_ratio;

      $cropped_height = $source_height;

      $source_x = ($source_width - $cropped_width) / 2;

      $source_y = 0;

      }

      // 源圖適中

      else

      {

      $cropped_width = $source_width;

      $cropped_height = $source_height;

      $source_x = 0;

      $source_y = 0;

      }

      switch ($source_mime)

      {

      case 'image/gif':

      $source_image = imagecreatefromgif($source_path);

      break;

      case 'image/jpeg':

      $source_image = imagecreatefromjpeg($source_path);

      break;

      case 'image/png':

      $source_image = imagecreatefrompng($source_path);

      break;

      default:

      return false;

      break;

      }

      $target_image = imagecreatetruecolor($target_width, $target_height);

      $cropped_image = imagecreatetruecolor($cropped_width, $cropped_height);

      // 圖片裁剪

      imagecopy($cropped_image, $source_image, 0, 0, $source_x, $source_y, $cropped_width, $cropped_height);

      // 圖片縮放

      imagecopyresampled($target_image, $cropped_image, 0, 0, 0, 0, $target_width, $target_height, $cropped_width, $cropped_height);

      header('Content-Type: image/jpeg');

      imagejpeg($target_image,$NewImagePath,100);

      imagedestroy($source_image);

      imagedestroy($target_image);

      imagedestroy($cropped_image);

      }

      以下方法是生成縮略圖,填充白邊的`方法

      <?php

      //生成縮略圖,填充白邊

      function getCrops($src_path,$NewImagePath,$width,$height){

      //源圖對象

      $src_image = imagecreatefromstring(file_get_contents($src_path));

      $source_info = getimagesize($src_path);

      $source_mime = $source_info['mime'];

      $src_width = imagesx($src_image);

      $src_height = imagesy($src_image);

      switch ($source_mime)

      {

      case 'image/gif':

      $src_image = imagecreatefromgif($src_path);

      break;

      case 'image/jpeg':

      $src_image = imagecreatefromjpeg($src_path);

      break;

      case 'image/png':

      $src_image = imagecreatefrompng($src_path);

      break;

      default:

      return false;

      break;

      }

      //生成等比例的縮略圖

      //$tmp_image_width = 0;

      //$tmp_image_height = 0;

      if ($src_width / $src_height >= $width / $height) {

      $tmp_image_width = $width;

      $tmp_image_height = round($tmp_image_width * $src_height / $src_width);

      } else {

      $tmp_image_height = $height;

      $tmp_image_width = round($tmp_image_height * $src_width / $src_height);

      }

      $tmpImage = imagecreatetruecolor($tmp_image_width, $tmp_image_height);

      imagecopyresampled($tmpImage, $src_image, 0, 0, 0, 0, $tmp_image_width, $tmp_image_height, $src_width, $src_height);

      //添加白邊

      $final_image = imagecreatetruecolor($width, $height);

      $color = imagecolorallocate($final_image, 255, 255, 255);

      imagefill($final_image, 0, 0, $color);

      $x = round(($width - $tmp_image_width) / 2);

      $y = round(($height - $tmp_image_height) / 2);

      imagecopy($final_image, $tmpImage, $x, $y, 0, 0, $tmp_image_width, $tmp_image_height);

      //輸出圖片

      header('Content-Type: image/jpeg');

      imagejpeg($final_image,$NewImagePath,100);

      imagedestroy($src_image);

      imagedestroy($final_image);

      }

    【PHP生成縮略圖的方法】相關文章:

    PHP生成Excel報表的方法09-04

    PHP生成樹的方法介紹07-15

    PHP生成Excel報表的方法介紹08-22

    PHP生成隨機密碼的方法08-17

    生成PHP網站頁面靜態化的方法10-05

    php技術生成靜態頁面的方法08-15

    php生成隨機密碼的4種方法08-15

    php生成帶logo二維碼方法08-18

    php怎么生成隨機密碼09-29

    这里有更多你想看的
  • 什么樣的網名好聽又
    • 本类最新
    • 精品图文
    • 时尚
    • 新闻
    • 生活
    • 视觉
    • 微爱
      栏目ID=88的表不存在(操作类型=0)

    头条推荐

    热门推荐

    特别推荐

    返回顶部