国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

php生成縮略圖自動填充白邊例子

2024-09-04 11:44:37
字體:
來源:轉載
供稿:網友

今天看到這篇文章想我想到了幾年前幫助一個客戶做一個網站,那種要求里面就有一個寬度不足夠時需要自動給圖片生成白邊了,下面我看到一個不錯的例子整理一下給各位.

網站上傳圖片后生成縮略圖應該是非常常用的功能了,通常來講為了網站顯示美觀,縮略圖會是同樣尺寸,比如最近筆者做的一個站點,縮略圖規格要求都是160×120,但是如果上傳的圖片比例和縮略圖不一致,直接縮放的話就會導致圖片變形,這樣體驗肯定就不好了,于是筆者想了一個折中的辦法,就是縮小后添加白邊的方法.

下面簡單說下思路,先將源圖按比例生成縮略圖,并且寬不大于160、高不大于120,例如上圖會先生成160×98的縮略圖,新建一個160×120的白色背景圖片,將上一步生成的縮略圖居中放置到這張圖片上就OK了,代碼如下:

  1. //源圖的路徑,可以是本地文件,也可以是遠程圖片 
  2. $src_path = '1.jpg'
  3. //最終保存圖片的寬 
  4. $width = 160; 
  5. //最終保存圖片的高 
  6. $height = 120; 
  7.  
  8. //源圖對象 
  9. $src_image = imagecreatefromstring(file_get_contents($src_path)); 
  10. $src_width = imagesx($src_image); 
  11. $src_height = imagesy($src_image); 
  12.  
  13. //生成等比例的縮略圖 
  14. $tmp_image_width = 0; 
  15. $tmp_image_height = 0; 
  16. if ($src_width / $src_height >= $width / $height) { 
  17.     $tmp_image_width = $width
  18.     $tmp_image_height = round($tmp_image_width * $src_height / $src_width); 
  19. else { 
  20.     $tmp_image_height = $height
  21.     $tmp_image_width = round($tmp_image_height * $src_width / $src_height); 
  22.  
  23. $tmpImage = imagecreatetruecolor($tmp_image_width$tmp_image_height); 
  24. imagecopyresampled($tmpImage$src_image, 0, 0, 0, 0, $tmp_image_width$tmp_image_height$src_width$src_height); 
  25.  
  26. //添加白邊 
  27. $final_image = imagecreatetruecolor($width$height); 
  28. $color = imagecolorallocate($final_image, 255, 255, 255); 
  29. imagefill($final_image, 0, 0, $color); 
  30. //開源軟件:Vevb.com 
  31. $x = round(($width - $tmp_image_width) / 2); 
  32. $y = round(($height - $tmp_image_height) / 2); 
  33.  
  34. imagecopy($final_image$tmpImage$x$y, 0, 0, $tmp_image_width$tmp_image_height); 
  35.  
  36. //輸出圖片 
  37. header('Content-Type: image/jpeg'); 
  38. imagejpeg($final_image);

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 通道| 天峻县| 黔南| 闻喜县| 宜川县| 岢岚县| 马公市| 都昌县| 咸宁市| 班戈县| 六安市| 蕉岭县| 广灵县| 鹤岗市| 景洪市| 峨眉山市| 大化| 始兴县| 长葛市| 明溪县| 盐山县| 二连浩特市| 太仓市| 西乌珠穆沁旗| 大同市| 衡阳市| 个旧市| 天峻县| 大城县| 惠东县| 全南县| 扎兰屯市| 宁海县| 当涂县| 黄石市| 湄潭县| 农安县| 邵阳县| 邵阳县| 惠东县| 凤山县|