afbeeldingen van hoge kwaliteit nemen de tijd om te laden op de webpagina, afhankelijk van het aantal afbeeldingen.
u kunt bij het uploaden meerdere groottes van het afbeeldingsbestand maken en indien nodig de afbeeldingen van lage en hoge kwaliteit gebruiken.
bij het verkleinen van een afbeeldingsgrootte vermindert het ook de kwaliteit.
het beste voorbeeld hiervan is WordPress, wanneer een beeldbestand wordt geüpload dan zal het een verschillende-verschillende grootte van het bestand te genereren. Die beelden zullen gebruiken in het thema volgens vereiste.
in deze tutorial laat ik zien hoe je de afbeeldingsgrootte kunt comprimeren tijdens het uploaden met PHP.
inhoud
- HTML
- PHP
- conclusie
1. HTML
Maak een <input type='file'>
element aan in <form>
en verstuur knop.
Voltooide Code
<form method='post' action='' enctype='multipart/form-data'> <input type='file' name='imagefile' > <input type='submit' value='Upload' name='upload'> </form>
2. PHP
Maak een images
map aan om afbeeldingsbestanden op te slaan.
aangepaste functie
Maak een compressImage()
functie om JPEG -, PNG-en GIF-afbeeldingen te comprimeren.
de functie neemt 3 parameters –
1. Bron
2. Bestemming
3. Bestandskwaliteit
aanroep imagecreatefromjpeg($source)
, imagecreatefromgif($source)
en imagecreatefrompng($source)
om een nieuwe afbeelding aan te maken volgens de waarde $info
.
Voer de methode imagejpeg()
uit om de afbeelding naar de bestemming op te slaan. Hier is de derde parameter quality
optioneel. Het neemt waarde van 0-100 en de standaardwaarde is 75.
Form submit
locatie instellen op images
map en bestandsextensie controleren. Als het geldig is, roep dan de functie compressImage()
aan waarbij pass $_FILES
,$location
, en 60
.
Voltooide Code
<?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. Conclusie
in het voorbeeld heb ik alleen de gecomprimeerde afbeelding opgeslagen, niet de oorspronkelijke grootte. U kunt zowel de versie van afbeeldingen opslaan tijdens het uploaden.
Pas de beeldkwaliteit aan bij het verkleinen.
als u deze tutorial nuttig vond, vergeet dan niet te delen.