Hur man komprimerar Bildstorlek när du laddar upp med PHP

högkvalitativa bilder tar tid att ladda på webbsidan beroende på antalet bilder.

du kan skapa flera storlekar på bildfilen när du laddar upp och använda bilder av låg och hög kvalitet när det behövs.

när du minskar en bildstorlek minskar den också dess kvalitet.

det bästa exemplet på detta är WordPress, när en bildfil laddas upp kommer den att generera en annan-annan storlek på filen. Dessa bilder kommer att använda i temat enligt krav.

i denna handledning visar jag hur du kan komprimera bildstorlek medan du laddar upp med PHP.

 hur man komprimerar Bildstorlek när du laddar upp med PHP

innehåll

  1. HTML
  2. PHP
  3. slutsats

1. HTML

skapa ett <input type='file'> – element i <form> och skicka-knappen.

Slutförd Kod

<form method='post' action='' enctype='multipart/form-data'> <input type='file' name='imagefile' > <input type='submit' value='Upload' name='upload'> </form>

2. PHP

skapa en images katalog för att lagra bildfiler.

anpassad funktion

skapa en compressImage() – funktion för att komprimera JPEG -, PNG-och GIF-bilder.

funktionen tar 3 parametrar –
1. Källa
2. Destination
3. Filkvalitet

Ring imagecreatefromjpeg($source), imagecreatefromgif($source) och imagecreatefrompng($source) för att skapa en ny bild enligt $info värde.

kör imagejpeg() metod för att lagra bilden till destinationen. Här är den tredje parametern quality valfri. Det tar värde från 0 – 100 och standardvärdet är 75.

Form skicka

Ställ plats till images katalog och kontrollera filändelsen. Om det är giltigt, Ring compressImage()funktion där passera $_FILES,$locationoch 60.

Slutförd Kod

<?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. Slutsats

i exemplet lagrade jag bara den komprimerade bilden, inte den ursprungliga storleken. Du kan lagra både versionen av bilder medan du laddar upp.

justera bildkvaliteten när du minskar storleken.

om du tyckte att den här handledningen var till hjälp, glöm inte att dela.

Write a Comment

Din e-postadress kommer inte publiceras.