a kiváló minőségű képek betöltése időbe telik a weboldalon a képek számától függően.
feltöltéskor többféle méretű képfájlt hozhat létre, és szükség esetén használhatja a gyenge és jó minőségű képeket.
ha egy kép méretét csökkenti, akkor a minőségét is csökkenti.
a legjobb példa erre a WordPress, amikor egy képfájlt feltöltenek, akkor más-más méretű fájlt generál. Ezek a képek fogják használni a téma szerint követelmény.
ebben az oktatóanyagban bemutatom, hogyan lehet tömöríteni a képméretet PHP-vel történő feltöltés közben.
tartalom
- HTML
- PHP
- következtetés
1. HTML
hozzon létre egy <input type='file'>
elemet a <form>
– ben és küldje el a gombot.
Kitöltött Kód
<form method='post' action='' enctype='multipart/form-data'> <input type='file' name='imagefile' > <input type='submit' value='Upload' name='upload'> </form>
2. PHP
hozzon létre egy images
könyvtárat a képfájlok tárolására.
egyéni funkció
hozzon létre egy compressImage()
funkciót a JPEG, PNG és GIF képek tömörítéséhez.
a funkció 3 paramétert vesz igénybe –
1. Forrás
2. Rendeltetési hely
3. Fájlminőség
hívja a imagecreatefromjpeg($source)
, imagecreatefromgif($source)
és imagecreatefrompng($source)
parancsot egy új kép létrehozásához a $info
értéknek megfelelően.
Execute imagejpeg()
módszer a kép tárolására a rendeltetési helyre. Itt a harmadik paraméter quality
opcionális. Az érték 0 – tól 100-ig terjed, az alapértelmezett érték pedig 75.
űrlap elküldése
állítsa be a helyet images
könyvtárba, és ellenőrizze a fájlkiterjesztést. Ha ez érvényes, akkor hívja compressImage()
függvény, ahol pass $_FILES
,$location
, és 60
.
Kitöltött Kód
<?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. Következtetés
a példában csak a tömörített képet tároltam, az eredeti méretű képet nem. A képek mindkét verzióját feltöltheti feltöltés közben.
állítsa be a képminőséget a méret csökkentésekor.
ha hasznosnak találta ezt az oktatóanyagot, ne felejtse el megosztani.