Para criar um script automático em PHP que reduza todos os arquivos de um diretório de imagens, você pode utilizar a biblioteca de manipulação de imagens chamada “GD” (Graphics Draw) que já vem integrada com o PHP. Este exemplo utiliza a biblioteca GD para reduzir o tamanho de imagens JPEG e PNG em um diretório. Certifique-se de que a extensão GD esteja ativada no seu servidor PHP.
<?php
// Diretório das imagens originais
$diretorioOrigem = 'caminho/para/diretorio/origem/';
// Diretório para salvar as imagens reduzidas
$diretorioDestino = 'caminho/para/diretorio/destino/';
// Fator de redução (por exemplo, 0.5 reduzirá pela metade)
$fatorReducao = 0.5;
// Pega a lista de arquivos no diretório
$files = scandir($diretorioOrigem);
foreach ($files as $file) {
if (in_array($file, array('.', '..'))) {
continue;
}
$caminhoCompletoOrigem = $diretorioOrigem . $file;
$caminhoCompletoDestino = $diretorioDestino . $file;
// Obtém a extensão do arquivo
$extensao = pathinfo($caminhoCompletoOrigem, PATHINFO_EXTENSION);
// Verifica se é uma imagem JPEG ou PNG
if (in_array($extensao, array('jpeg', 'jpg', 'png'))) {
// Carrega a imagem original
$imagemOriginal = imagecreatefromjpeg($caminhoCompletoOrigem); // 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 no diretório de destino
imagejpeg($imagemReduzida, $caminhoCompletoDestino); // 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.";
?>
Lembre-se de ajustar os caminhos dos diretórios de origem e destino, bem como o fator de redução conforme necessário. Certifique-se também de que o diretório de destino tenha permissões de escrita. Este é apenas um exemplo básico; você pode expandir e personalizar o script de acordo com suas necessidades específicas.