Das Laden hochwertiger Bilder auf der Webseite dauert je nach Anzahl der Bilder einige Zeit.
Sie können beim Hochladen mehrere Größen der Bilddatei erstellen und bei Bedarf die Bilder in niedriger und hoher Qualität verwenden.
Wenn ein Bild verkleinert wird, verringert es auch seine Qualität.
Wenn eine Bilddatei hochgeladen wird, wird eine andere Größe der Datei generiert. Diese Bilder werden je nach Anforderung im Thema verwendet.
In diesem Tutorial zeige ich, wie Sie die Bildgröße beim Hochladen mit PHP komprimieren können.
Inhalt
- HTML
- PHP
- Fazit
1. HTML
Erstellen Sie ein <input type='file'>
-Element in <form>
und senden Sie die Schaltfläche.
Kompletter Code
<form method='post' action='' enctype='multipart/form-data'> <input type='file' name='imagefile' > <input type='submit' value='Upload' name='upload'> </form>
2. PHP
Erstellen Sie ein images
Verzeichnis zum Speichern von Bilddateien.
Benutzerdefinierte Funktion
Erstellen Sie eine compressImage()
-Funktion zum Komprimieren von JPEG-, PNG- und GIF-Bildern.
Die Funktion nimmt 3 Parameter –
1. Quelle
2. Ziel
3. Dateiqualität
Rufen Sie imagecreatefromjpeg($source)
, imagecreatefromgif($source)
und imagecreatefrompng($source)
auf, um ein neues Bild gemäß dem Wert $info
zu erstellen.
Führen Sie die imagejpeg()
-Methode aus, um das Bild im Ziel zu speichern. Hier ist der dritte Parameter quality
optional. Es nimmt Wert von 0 – 100 und der Standardwert ist 75.
Formular absenden
Legen Sie den Speicherort auf das Verzeichnis images
fest und überprüfen Sie die Dateierweiterung. Wenn es gültig ist, rufen Sie die Funktion compressImage()
auf, wobei $_FILES
, $location
und 60
übergeben werden.
Kompletter 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. Fazit
Im Beispiel habe ich nur das komprimierte Bild gespeichert, nicht das Bild in Originalgröße. Sie können sowohl die Version der Bilder speichern, während das Hochladen.
Passen Sie die Bildqualität beim Verkleinern an.
Wenn Sie dieses Tutorial hilfreich fanden, vergessen Sie nicht, es zu teilen.