php圖片裁剪函數

 更新時間:2018年10月31日 10:27:27   作者:可我不愛聰明   我要評論

這篇文章主要為大家詳細介紹了php圖片裁剪函數,圖片裁剪工具,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了php圖片裁剪函數的具體代碼,供大家參考,具體內容如下

/*
 * 圖片裁剪工具
 * 將指定文件裁剪成正方形
 * 以中心為起始向四周裁剪
 * @param $src_path string 源文件地址
 * @param $des_path string 保存文件地址
 * @param $des_w double 目標圖片寬度
 * */
function img_cut_square($src_path,$des_path,$des_w=100){
  $img_info = getimagesize($src_path);//獲取原圖像尺寸信息
  $img_width = $img_info[0];//原圖寬度
  $img_height = $img_info[1];//原圖高度
  $img_type = $img_info[2];//圖片類型 1 為 GIF 格式、 2 為 JPEG/JPG 格式、3 為 PNG 格式
  if($img_type != 2 && $img_type != 3) return ;

  /*計算縮放尺寸*/
  if($img_height > $img_width){
    $scale_width = $des_w;//縮放寬度
    $scale_height = round($des_w / $img_width * $img_height);//縮放高度

    $src_y = round(($scale_height - $des_w)/2);
    $src_x = 0;
  }else{
    $scale_height = $des_w;
    $scale_width = round($des_w / $img_height * $img_width);

    $src_y = 0;
    $src_x = round(($scale_width - $des_w)/2);
  }

  $dst_ims = imagecreatetruecolor($scale_width, $scale_height);//創建真彩畫布
  $white = imagecolorallocate($dst_ims, 255, 255, 255);
  imagefill($dst_ims, 0, 0, $white);
  if($img_type == 2){
    $src_im = @imagecreatefromjpeg($src_path);//讀取原圖像
  }else if($img_type == 3){
    $src_im = @imagecreatefrompng($src_path);//讀取原圖像
  }

  imagecopyresized($dst_ims, $src_im, 0, 0 ,0, 0 , $scale_width , $scale_height , $img_width,$img_height);//縮放圖片到指定尺寸


  $dst_im = imagecreatetruecolor($des_w, $des_w);
//  $white = imagecolorallocate($dst_im, 255, 255, 255);
//  imagefill($dst_im, 0, 0, $white);
  imagecopy($dst_im, $dst_ims, 0, 0, $src_x, $src_y, $des_w, $des_w);//開始裁剪圖片為正方形
// imagecopyresampled($dst_im, $src_im, $src_x, $src_y, 0, 0, $real_width, $real_width,$img_width,$img_height);
  if($img_type == 2) {
    imagejpeg($dst_im, $des_path);//保存到文件
  }else if($img_type == 3){
    imagepng($dst_im,$des_path);
  }
//  imagejpeg($dst_im);//輸出到瀏覽器
  imagedestroy($dst_im);
  imagedestroy($dst_ims);
  imagedestroy($src_im);
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • PHP CURL或file_get_contents獲取網頁標題的代碼及兩者效率的穩定性問題

    PHP CURL或file_get_contents獲取網頁標題的代碼及兩者效率的穩定

    PHP CURL與file_get_contents函數都可以獲取遠程服務器上的文件保存到本地,但在性能上面兩者完全不在同一個級別,下面通過一個例子給大家介紹PHP CURL或file_get_contents獲取網頁標題的代碼及兩者效率的穩定性問題,需要的朋友參考下
    2015-11-11
  • 使用PHP如何實現高效安全的ftp服務器(一)

    使用PHP如何實現高效安全的ftp服務器(一)

    FTP服務器(File Transfer Protocol Server)是在互聯網上提供文件存儲和訪問服務的計算機,它們依照FTP協議提供服務,本文給大家介紹使用PHP如何實現高效安全的ftp服務器(一),對php ftp服務器相關知識感興趣的朋友一起學習吧
    2015-12-12
  • php封裝json通信接口詳解及實例

    php封裝json通信接口詳解及實例

    這篇文章主要介紹了php封裝json通信接口詳解及實例的相關資料,需要的朋友可以參考下
    2017-03-03
  • 在PHP語言中使用JSON和將json還原成數組的方法

    在PHP語言中使用JSON和將json還原成數組的方法

    下面小編就為大家帶來一篇在PHP語言中使用JSON和將json還原成數組的方法。小編覺得挺不錯的,現在就分享給大家,也給大家做個 參考。一起跟隨小編過來看看吧
    2016-07-07
  • thinkPHP5(TP5)實現改寫跳轉提示頁面的方法

    thinkPHP5(TP5)實現改寫跳轉提示頁面的方法

    這篇文章主要介紹了thinkPHP5(TP5)實現改寫跳轉提示頁面的方法,結合實例形式分析了thinkPHP5跳轉提示頁面的修改步驟與相關操作注意事項,需要的朋友可以參考下
    2017-10-10
  • php遞歸函數怎么用才有效

    php遞歸函數怎么用才有效

    這篇文章主要介紹了php遞歸函數怎么用才有效及php遞歸函數與非遞歸函數區別介紹,感興趣的朋友一起看看吧
    2018-02-02
  • PHP守護進程化在C和PHP環境下的實現

    PHP守護進程化在C和PHP環境下的實現

    這篇文章主要介紹了PHP守護進程化的實現的方法以及原理過程,以及在C環境和PHP環境下實現的代碼,喜歡的朋友收藏一下。
    2017-11-11
  • php使用正則表達式獲取字符串中的URL

    php使用正則表達式獲取字符串中的URL

    客戶端傳過來一段字符串,需要從字符串中匹配出所有的url,php該如何實現呢?本文章向大家介紹php如何獲取字符串中的URL(網址鏈接),主要使用到php正則表達式函數preg_match_all,具體實現方法請看下文
    2016-12-12
  • php兩種無限分類方法實例

    php兩種無限分類方法實例

    這篇文章主要介紹了php兩種無限分類方法實例,本文給出了遞歸方法和非遞歸方法實現的無限分類實例,需要的朋友可以參考下
    2015-04-04
  • yiic命令時提示“php.exe”不是內部或外部命令的解決方法

    yiic命令時提示“php.exe”不是內部或外部命令的解決方法

    這篇文章主要介紹了yiic命令時提示“php.exe”不是內部或外部命令的解決方法,針對環境變量的配置與Yii框架的配置文件修改來解決這一問題,具有一定的參考借鑒價值,需要的朋友可以參考下
    2014-12-12

最新評論

时时彩包赢公式0369