> 백엔드 개발 > PHP 튜토리얼 > 요청에 따라 썸네일 이미지를 생성하고 이를 Linux 이미지 서버에 저장하는 PHP 코드

요청에 따라 썸네일 이미지를 생성하고 이를 Linux 이미지 서버에 저장하는 PHP 코드

WBOY
풀어 주다: 2016-07-25 08:59:19
원래의
890명이 탐색했습니다.
  1. /**
  2. * 썸네일 이미지 Linux 이미지 서버
  3. * bbs.it-home.org 편집
  4. */
  5. $picID=$_GET['imgID']
  6. $picTypes= ".".$_GET['imgType'];
  7. $picWidth=$_GET['ImgWidth'];
  8. if($picID!="")
  9. {
  10. //요청은 다음과 같습니다. 작은 그림
  11. if($picWidth>0){
  12. //작은 그림이 존재하는 경우
  13. if(file_exists($picID."_".$picWidth.$picTypes))
  14. {
  15. outputImg($picID."_".$picWidth.$picTypes);
  16. }else
  17. {
  18. if(file_exists($picID."_0".$picTypes)){
  19. // 작은 그림이 없으면 직접 작은 그림을 생성하세요
  20. resizeImg($picID."_0".$picTypes,$picWidth,$picWidth,$picID."_".$picWidth.$picTypes)
  21. //출력
  22. outputImg($picID."_".$picWidth.$picTypes);
  23. }else
  24. {
  25. //대형 이미지가 없는 경우
  26. resizeImg(' noDefaultImage.gif',$picWidth ,$picWidth,noDefaultImage."_".$picWidth.".gif");
  27. //출력
  28. outputImg($picID."_".$picWidth.$picTypes) ;
  29. }
  30. }
  31. }
  32. //큰 이미지에 대한 파일이 존재하는지 확인
  33. if(file_exists($picID."_0".$picTypes))
  34. {
  35. $img_file = $picID."_0 ".$picTypes;
  36. outputImg($img_file)
  37. }
  38. else
  39. {
  40. //사진이 존재하지 않는 경우
  41. $ img_file = 'noDefaultImage.gif';
  42. outputImg($img_file);
  43. }
  44. }
  45. //이미지 출력
  46. function outputImg($img_file)
  47. {
  48. $fp = fopen($img_file, 'rb');
  49. $content = fread($fp, filesize($img_file)); //바이너리 데이터
  50. fclose($fp)
  51. header('Content- 유형: image/gif');
  52. echo $content
  53. }
  54. /**
  55. * 썸네일 생성
  56. * $srcName----원본 이미지 경로입니다.
  57. * $newWidth, $newHeight----각각 썸네일의 최대 너비와 높이
  58. * $newName- - --썸네일 파일 이름(경로 포함)
  59. * @param string $srcName
  60. * @param int $newWidth
  61. * @param int $newHeight
  62. * @param string $newName
  63. * viod 반환
  64. */
  65. function resizeImg($srcName,$newWidth,$newHeight,$newName="" )
  66. {
  67. if($ newName=="")
  68. {
  69. $nameArr=explode('.',$srcName)
  70. $expName=array_pop($nameArr); 🎜> $expName=$expName;
  71. array_push($nameArr,$expName)
  72. $newName = implode('.',$nameArr)
  73. }
  74. $info = ""
  75. $data = getimagesize($srcName,$ info);
  76. 스위치($data[2])
  77. {
  78. 사례 1:
  79. if(!function_exists("imagecreatefromgif")){
  80. echo "귀하의 GD 라이브러리는 GIF 형식의 사진을 사용할 수 없습니다. Jpeg 또는 PNG 형식을 사용하세요! return ";
  81. exit();
  82. }
  83. $im = ImageCreateFromGIF($srcName);
  84. break;
  85. 사례 2:
  86. if(!function_exists("imagecreatefromjpeg")) {
  87. echo "귀하의 GD 라이브러리는 jpeg 형식의 이미지를 사용할 수 없습니다. 다른 형식의 이미지를 사용하세요!返回";
  88. exit();
  89. }
  90. $im = ImageCreateFromJpeg($srcName);
  91. break;
  92. 사례 3:
  93. $im = ImageCreateFromPNG($srcName);
  94. 중단;
  95. }
  96. $srcW=ImageSX($im);
  97. $srcH=ImageSY($im)
  98. $newWidthH=$newWidth/$newHeight; $srcW/$srcH;
  99. if($newWidthH<=$srcWH){
  100. $ftoW=$newWidth;
  101. $ftoH=$ftoW*($srcH/$srcW)
  102. } 🎜> else{
  103. $ftoH=$newHeight;
  104. $ftoW=$ftoH*($srcW/$srcH)
  105. }
  106. if($srcW>$newWidth||$srcH>$ newHeight)
  107. {
  108. if(function_exists("imagecreatetruecolor"))
  109. {
  110. @$ni = ImageCreateTrueColor($ftoW,$ftoH);
  111. if($ni) ImageCopyResampled($ni,$im,0,0,0,0,$ftoW,$ftoH,$srcW,$srcH);
  112. else
  113. {
  114. $ni=ImageCreate($ftoW,$ftoH);
  115. ImageCopyReised($ni,$im,0,0,0,0,$ftoW,$ftoH,$srcW,$srcH);
  116. }
  117. }
  118. else
  119. {
  120. $ni=ImageCreate($ftoW,$ftoH);
  121. ImageCopyReised($ni,$im,0,0,0,0,$ftoW,$ftoH,$srcW,$srcH);
  122. }
  123. if(function_exists('imagejpeg')) ImageJpeg($ni,$newName);
  124. else ImagePNG($ni,$newName);
  125. ImageDestroy($ni);
  126. }
  127. ImageDestroy($im);
  128. }
  129. ?>
제제대码
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿