Jak komprimovat velikost obrázku při nahrávání pomocí PHP

vysoce kvalitní obrázky vyžadují čas načtení na webovou stránku v závislosti na počtu obrázků.

při nahrávání můžete vytvořit více velikostí obrazového souboru a v případě potřeby použít obrázky nízké a vysoké kvality.

při zmenšení velikosti obrazu pak také snižuje jeho kvalitu.

nejlepším příkladem je WordPress, kdykoli je nahrán obrazový soubor, vygeneruje jinou velikost souboru. Tyto obrázky budou použity v tématu podle požadavku.

v tomto tutoriálu vám ukážu, jak můžete komprimovat velikost obrázku při nahrávání pomocí PHP.

 Jak komprimovat velikost obrázku při nahrávání pomocí PHP

obsah

  1. HTML
  2. PHP
  3. závěr

1. HTML

Vytvořte prvek <input type='file'> v <form> a odešlete tlačítko.

Vyplněný 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

vytvořte adresář images pro ukládání obrazových souborů.

vlastní funkce

Vytvořte funkci compressImage() pro kompresi obrázků JPEG, PNG a GIF.

funkce má 3 parametry –
1. Zdroj
2. Cíl
3. Kvalita souboru

voláním imagecreatefromjpeg($source), imagecreatefromgif($source) a imagecreatefrompng($source) vytvořte nový obrázek podle hodnoty $info.

spusťte metodu imagejpeg() pro uložení obrázku do cíle. Zde je třetí parametr quality volitelný. Trvá hodnotu od 0-100 a výchozí hodnota je 75.

formulář odeslat

Nastavte umístění na images adresář a zkontrolujte příponu souboru. Pokud je platný, pak volejte compressImage() funkci, kde projít $_FILES,$location a 60.

Vyplněný 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. Závěr

v příkladu jsem uložil pouze komprimovaný obrázek, nikoli obrázek původní velikosti. Při nahrávání můžete uložit obě verze obrázků.

upravte kvalitu obrazu při zmenšení velikosti.

pokud vám tento tutoriál připadá užitečný, nezapomeňte jej sdílet.

Write a Comment

Vaše e-mailová adresa nebude zveřejněna.