Reduzir imagens de um diretório em PHP mantendo o local e nome.

É 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.

Rolar para cima