ホームページ  >  記事  >  バックエンド開発  >  アップロードされた画像のサムネイルを比例的に拡大縮小するための PHP コード

アップロードされた画像のサムネイルを比例的に拡大縮小するための PHP コード

WBOY
WBOYオリジナル
2016-07-25 08:52:161054ブラウズ
  1. /**
  2. * *
  3. *合同スケーリング
  4. * @paramunknown_type $srcImageソース画像パス
  5. * @paramunknown_type $toFileターゲット画像パス
  6. * @paramunknown_type $maxWidth 最大幅
  7. * @paramknown_type $maxHeight 最大高さ
  8. * @paramknown_type $imgQuality 画質
  9. * @return 不明
  10. */
  11. 関数リサイズ($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. ケース 1: $img = imagecreatefromgif($srcImage);壊す;
  17. ケース 2: $img = imagecreatefromjpeg($srcImage);壊す;
  18. ケース 3: $img = imagecreatefrompng($srcImage);壊す;
  19. }
  20. $scale = min($maxWidth/$width, $maxHeight/$height); //求出绽放比
  21. if($scale $newWidth = Floor($scale*$width);
  22. $newHeight = フロア($scale*$height);
  23. $newImg = imagecreatetruecolor($newWidth, $newHeight);
  24. imagecopyresampled($newImg, $img, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height);
  25. $newName = "";
  26. $toFile = preg_replace("/(.gif|.jpg|.jpeg|.png)/i","",$toFile);
  27. switch($type) {
  28. ケース 1: if(imagegif($newImg, "$toFile$newName.gif", $imgQuality))
  29. return "$newName.gif";壊す;
  30. ケース 2: if(imagejpeg($newImg, "$toFile$newName.jpg", $imgQuality))
  31. return "$newName.jpg";壊す;
  32. ケース 3: if(imagepng($newImg, "$toFile$newName.png", $imgQuality))
  33. return "$newName.png";壊す;
  34. デフォルト: if(imagejpeg($newImg, "$toFile$newName.jpg", $imgQuality))
  35. return "$newName.jpg";壊す;
  36. }
  37. imagedestroy($newImg);
  38. }
  39. imagedestroy($img);
  40. false を返します。
  41. }
复制代


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。