日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php 缩略图 等比例 不失真,PHP自适应宽高度等比例缩略图函数 (无裁切)

發布時間:2023/12/10 php 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php 缩略图 等比例 不失真,PHP自适应宽高度等比例缩略图函数 (无裁切) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

對于產品類或者圖片類網站來講,縮略圖是一個很重要的應用。其實說來很簡單,也就是把大圖縮放成一個小圖,用于圖片的列表展現,這樣能夠達到用戶快速瀏覽的目的,又能節省帶寬。php

若是是等比例縮放,好比小圖是大圖的1/2或者1/5之類的,比較容易處理。但有時候咱們須要處理大量不一樣尺寸的大圖,讓其生成固定寬高度的縮略圖。那就須要一種自適應的方式縮放,就是大圖在縮放的過程當中,若是寬度先達到縮略圖的寬度,那大圖多余的高度就被裁剪掉;若是高度先達到縮略圖的高度,那大圖多余的寬度就被裁剪掉。這樣處理既讓縮略圖不失真變形,又能最大化保留大圖內容。函數

今天用PHP寫了一個縮略圖函數,能夠達到這種自適應的等比例縮放效果。網站

/*

縮略圖函數

做者:影子超

博客:www.shadowchao.com

郵箱:superl3c@gmail.com

參數說明:

$w?----------?縮略圖寬度

$h?----------?縮略圖高度

$dst_path?---?縮略圖路徑

$src_path?---?源圖像路徑

*/

function?zoom_image($w,$h,$dst_path,$src_path){

if(!file_exists($src_path)){

die("源圖像文件未找到!");

}

list($src_w,$src_h,$src_type)=getimagesize($src_path);

switch($src_type){

case?1:$src_im=@imagecreatefromgif($src_path);break;

case?2:$src_im=@imagecreatefromjpeg($src_path);break;

case?3:$src_im=@imagecreatefrompng($src_path);break;

default:die("不能識別的圖像類型!");

}

$dst_im=@imagecreatetruecolor($w,$h);

$scale_w=$src_w/$w;

$scale_h=$src_h/$h;

if($scale_w>$scale_h){

$src_w=$scale_h*$w;

}else{

$src_h=$scale_w*$h;

}

imagecopyresampled($dst_im,$src_im,0,0,0,0,$w,$h,$src_w,$src_h);

switch($src_type){

case?1:imagegif($dst_im,$dst_path,80);break;

case?2:imagejpeg($dst_im,$dst_path,80);break;

case?3:imagepng($dst_im,$dst_path,80);break;

}

imagedestroy($dst_im);

imagedestroy($src_im);

}

?>spa

函數共有4個參數,分別是你想生成的縮略圖的寬度、高度、存儲的路徑以及大圖的文件地址(能夠是URL地址^_^)code

調用方式如:zoom_image(100,100,"abc_small.jpg","abc_big.jpg"),調用無返回,直接將處理后的小圖存放在指定路徑下。blog

//生成縮略圖(帶裁切)圖片

function thum_img($img,$small_img){get

$thumb = imagecreatetruecolor(100, 100);博客

$bg = imagecolorallocate($thumb, 255, 255, 255);產品

imagefilledrectangle($thumb, 0, 0, 100, 100, $bg);

$i = 0;

$j1 = $j2 = 190;

$imgarr = getimagesize($img);

if($imgarr['0']>$imgarr['1']){

$j1 = $imgarr['0']/($imgarr['1']/$j2);

$i = ceil(($j2-$j1)/2);

}elseif($imgarr['0']<=$imgarr['1']){

$j2 = $imgarr['1']/($imgarr['0']/$j2);

}

if($imgarr['mime']=='image/gif'){

$source = imagecreatefromgif($img);

}elseif($imgarr['mime']=='image/jpeg'){

$source = imagecreatefromjpeg($img);

}elseif($imgarr['mime']=='image/png'){

$source = imagecreatefrompng($img);

}elseif($imgarr['mime']=='image/bmp'){

$source = imagecreatefromwbmp($img);

}

imagecopyresampled($thumb, $source, $i, 0, 0, 0, $j1, $j2, $imgarr[0], $imgarr[1]);

return imagejpeg($thumb,$small_img);

}

總結

以上是生活随笔為你收集整理的php 缩略图 等比例 不失真,PHP自适应宽高度等比例缩略图函数 (无裁切)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。