奶头挺立呻吟高潮av全片,成人试看120秒体验区,性欧美极品v,A片高潮抽搐揉捏奶头视频

php語言

php生成縮略圖的兩種方法

時間:2024-05-24 13:32:24 php語言 我要投稿

php生成縮略圖的兩種方法

  在php中如果要生成縮略圖有什么辦法呢?以下是小編整理的兩種方法,希望對大家有用,更多消息請關注應屆畢業生網。
  核心代碼如下
  public function getImage(){
  // create instance
  $basePath = base_path('public/');
  $md5 = 'b8c3bf0b10a81c5b6a98c527868a0000';
  $sub1 = substr($md5, 0, 1);
  $sub2 = substr($md5, 1, 2);
  $subPath = sprintf("image/%s/%s/%s%s.jpg", $sub1, $sub2, $md5, '300x300');
  $sourcePath = sprintf("image/%s/%s/%s.jpg", $sub1, $sub2, $md5);
  //截成100x80的縮略圖
  //$image = $this->getCropper($basePath.$sourcePath,$basePath.$subPath, 300, 300);
  $image = $this->getCrops($basePath.$sourcePath,$basePath.$subPath, 300, 300);
  }
  //生成縮略圖
  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);
  }
  //生成縮略圖,填充白邊
  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生成縮略圖的兩種方法(代碼)12-07

php生成圖片縮略圖的方法03-31

php生成高清縮略圖實例03-02

PHP生成Word文檔的方法11-21

php生成圓角圖片的方法技巧03-29

php動態生成JavaScript代碼03-30

php摘要生成函數詳解03-02

自學PHP方法12-04

PHP生成器簡單實例03-29

主站蜘蛛池模板: 土默特右旗| 海南省| 徐水县| 宜宾县| 罗田县| 田林县| 阳原县| 繁昌县| 名山县| 抚远县| 方正县| 东丰县| 时尚| 河北省| 临潭县| 武平县| 长白| 泽库县| 红河县| 句容市| 冀州市| 玛沁县| 卫辉市| 嫩江县| 湄潭县| 资溪县| 浮山县| 江孜县| 株洲县| 阿拉善盟| 芦山县| 营口市| 施甸县| 濮阳县| 大兴区| 阿坝县| 姜堰市| 兴宁市| 颍上县| 宜川县| 房产|