>백엔드 개발 >PHP 튜토리얼 >PHP 썸네일 코드, imagecopyresampled 함수가 썸네일을 생성합니다.

PHP 썸네일 코드, imagecopyresampled 함수가 썸네일을 생성합니다.

WBOY
WBOY원래의
2016-07-25 08:51:29838검색
  1. 함수 CreateImage($SrcImageUrl, $DirImageUrl, $Width, $Height)

  2. {
  3. $img;
  4. $srcw;
  5. $new_width;
  6. $srch;
  7. $new_height;
  8. // 구조 유형
  9. $type = substr(strrchr($SrcImageUrl, "."), 1);
  10. // 내부 포트
  11. if($type == "jpg")
  12. $img = imagecreatefromjpeg($SrcImageUrl);
  13. if($type == "gif")
  14. $img = imagecreatefromgif($SrcImageUrl);
  15. if($type == "png")
  16. $img = imagecreatefrompng($SrcImageUrl);

    srch = 이미지 ( $ img )
  17. {
  18. $new_width = $Width;
  19. $new_height=$srch*($Width/$srcw); srcw ;
  20. $new_height = $srch;
  21. }
  22. }
  23. else
  24. {
  25. if ($srch > $Height)
  26. {
  27. $new_height = $ 높이
  28. $new_width = $srcw *($Height / $srch) 🎜>}
  29. }
  30. $new_image = imagecreatetruecolor($new_width, $new_height); $ new_width , $ new_height , $ srcw , $ srch );

  31. }

  32. 소개
  33. 3. 개선된 코드:

    1. /*

    2. *$o_photo 원본 이미지 경로

    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); ;/p>

    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. }

    19. if($newheight>$height){

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

    21. $newheight=$height;

    22. //썸네일 이미지

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

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

    25. imagejpeg($new_img , $d_photo);

    26. imagedestroy($new_img);

    27. }else{//원본 이미지의 너비와 높이가 지정된 크기보다 큽니다. 압축 후 자르기

    28. if($o_height*$width/$o_width>$height){//높이가 너비보다 큰 경우 먼저 너비가 지정된 것과 같은지 확인하세요. 지정한 후 확인< /p>

    29. $newwidth=$width;

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

    31. $x=0;

    32. $y=($newheight-$height)/2;

    33. } else{ //그렇지 않으면 높이가 지정된 것과 동일하도록 결정합니다. 너비는 적응형

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

    35. < p>$newheight=$height ;

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

    37. $y=0;

    38. }

    39. //썸네일 이미지

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

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

    42. imagejpeg($new_img , $d_photo);

    43. imagedestroy($new_img);

    44. $temp_img = imagecreatefromjpeg($ d_photo);< /p>

    45. $o_width = Imagesx($temp_img); //썸네일 너비 가져오기

    46. $o_height = Imagesy($temp_img); //썸네일 너비 가져오기 썸네일 높이

    47. //이미지 자르기

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

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

    50. imagedestroy($new_imgx);

    51. }
    52. }
    53. ?>

    코드 복사


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.