php实现在服务器端调整图片大小的方法

这篇文章主要介绍了php实现在服务器端调整图片大小的方法,实例分析了imageResizer与loadimage操作图片的相关技巧,需要的朋友可以参考下

本文实例讲述了php实现在服务器端调整图片大小的方法。分享给大家供大家参考。具体分析如下:

在服务器端完成图片大小的调整,会比在浏览器的处理有很多的好处。

本文介绍了PHP如何在服务器端调整图片大小。

代码包括两部分:

① imageResizer() is used to process the image

② loadimage() inserts the image url in a simpler format

  1. <?php
  2. function imageResizer($url, $width, $height) {
  3. header('Content-type: image/jpeg');
  4. list($width_orig, $height_orig) = getimagesize($url);
  5. $ratio_orig = $width_orig/$height_orig;
  6. if ($width/$height > $ratio_orig) {
  7. $width = $height*$ratio_orig;
  8. } else {
  9. $height = $width/$ratio_orig;
  10. }
  11. // This resamples the image
  12. $image_p = imagecreatetruecolor($width, $height);
  13. $image = imagecreatefromjpeg($url);
  14. imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);
  15. // Output the image
  16. imagejpeg($image_p, null, 100);
  17. }
  18. //works with both POST and GET
  19. $method = $_SERVER['REQUEST_METHOD'];
  20. if ($method == 'GET') {
  21. imageResize($_GET['url'], $_GET['w'], $_GET['h']);
  22. } elseif ($method == 'POST') {
  23. imageResize($_POST['url'], $_POST['w'], $_POST['h']);
  24. }
  25. // makes the process simpler
  26. function loadImage($url, $width, $height){
  27. echo 'image.php?url=', urlencode($url) ,
  28. '&w=',$width,
  29. '&h=',$height;
  30. }
  31. ?>

用法:

  1. //Above code would be in a file called image.php.
  2. //Images would be displayed like this:
  3. <img src="<?php loadImage('image.jpg', 50, 50) ?>" alt="" />