最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

php等比例縮放圖片及剪切圖片代碼分享

 更新時間:2016年02月13日 10:18:25   投稿:hebedich  
這篇文章給大家分享的是使用php實現(xiàn)的等比例縮放圖片及剪切圖片的代碼,非常的簡單實用,附上用法,有需要的小伙伴可以參考下。

php等比例縮放圖片及剪切圖片代碼分享

/**
 * 圖片縮放函數(shù)(可設(shè)置高度固定,寬度固定或者最大寬高,支持gif/jpg/png三種類型)
 * Author : Specs
 *
 * @param string $source_path 源圖片
 * @param int $target_width 目標(biāo)寬度
 * @param int $target_height 目標(biāo)高度
 * @param string $fixed_orig 鎖定寬高(可選參數(shù) width、height或者空值)
 * @return string
 */
function myImageResize($source_path, $target_width = 200, $target_height = 200, $fixed_orig = ''){
  $source_info = getimagesize($source_path);
  $source_width = $source_info[0];
  $source_height = $source_info[1];
  $source_mime = $source_info['mime'];
  $ratio_orig = $source_width / $source_height;
  if ($fixed_orig == 'width'){
    //寬度固定
    $target_height = $target_width / $ratio_orig;
  }elseif ($fixed_orig == 'height'){
    //高度固定
    $target_width = $target_height * $ratio_orig;
  }else{
    //最大寬或最大高
    if ($target_width / $target_height > $ratio_orig){
      $target_width = $target_height * $ratio_orig;
    }else{
      $target_height = $target_width / $ratio_orig;
    }
  }
  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);
  imagecopyresampled($target_image, $source_image, 0, 0, 0, 0, $target_width, $target_height, $source_width, $source_height);
  //header('Content-type: image/jpeg');
  $imgArr = explode('.', $source_path);
  $target_path = $imgArr[0] . '_new.' . $imgArr[1];
  imagejpeg($target_image, $target_path, 100);
}

用法:

  1. myImageResize($filename, 200, 200); //最大寬高
  2. myImageResize($filename, 200, 200, 'width'); //寬度固定
  3. myImageResize($filename, 200, 200, 'height'); //高度固定

剪切圖片為固定大?。?/strong>

function imagecropper($source_path, $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);
  $dotpos = strrpos($source_path, '.');
  $imgName = substr($source_path, 0, $dotpos);
  $suffix = substr($source_path, $dotpos);
  $imgNew = $imgName . '_small' . $suffix;
  imagejpeg($target_image, $imgNew, 100);
  imagedestroy($source_image);
  imagedestroy($target_image);
  imagedestroy($cropped_image);
}

相關(guān)文章

  • 利用PHP獲取漢字首字母并且分組排序詳解

    利用PHP獲取漢字首字母并且分組排序詳解

    這篇文章主要給大家介紹了關(guān)于如何利用PHP獲取漢字首字母并且分組排序的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用php具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-10-10
  • PHP 實現(xiàn)字符串翻轉(zhuǎn)(包含中文漢字)的實現(xiàn)代碼

    PHP 實現(xiàn)字符串翻轉(zhuǎn)(包含中文漢字)的實現(xiàn)代碼

    本篇文章主要介紹了PHP 實現(xiàn)字符串翻轉(zhuǎn)(包含中文漢字)的實現(xiàn)代碼,在PHP面試題中經(jīng)常遇到,有興趣的可以了解一下。
    2017-04-04
  • Symfony生成二維碼的方法

    Symfony生成二維碼的方法

    這篇文章主要介紹了Symfony生成二維碼的方法,實例分析了采用google開放api和PHP類庫phpqrcode兩種方法,并結(jié)合實例詳細(xì)說明了Symfony下使用EndroidQrCodeBundle生成二維碼的具體步驟與實現(xiàn)方法,需要的朋友可以參考下
    2016-02-02
  • WordPress后臺中實現(xiàn)圖片上傳功能的實例講解

    WordPress后臺中實現(xiàn)圖片上傳功能的實例講解

    這篇文章主要介紹了WordPress后臺中實現(xiàn)圖片上傳功能的實例講解,包括多個圖片上傳表單功能的實現(xiàn),需要的朋友可以參考下
    2016-01-01
  • php微信開發(fā)之音樂回復(fù)功能

    php微信開發(fā)之音樂回復(fù)功能

    這篇文章主要為大家詳細(xì)介紹了php微信開發(fā)之音樂回復(fù)功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • 升級 PHP7.1 后 openssl 解密 mcrypt AES 數(shù)據(jù)不兼容問題的處理方法

    升級 PHP7.1 后 openssl 解密 mcrypt AES 數(shù)據(jù)不兼容問題的處理方法

    這篇文章主要介紹了升級 PHP7.1 后 openssl 解密 mcrypt AES 數(shù)據(jù)不兼容問題的處理方法,需要的朋友可以參考下
    2018-07-07
  • PHPMYADMIN 簡明安裝教程 推薦

    PHPMYADMIN 簡明安裝教程 推薦

    簡單的說,phpmyadmin就是一種mysql的管理工具,安裝該工具后,即可以通過web形式直接管理mysql數(shù)據(jù),而不需要通過執(zhí)行系統(tǒng)命令來管理,非常適合對數(shù)據(jù)庫操作命令不熟悉的數(shù)據(jù)庫管理者,下面我就說下怎么安裝該工具
    2010-03-03
  • Yii安裝與使用Excel擴展的方法

    Yii安裝與使用Excel擴展的方法

    這篇文章主要介紹了Yii安裝與使用Excel擴展的方法,簡單分析了Yii中Excel擴展的下載、安裝及相關(guān)使用技巧,需要的朋友可以參考下
    2016-07-07
  • php權(quán)限調(diào)整強制用戶退出的解決步驟

    php權(quán)限調(diào)整強制用戶退出的解決步驟

    這篇文章主要介紹了php權(quán)限調(diào)整強制用戶退出的解決步驟,當(dāng)用戶登錄時,將用戶的登錄狀態(tài)和其他相關(guān)信息存儲在服務(wù)器端,本文結(jié)合實例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-09-09
  • yii2簡單使用less代替css示例

    yii2簡單使用less代替css示例

    本篇文章主要介紹了yii2簡單使用less代替css示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03

最新評論

太谷县| 开鲁县| 顺义区| 丰都县| 武清区| 肇庆市| 渝北区| 凤台县| 宁海县| 宁蒗| 阳新县| 中方县| 河津市| 丰原市| 开化县| 通江县| 阿荣旗| 玛沁县| 兖州市| 吉木乃县| 昌平区| 呼和浩特市| 周宁县| 常德市| 邵东县| 正阳县| 平湖市| 上杭县| 宜都市| 太白县| 武山县| 河西区| 阿瓦提县| 新干县| 崇仁县| 西城区| 葵青区| 昆明市| 海门市| 库车县| 光山县|