国产探花免费观看_亚洲丰满少妇自慰呻吟_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);

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 金堂县| 乾安县| 兴安县| 深泽县| 镇原县| 石屏县| 花垣县| 阿拉善右旗| 威海市| 富顺县| 壶关县| 盐城市| 日喀则市| 房山区| 西青区| 大竹县| 中牟县| 莱西市| 读书| 安西县| 同仁县| 永春县| 讷河市| 鄂州市| 定兴县| 绥宁县| 丹凤县| 汉沽区| 玉屏| 博野县| 阳朔县| 津南区| 广安市| 嘉鱼县| 朔州市| 临颍县| 宕昌县| 正定县| 台湾省| 塔城市| 尉犁县|