É possível usar a biblioteca GD para diminuir o tamanho da imagem e manter o mesmo local e nome do arquivo. Você pode ajustar o script anterior para fazer isso. Aqui está como você pode fazer:
<?php
// Diretório das imagens
$diretorioImagens = 'caminho/para/diretorio/imagens/';
// Fator de redução (por exemplo, 0.5 reduzirá pela metade)
$fatorReducao = 0.5;
$files = scandir($diretorioImagens);
foreach ($files as $file) {
if (in_array($file, array('.', '..'))) {
continue;
}
$caminhoCompleto = $diretorioImagens . $file;
// Obtém a extensão do arquivo
$extensao = pathinfo($caminhoCompleto, PATHINFO_EXTENSION);
// Verifica se é uma imagem JPEG ou PNG
if (in_array($extensao, array('jpeg', 'jpg', 'png'))) {
// Carrega a imagem original
$imagemOriginal = imagecreatefromjpeg($caminhoCompleto); // Use imagecreatefrompng() para imagens PNG
// Obtém as dimensões da imagem original
$larguraOriginal = imagesx($imagemOriginal);
$alturaOriginal = imagesy($imagemOriginal);
// Calcula as novas dimensões com base no fator de redução
$novaLargura = $larguraOriginal * $fatorReducao;
$novaAltura = $alturaOriginal * $fatorReducao;
// Cria uma nova imagem com as dimensões reduzidas
$imagemReduzida = imagecreatetruecolor($novaLargura, $novaAltura);
// Redimensiona a imagem original para a nova imagem reduzida
imagecopyresampled($imagemReduzida, $imagemOriginal, 0, 0, 0, 0, $novaLargura, $novaAltura, $larguraOriginal, $alturaOriginal);
// Salva a imagem reduzida com o mesmo nome e local
imagejpeg($imagemReduzida, $caminhoCompleto); // Use imagepng() para imagens PNG
// Libera a memória das imagens
imagedestroy($imagemOriginal);
imagedestroy($imagemReduzida);
echo "Imagem $file reduzida e salva.\n";
} else {
echo "Arquivo $file não é uma imagem suportada.\n";
}
}
echo "Processo de redução de imagens concluído.";
?>
Nesse script atualizado, a imagem reduzida é salva no mesmo caminho e nome do arquivo original, substituindo-o. Certifique-se de ter backups adequados ou implementar um sistema de versionamento se você quiser manter as imagens originais intactas.