imagens de alta qualidade levam tempo para carregar na página da web, dependendo do número de imagens.
você pode criar vários tamanhos do arquivo de imagem ao fazer o upload e usar as imagens de baixa e alta qualidade quando necessário.
ao reduzir o tamanho de uma imagem, também diminui sua qualidade.
o melhor exemplo disso é o WordPress, sempre que um arquivo de imagem é carregado, ele gerará um tamanho diferente do arquivo. Essas imagens serão usadas no tema de acordo com a exigência.
neste tutorial, mostro como você pode compactar o tamanho da imagem durante o upload com PHP.
Conteúdo
- HTML
- PHP
- Conclusão
1. HTML
crie um elemento <input type='file'>
em <form>
e envie o botão.
Código Concluído
<form method='post' action='' enctype='multipart/form-data'> <input type='file' name='imagefile' > <input type='submit' value='Upload' name='upload'> </form>
2. PHP
crie um diretório images
para armazenar arquivos de imagem.
função personalizada
crie uma função compressImage()
para compactar imagens JPEG, PNG e GIF.
a função leva 3 parâmetros –
1. Fonte
2. Destino
3. Qualidade do arquivo
ligue para imagecreatefromjpeg($source)
, imagecreatefromgif($source)
e imagecreatefrompng($source)
para criar uma nova imagem de acordo com o valor $info
.
Execute imagejpeg()
método para armazenar a imagem para o destino. Aqui, o terceiro parâmetro quality
é opcional. Leva valor de 0-100 e o valor padrão é 75.
formulário enviar
Definir localização para images
diretório e verificar a extensão do arquivo. Se for válido, chame a função compressImage()
onde passe $_FILES
, $location
e 60
.
Código Concluído
<?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. Conclusão
no exemplo, armazenei apenas a imagem compactada, não a imagem de tamanho original. Você pode armazenar a versão das imagens durante o upload.
ajuste a qualidade da imagem ao reduzir o tamanho.
se você achou este tutorial útil, não se esqueça de compartilhar.