溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

使用ThinkPHP怎么實(shí)現(xiàn)圖片按比例切割

發(fā)布時(shí)間:2021-06-09 16:48:44 來(lái)源:億速云 閱讀:165 作者:Leah 欄目:開發(fā)技術(shù)

這篇文章給大家介紹使用ThinkPHP怎么實(shí)現(xiàn)圖片按比例切割,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

在開發(fā)中,經(jīng)常會(huì)遇到圖片需要按照一定比例進(jìn)行縮放的情況,但是,如果一張長(zhǎng)寬比為2:1的如果需要按照1:1的比例進(jìn)行展示,那么這就意味著圖片會(huì)發(fā)生變形。下面便介紹下載tp框架中如何按照比例切割并縮放圖片。

  /**
   * 切割圖片
   * @param $path 所要切割的圖片的路徑
   * @param $prefix 給切割后圖片的前綴
   * @param $width 寬度所占比例
   * @param $height 高度所占比例
   * @return string 圖片名稱
   */
function sizeThumb($path,$prefix,$width,$height){
  import("ORG.Util.Image.ThinkImage");
  $image=new ThinkImage();
  $image->open('.'.$path);//打開縮略圖進(jìn)行編輯
  $imageWidth=$image->width();//獲得圖片尺寸
  $imageHeight=$image->height();
  $save_name=getThumb($path, $prefix);
  if (($imageHeight/$height*$width)>$imageWidth) {//按照高切割,如果寬度沒有那么長(zhǎng),就按寬度切
    $image->thumb($imageWidth, ($imageWidth/$width*$height),THINKIMAGE_THUMB_CENTER)->save('.'.$save_name);
  }else{
    $image->thumb(($imageHeight/$height*$width), $imageHeight,THINKIMAGE_THUMB_CENTER)->save('.'.$save_name);
  }
  return $save_name;
}

在這里采用的是從中間進(jìn)行截圖最大比例的圖片的方式,如果需要使用其他方式的話,例如從左邊開始截取這樣的,修改‘THINKIMAGE_THUMB_CENTER'即可,服務(wù)端采取這樣的方式也并不是必要的,畢竟前端也可以處理,應(yīng)當(dāng)按照實(shí)際情況進(jìn)行考慮。

當(dāng)然,一般進(jìn)行圖片的存儲(chǔ)都是存儲(chǔ)圖片的相對(duì)位置,如果生成了縮略圖,我們其實(shí)也沒有必要再使用一個(gè)字段保存我們的縮略圖,我們只需要重寫切割拼接字符串就行

  /**
   * 獲取圖片路徑
   * @param $prefix 圖片的前綴
   * @param $img_url 原圖的路徑
   * @return string 圖片路徑
   */
function getThumb($img_url,$prefix){
  $str_arr=explode('/', $img_url);
  $last=count($str_arr);
  $str_arr[$last-1]=$prefix.$str_arr[$last-1];
  $str=implode('/', $str_arr);
  return $str;
}

關(guān)于使用ThinkPHP怎么實(shí)現(xiàn)圖片按比例切割就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI