Bilder av Høy kvalitet tar tid å laste på nettsiden, avhengig av antall bilder.
du kan opprette flere størrelser av bildefilen når du laster opp og bruke lav og høy kvalitet bilder når det er nødvendig.
når du reduserer en bildestørrelse, reduseres også kvaliteten.
Det beste eksempelet På Dette Er WordPress, når en bildefil lastes opp, vil den generere en annen størrelse på filen. Disse bildene vil bruke i temaet i henhold til kravet.
i denne opplæringen viser jeg hvordan du kan komprimere bildestørrelse mens du laster opp MED PHP.
Innhold
- HTML
- PHP
- Konklusjon
1. HTML
Opprett et <input type='file'>
– element i <form>
og send-knappen.
Fullført Kode
<form method='post' action='' enctype='multipart/form-data'> <input type='file' name='imagefile' > <input type='submit' value='Upload' name='upload'> </form>
2. PHP
Opprett en images
katalog for å lagre bildefiler.
Tilpasset Funksjon
Opprett en compressImage()
funksjon for å komprimere JPEG -, PNG-og GIF-bilder.
funksjonen tar 3 parametere –
1. Kilde
2. Destinasjon
3. Filkvalitet
Ring imagecreatefromjpeg($source)
, imagecreatefromgif($source)
og imagecreatefrompng($source)
for å opprette et nytt bilde i henhold til $info
– verdien.
Utfør imagejpeg()
metode for å lagre bildet til målet. Her er den tredje parameteren quality
valgfri. Det tar verdi fra 0 – 100 og standardverdien er 75.
Skjema send
Sett plassering til images
katalog og sjekk filtype. Hvis det er gyldig, ring compressImage()
– funksjonen der pass $_FILES
, $location
og 60
.
Fullført 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. Konklusjon
i eksemplet lagret jeg bare det komprimerte bildet, ikke originalstørrelsen. Du kan lagre både versjonen av bildene mens du laster opp.
Juster bildekvaliteten når du reduserer størrelsen.
hvis du fant denne opplæringen nyttig så ikke glem å dele.