Home  >  Article  >  Backend Development  >  PHP code for proportional scaling of uploaded image thumbnails

PHP code for proportional scaling of uploaded image thumbnails

WBOY
WBOYOriginal
2016-07-25 08:52:161050browse
  1. /**
  2. * *
  3. *Congruent scaling
  4. * @param unknown_type $srcImage source image path
  5. * @param unknown_type $toFile target image path
  6. * @param unknown_type $maxWidth maximum width
  7. * @param unknown_type $maxHeight maximum height
  8. * @param unknown_type $imgQuality image quality
  9. * @return unknown
  10. */
  11. function resize($srcImage,$toFile,$maxWidth = 100,$maxHeight = 100,$imgQuality=100)
  12. {
  13. list($width, $height, $type, $attr) = getimagesize($srcImage);
  14. if($width < $maxWidth || $height < $maxHeight) return ;
  15. switch ($type) {
  16. case 1: $img = imagecreatefromgif($srcImage); break;
  17. case 2: $img = imagecreatefromjpeg($srcImage); break;
  18. case 3: $img = imagecreatefrompng($srcImage); break;
  19. }
  20. $scale = min($maxWidth/$width, $maxHeight/$height); //求出绽放比例
  21. if($scale < 1) {
  22. $newWidth = floor($scale*$width);
  23. $newHeight = floor($scale*$height);
  24. $newImg = imagecreatetruecolor($newWidth, $newHeight);
  25. imagecopyresampled($newImg, $img, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height);
  26. $newName = "";
  27. $toFile = preg_replace("/(.gif|.jpg|.jpeg|.png)/i","",$toFile);
  28. switch($type) {
  29. case 1: if(imagegif($newImg, "$toFile$newName.gif", $imgQuality))
  30. return "$newName.gif"; break;
  31. case 2: if(imagejpeg($newImg, "$toFile$newName.jpg", $imgQuality))
  32. return "$newName.jpg"; break;
  33. case 3: if(imagepng($newImg, "$toFile$newName.png", $imgQuality))
  34. return "$newName.png"; break;
  35. default: if(imagejpeg($newImg, "$toFile$newName.jpg", $imgQuality))
  36. return "$newName.jpg"; break;
  37. }
  38. imagedestroy($newImg);
  39. }
  40. imagedestroy($img);
  41. return false;
  42. }
复制代码


Statement:
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