php動態處理圖片後輸出顯示

來源:互聯網
上載者:User
php動態改變圖片尺寸後輸出,輸出圖片時使用下面的地址:
image_resize.php?img=image.jpg&w=150&h=150&constrain=1
w和h為要顯示的尺寸
  1. header ("Content-type: image/jpeg");
  2. /*
  3. JPEG / PNG Image Resizer
  4. Parameters (passed via URL):
  5. img = path / url of jpeg or png image file
  6. percent = if this is defined, image is resized by it's
  7. value in percent (i.e. 50 to divide by 50 percent)
  8. w = image width
  9. h = image height
  10. constrain = if this is parameter is passed and w and h are set
  11. to a size value then the size of the resulting image
  12. is constrained by whichever dimension is smaller
  13. Requires the PHP GD Extension
  14. Outputs the resulting image in JPEG Format
  15. By: Michael John G. Lopez - www.sydel.net
  16. Filename : imgsize.php
  17. */
  18. $img = $_GET['img'];
  19. $percent = $_GET['percent'];
  20. $constrain = $_GET['constrain'];
  21. $w = $_GET['w'];
  22. $h = $_GET['h'];
  23. // get image size of img
  24. $x = @getimagesize($img);
  25. // image width
  26. $sw = $x[0];
  27. // image height
  28. $sh = $x[1];
  29. if ($percent > 0) {
  30. // calculate resized height and width if percent is defined
  31. $percent = $percent * 0.01;
  32. $w = $sw * $percent;
  33. $h = $sh * $percent;
  34. } else {
  35. if (isset ($w) AND !isset ($h)) {
  36. // autocompute height if only width is set
  37. $h = (100 / ($sw / $w)) * .01;
  38. $h = @round ($sh * $h);
  39. } elseif (isset ($h) AND !isset ($w)) {
  40. // autocompute width if only height is set
  41. $w = (100 / ($sh / $h)) * .01;
  42. $w = @round ($sw * $w);
  43. } elseif (isset ($h) AND isset ($w) AND isset ($constrain)) {
  44. // get the smaller resulting image dimension if both height
  45. // and width are set and $constrain is also set
  46. $hx = (100 / ($sw / $w)) * .01;
  47. $hx = @round ($sh * $hx);
  48. $wx = (100 / ($sh / $h)) * .01;
  49. $wx = @round ($sw * $wx);
  50. if ($hx < $h) {
  51. $h = (100 / ($sw / $w)) * .01;
  52. $h = @round ($sh * $h);
  53. } else {
  54. $w = (100 / ($sh / $h)) * .01;
  55. $w = @round ($sw * $w);
  56. }
  57. }
  58. }
  59. $im = @ImageCreateFromJPEG ($img) or // Read JPEG Image
  60. $im = @ImageCreateFromPNG ($img) or // or PNG Image
  61. $im = @ImageCreateFromGIF ($img) or // or GIF Image
  62. $im = false; // If image is not JPEG, PNG, or GIF
  63. if (!$im) {
  64. // We get errors from PHP's ImageCreate functions...
  65. // So let's echo back the contents of the actual image.
  66. readfile ($img);
  67. } else {
  68. // Create the resized image destination
  69. $thumb = @ImageCreateTrueColor ($w, $h);
  70. // Copy from image source, resize it, and paste to image destination
  71. @ImageCopyResampled ($thumb, $im, 0, 0, 0, 0, $w, $h, $sw, $sh);
  72. // Output resized image
  73. @ImageJPEG ($thumb);
  74. }
  75. ?>
複製代碼
php
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.