PHP gd 라이브러리는 이미지 크기 자르기 및 크기 조정을 구현합니다.

WBOY
풀어 주다: 2016-07-25 08:51:47
원래의
2098명이 탐색했습니다.
  1. //图片裁剪、缩放函数
  2. //$filepath图片路径,$percent缩放百分比
  3. function imagepress($filepath,$percent='0.5'){
  4. // 图片类型
  5. header('Content-Type: image/jpeg');
  6. // 获得新的图片大小
  7. list($width, $height) = getimagesize($filepath);
  8. $new_width = $width * $percent;
  9. $new_height = $height * $percent;
  10. // 重新取样
  11. $image_p = imagecreatetruecolor($new_width, $new_height);
  12. $image = imagecreatefromjpeg($filepath);
  13. imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
  14. // 输出
  15. return imagejpeg($image_p, null, 100);
  16. }
复制代码

原图: php gd库图片大小裁剪与缩放

效果图: PHP gd 라이브러리는 이미지 크기 자르기 및 크기 조정을 구현합니다.

例子:

  1. //$filepath图片路径,$new_width新的宽度,$new_height新的高度

  2. function imagepress($filepath, $new_width, $new_height)
  3. {
  4. $source_info = getimagesize($filepath);
  5. $source_width = $source_info[0];
  6. $source_height = $source_info[1];
  7. $source_mime = $source_info['mime'];
  8. $source_ratio = $source_height / $source_width;
  9. $target_ratio = $new_height / $new_width;
  10. // 源图过高

  11. if ($source_ratio > $target_ratio)
  12. {
  13. $cropped_width = $source_width;
  14. $cropped_height = $source_width * $target_ratio;
  15. $source_x = 0;
  16. $source_y = ($source_height - $cropped_height) / 2;
  17. }
  18. // 源图过宽
  19. elseif ($source_ratio {
  20. $cropped_width = $source_height / $target_ratio;
  21. $cropped_height = $source_height;
  22. $source_x = ($source_width - $cropped_width) / 2;
  23. $source_y = 0;
  24. }
  25. // 源图适中
  26. else
  27. {
  28. $cropped_width = $source_width;
  29. $cropped_height = $source_height;
  30. $source_x = 0;
  31. $source_y = 0;
  32. }
  33. switch ($source_mime)
  34. {
  35. case 'image/gif':
  36. $source_image = imagecreatefromgif($filepath);
  37. break;
  38. case 'image/jpeg':
  39. $source_image = imagecreatefromjpeg($filepath);
  40. break;
  41. case 'image/png':
  42. $source_image = imagecreatefrompng($filepath);
  43. break;
  44. default:
  45. return false;
  46. break;
  47. }
  48. $target_image = imagecreatetruecolor($new_width, $new_height);
  49. $cropped_image = imagecreatetruecolor($cropped_width, $cropped_height);
  50. // 裁剪
  51. imagecopy($cropped_image, $source_image, 0, 0, $source_x, $source_y, $cropped_width, $cropped_height);
  52. // 缩放
  53. imagecopyresampled($target_image, $cropped_image, 0, 0, 0, 0, $new_width, $new_height, $cropped_width, $cropped_height);
  54. header('Content-Type: image/jpeg');
  55. imagejpeg($target_image);
  56. imagedestroy($source_image);
  57. imagedestroy($target_image);
  58. imagedestroy($cropped_image);
  59. }
复制代码


원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!