首頁  >  文章  >  後端開發  >  php縮圖程式碼,imagecopyresampled函數產生縮圖

php縮圖程式碼,imagecopyresampled函數產生縮圖

WBOY
WBOY原創
2016-07-25 08:51:29820瀏覽
  1. function CreateImage ( $ SrcImageUrl , $ DirImageUrl , $ Width , $ SrcImageUrl , $ DirImageUrl , $ Width , $ Height ) srcw >// 公鑰 $img = imagecreatefromjpeg($SrcImageUrl);

  2. if($type == "gif")
  3. $img = imagecreatefromgif($SrcImageUrl);
  4. if($type == "png")
  5. $img = imagecreatefrompng($SrcImageUrl); >$new_width = $Width;
  6. $new_height=$srch*($Width/$srcw); 🎜>if ($srch > $Height)
  7. {
  8. $new_height = $range
  9. ;
  10. ; $new_width = $srcw*($Height/$srch);
  11. $new_image = imagecreatetruecolor($new_width, $new_height); $new_width , $new_height , $srcw , $srch );

    3、改進後程式碼:

    1. /*

    2. *$o_photo 原圖路徑 p>

    3. *$d_photo 處理後圖片路徑

    4. *$width 定義寬

    5. *$height 定義高

    6. *呼叫方法cutphoto("test.jpg","temp.jpg",256,146);

    7. */

    8. function cutphoto( $o_photo,$d_photo,$width,$height){

    9. $temp_img = imagecreatefromjpeg($o_photo);

    10. $o_width = imagesx($temp_img) ; //取得原圖寬

    11. $o_height = imagesy($temp_img); //取得原圖高

    12. //判斷處理方法

    13. if($width>$o_width || $height>$o_height){//原圖寬或高比規定的尺寸小,進行壓縮

    14. $newwidth =$o_width;

    15. $newheight=$o_height;

    16. if($o_width>$width){

    17. $ newwidth=$width;

    18. $newheight=$o_height*$width/$o_width;

    19. }

    20. if( $newheight>$height){

    21. $newwidth=$newwidth*$height/$newheight;

    22. $newheight=$height;

    23. }

    24. //縮寫圖

    25. $new_img = imagecreatetruecolor($newwidth, $newheight);

    26. imagecopyresampled($new_img, $temp_img, 0, 0, 0, 0, $newwidth, $newheight, $o_width, $o_height);

    27. imagejpeg($new_img , $d_photo) ;

    28. imagedestroy($new_img);

    29. }else{//原圖寬與高都比規定尺寸大,進行壓縮後裁切

    30. if($o_height*$width/$o_width>$height){//先確定width與規定相同,如果height比規定大,則ok

    31. $ newwidth=$width;

    32. $newheight=$o_height*$width/$o_width;

    33. $x=0;

    34. $y=($newheight-$height)/2;
    35. }else{ //否則決定height與規定相同,width自適應

    36. $newwidth=$o_width*$height/$o_height;

    37. $newheight=$height;

    38. $x=($newwidth-$width)/2 ;

    39. $y=0;

    40. }

    41. //縮圖

    42. $new_img = imagecreatetruecolor($newwidth, $newheight);
    43. imagecopyresampled($new_img, $temp_img, 0, 0, 0, 0, $newwidth, $newheight, $o_width, $new o_height);

    44. imagejpeg($new_img , $d_photo);

    45. imagedestroy($new_img);

    46. $temp_img = imagecreatefromjpeg($d_photo);

    47. $o_width = imagesx($temp_img); //取得縮圖寬

    48. $o_height = imagesy($temp_img) ; //取得縮圖高

    49. //裁切圖片

    50. $new_imgx = imagecreatetruecolor($width,$height);

    51. imagecopyresampled($new_imgx,$temp_img,0,0,$x,$y,$width,$height,$width,$height);

    52. imagejpeg($new_imgx , $ d_photo);

    53. imagedestroy($new_imgx);

    54. }
    55. }
    56. ?>
    複製程式碼


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn