wysokiej jakości obrazy wymagają czasu, aby załadować stronę internetową w zależności od liczby zdjęć.
możesz utworzyć wiele rozmiarów pliku obrazu podczas przesyłania i używać obrazów o niskiej i wysokiej jakości, gdy jest to wymagane.
zmniejszając rozmiar obrazu, zmniejsza się również jego jakość.
najlepszym tego przykładem jest WordPress, gdy plik obrazu zostanie przesłany, wygeneruje on Inny-Inny Rozmiar pliku. Te obrazy będą używane w motywie zgodnie z wymaganiami.
w tym samouczku pokazuję, jak można skompresować rozmiar obrazu podczas przesyłania za pomocą PHP.
zawartość
- HTML
- PHP
- wnioski
1. HTML
Utwórz element <input type='file'>
w <form>
i wyślij przycisk.
<form method='post' action='' enctype='multipart/form-data'> <input type='file' name='imagefile' > <input type='submit' value='Upload' name='upload'> </form>
2. PHP
Utwórz katalog images
do przechowywania plików obrazów.
funkcja Niestandardowa
Utwórz funkcję compressImage()
do kompresji obrazów JPEG, PNG i GIF.
funkcja przyjmuje 3 parametry –
1. Źródło
2. Miejsce przeznaczenia
3. Jakość pliku
zadzwoń do imagecreatefromjpeg($source)
, imagecreatefromgif($source)
i imagecreatefrompng($source)
, aby utworzyć nowy obraz zgodnie z wartością $info
.
wykonaj imagejpeg()
metodę przechowywania obrazu do miejsca docelowego. W tym przypadku trzeci parametr quality
jest opcjonalny. Przyjmuje wartość od 0 do 100, a wartością domyślną jest 75.
formularz wyślij
Ustaw lokalizację na images
katalog i sprawdź rozszerzenie pliku. Jeśli jest poprawny, to wywołaj funkcję compressImage()
, gdzie przekaż $_FILES
,$location
i 60
.
<?phpif(isset($_POST)){ // Getting file name $filename = $_FILES; // Valid extension $valid_ext = array('png','jpeg','jpg'); // Location $location = "images/".$filename; // file extension $file_extension = pathinfo($location, PATHINFO_EXTENSION); $file_extension = strtolower($file_extension); // Check extension if(in_array($file_extension,$valid_ext)){ // Compress Image compressImage($_FILES,$location,60); }else{ echo "Invalid file type."; }}// Compress imagefunction compressImage($source, $destination, $quality) { $info = getimagesize($source); if ($info == 'image/jpeg') $image = imagecreatefromjpeg($source); elseif ($info == 'image/gif') $image = imagecreatefromgif($source); elseif ($info == 'image/png') $image = imagecreatefrompng($source); imagejpeg($image, $destination, $quality);}?>
3. Wniosek
w przykładzie zapisałem tylko skompresowany obraz, a nie obraz o oryginalnym rozmiarze. Możesz przechowywać obie wersje obrazów podczas przesyłania.
Dostosuj jakość obrazu podczas zmniejszania rozmiaru.
jeśli uważasz, że ten samouczek jest pomocny, nie zapomnij udostępnić.