使用PHP调整图像大小,支持PNG,JPG

前端之家收集整理的这篇文章主要介绍了使用PHP调整图像大小,支持PNG,JPG前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用这个类:
  1. class ImgResizer {
  2.  
  3. function ImgResizer($originalFile = '$newName') {
  4. $this -> originalFile = $originalFile;
  5. }
  6. function resize($newWidth,$targetFile) {
  7. if (empty($newWidth) || empty($targetFile)) {
  8. return false;
  9. }
  10. $src = imagecreatefromjpeg($this -> originalFile);
  11. list($width,$height) = getimagesize($this -> originalFile);
  12. $newHeight = ($height / $width) * $newWidth;
  13. $tmp = imagecreatetruecolor($newWidth,$newHeight);
  14. imagecopyresampled($tmp,$src,$newWidth,$newHeight,$width,$height);
  15.  
  16. if (file_exists($targetFile)) {
  17. unlink($targetFile);
  18. }
  19. imagejpeg($tmp,$targetFile,95);
  20. }
  21.  
  22. }

哪个工作出色,但是用png失败,它创建一个调整大小的黑色图像.

有没有办法调整这个类来支持png图像?

  1. function resize($newWidth,$originalFile) {
  2.  
  3. $info = getimagesize($originalFile);
  4. $mime = $info['mime'];
  5.  
  6. switch ($mime) {
  7. case 'image/jpeg':
  8. $image_create_func = 'imagecreatefromjpeg';
  9. $image_save_func = 'imagejpeg';
  10. $new_image_ext = 'jpg';
  11. break;
  12.  
  13. case 'image/png':
  14. $image_create_func = 'imagecreatefrompng';
  15. $image_save_func = 'imagepng';
  16. $new_image_ext = 'png';
  17. break;
  18.  
  19. case 'image/gif':
  20. $image_create_func = 'imagecreatefromgif';
  21. $image_save_func = 'imagegif';
  22. $new_image_ext = 'gif';
  23. break;
  24.  
  25. default:
  26. throw new Exception('Unknown image type.');
  27. }
  28.  
  29. $img = $image_create_func($originalFile);
  30. list($width,$height) = getimagesize($originalFile);
  31.  
  32. $newHeight = ($height / $width) * $newWidth;
  33. $tmp = imagecreatetruecolor($newWidth,$img,$height);
  34.  
  35. if (file_exists($targetFile)) {
  36. unlink($targetFile);
  37. }
  38. $image_save_func($tmp,"$targetFile.$new_image_ext");
  39. }

猜你在找的PHP相关文章