Zmiana rozmiaru obrazu po stronie serwera - CSS-Tricks

Anonim

Kod używa PHP do zmiany rozmiaru obrazu (obecnie tylko jpeg.webp). Korzystając z tej metody, obraz o zmienionym rozmiarze ma znacznie lepszą jakość niż zmiana rozmiaru po stronie przeglądarki. Rozmiar pliku nowego zmniejszonego obrazu jest również mniejszy (szybsze do pobrania).

Kod składa się z dwóch części:

  • imageResizer () służy do przetwarzania obrazu
  • loadimage () wstawia adres URL obrazu w prostszym formacie
 $ratio_orig) ( $width = $height*$ratio_orig; ) else ( $height = $width/$ratio_orig; ) // This resamples the image $image_p = imagecreatetruecolor($width, $height); $image = imagecreatefromjpeg.webp($url); imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig); // Output the image imagejpeg.webp($image_p, null, 100); ) //works with both POST and GET $method = $_SERVER('REQUEST_METHOD'); if ($method == 'GET') ( imageResize($_GET('url'), $_GET('w'), $_GET('h')); ) elseif ($method == 'POST') ( imageResize($_POST('url'), $_POST('w'), $_POST('h')); ) // makes the process simpler function loadImage($url, $width, $height)( echo 'image.php?url=', urlencode($url) , '&w=',$width, '&h=',$height; ) ?>

Stosowanie

Powyższy kod znajdowałby się w pliku o nazwie image.php.

Obrazy byłyby wyświetlane w następujący sposób: