PHP等比例縮放圖片產生縮圖函數的例子

來源:互聯網
上載者:User
  1. /*
  2. *@im //需要縮放的圖片資源
  3. *@filetype //製作的縮圖檔案類型
  4. *@dstimW //縮放的圖片的寬度
  5. *@dstimH //縮放的圖片的高度
  6. *@thumbname //縮圖檔案名稱字
  7. // WWW.JBXUE.COM
  8. function makethumb($im,$dstimW,$dstimH,$thumbname ,$filetype){
  9. //擷取im的寬度和高度
  10. $pic_W=imagesx($im);
  11. $pic_H=imagesy($im);
  12. $arr = array();
  13. swith($filetype){
  14. case 'jpg':
  15. $arr[$filetype]="imagejpeg";
  16. break;
  17. case 'png';
  18. $arr[$filetype]="imagepng";
  19. break;
  20. case 'jif';
  21. $arr[$filetype]="imagegif";
  22. }
  23. if(($dstimgW && $dstimgW<$pic_W) || ($dstimgH && $dstimgH<$pic_H) ){
  24. if($dstimgW && $dstimgW<$pic_W){
  25. $dsimgWratio = $dstimgW / $pic_w;
  26. $resizereagW =true;
  27. }
  28. if($dstimgH && $ $dstimgH <$pic_H){
  29. $dsimgHratio = $dstimgH/$pic_H;
  30. $resizerreagH =true;
  31. }
  32. //縮圖寬高和原圖寬高比,取最小的那個
  33. if($resizereagW && $resizerreagH){
  34. if($dsimgWratio<$dsimgHratio)
  35. $radio = $dsimgWratio;
  36. else
  37. $radio = $dsimgHratio;
  38. }
  39. if($resizereagW && !$resizerreagH ){
  40. $radio = $dsimgWratio;
  41. }
  42. if(!$resizereagW && $resizerreagH){
  43. $radio = $dsimgHratio ;
  44. }
  45. $imgnewW = $pic_W * $radio;
  46. $imgnewH = $pic_H * $radio;
  47. if(function_exists("imgcopyresampled")){
  48. //建立目標資源畫布
  49. $dst = imagecreatetruecolor ($imgnewW, $imgnewH);
  50. imagecopyresampled ($dst,$im,0,0,0,0,$imgnewW,$imgnewH,$pic_W,$pic_H);
  51. }else{
  52. $dst=imagecreate($imgnewW, $imgnewH);
  53. imagecopyresized ($dst, $im,0,0,0,0,$imgnewW,$imgnewH,$imgnewH,$pic_W,$pic_H);
  54. }
  55. $arr[$filetype]($dst,$thumbname.".$filetype");
  56. imagedestroy ($dst);
  57. }else{//縮圖自身的寬和高已經大於了原圖的寬和高
  58. //則縮圖的寬和縮減的高就是原圖的寬和原圖的高
  59. $arr[$filetype]($im,$thumbname.".$filetype");
  60. imagedestroy();
  61. }
  62. }
  63. ?>
複製代碼
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.