billeder i høj kvalitet tager tid at indlæse på hjemmesiden afhængigt af antallet af billeder.
du kan oprette flere størrelser af billedfilen, når du uploader og bruger billeder af lav og høj kvalitet, når det kræves.
når du reducerer en billedstørrelse, nedsætter den også dens kvalitet.
når en billedfil uploades, vil den generere en anden størrelse af filen. Disse billeder vil bruge i temaet efter krav.
i denne vejledning viser jeg, hvordan du kan komprimere billedstørrelse, mens du uploader med PHP.
indhold
- HTML
- PHP
- konklusion
1. HTML
Opret et <input type='file'>
element i <form>
og send knap.
Afsluttet Kode
<form method='post' action='' enctype='multipart/form-data'> <input type='file' name='imagefile' > <input type='submit' value='Upload' name='upload'> </form>
2. PHP
Opret en images
mappe til at gemme billedfiler.
brugerdefineret funktion
Opret en compressImage()
funktion til komprimering af JPEG -, PNG-og GIF-billeder.
funktionen tager 3 parametre –
1. Kilde
2. Bestemmelsessted
3. Filkvalitet
Ring imagecreatefromjpeg($source)
, imagecreatefromgif($source)
og imagecreatefrompng($source)
for at oprette et nyt billede i henhold til $info
værdi.
Udfør imagejpeg()
metode til at gemme billedet til destinationen. Her er den tredje parameter quality
valgfri. Det tager værdi fra 0 – 100, og standardværdien er 75.
formular send
Indstil placering til images
mappe og tjek filtypen. Hvis det er gyldigt, så ring compressImage()
funktion, hvor pass $_FILES
,$location
og 60
.
Afsluttet Kode
<?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. Konklusion
i eksemplet lagrede jeg kun det komprimerede billede, ikke det originale størrelsesbillede. Du kan gemme både versionen af billeder, mens du uploader.
Juster billedkvaliteten, når du reducerer størrelsen.
hvis du fandt denne tutorial nyttig, så glem ikke at dele.