亚洲精品中文字幕无乱码_久久亚洲精品无码AV大片_最新国产免费Av网址_国产精品3级片

php語言

php生成縮略圖的兩種方法代碼

時間:2022-12-07 06:38:57 php語言 我要投稿
  • 相關(guān)推薦

php生成縮略圖的兩種方法(代碼)

  PHP是最近的熱門語言,那么如果php要生成縮略圖有什么辦法呢?其實php生成縮略圖有兩種方法,核心代碼如下,更多消息請關(guān)注應屆畢業(yè)生網(wǎng)!
  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生成縮略圖的兩種方法代碼】相關(guān)文章:

20條PHP代碼優(yōu)化技巧05-06

php讀取文件內(nèi)容的方法04-14

PHP實現(xiàn)獲取域名的方法小結(jié)06-08

解決PHP的failed opening required問題的方法04-12

PHP利用header跳轉(zhuǎn)失效的解決方法04-13

PS讓眼睛變大的兩種方法10-24

PHP判斷數(shù)組是否為空的5大方法01-13

孩子巧記英語單詞的兩種方法04-26

php環(huán)境搭建06-11

PHP常量介紹04-21