PHP gd library implements image size cropping and scaling

WBOY
Release: 2016-07-25 08:51:47
Original
2136 people have browsed it
  1. //Image cropping and scaling functions
  2. //$filepath image path, $percent scaling percentage
  3. function imagepress($filepath,$percent='0.5'){
  4. //Image type
  5. header('Content- Type: image/jpeg');
  6. // Get the new image size
  7. list($width, $height) = getimagesize($filepath);
  8. $new_width = $width * $percent;
  9. $new_height = $height * $ percent;
  10. // Resampling
  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. // Output
  15. return imagejpeg($image_p, null, 100);
  16. }
Copy code

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

Rendering: PHP gd library implements image size cropping and scaling

Example:

  1. //$filepath image path, $new_width new width, $new_height 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. // The source image is too high

  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. // The source image is too wide
  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. // The source image is moderate
  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. // Cropped
  51. imagecopy($cropped_image, $source_image, 0, 0, $source_x, $source_y , $cropped_width, $cropped_height);
  52. // Scaling
  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. }
Copy code


source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template