Hoe de afbeeldingsgrootte te comprimeren tijdens het uploaden met PHP

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.

hoe de afbeeldingsgrootte te comprimeren tijdens het uploaden met PHP

inhoud

  1. HTML
  2. PHP
  3. 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.

Write a Comment

Het e-mailadres wordt niet gepubliceerd.