<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<?php 
ini_set('memory_limit', '100M');//aggiungi questa riga 
/* 
ATTENZIONE:  
1. verificare i kb dell'immagine originale (meglio sotto i 1000 kb) altrimenti è facile che php va hout memory 
2. non verifica l'orientamento dell'immagine, quindi devi verificare tu che l'immagine sia diritta 
3. non cambia nome all'immagine e quindi se in destinazione esistente, sovrascive, per non sovrascivere da mod la riga rename 
4. funziona solo per formato jpg 
*/ 
function riduci_carica($nome_file){  
    $cart_p="da_ridurre/";//cartella di partenza 
    $cart_d="ridotte/";//cartella di destinazione 
    list($w_orig, $h_orig) = getimagesize($cart_p.$nome_file);//leggo larghezza e altezza dell immagine originale 
    if($w_orig == 0 || $h_orig ==0){//se rileva 0 l'immagine non è trattabile 
        echo "immagnine non compatibile <br />"; 
    }else{ 
        $max_w = 640;//definisco le misure massime a cui voglio ridurre 
        $max_h = 480;  
        $ratio = @min($max_w/$w_orig,$max_h/$h_orig);//cerco il rapporto minimo 
        if($ratio < 1 ){ 
            $w_rid = (int)($w_orig*$ratio); //calcolo le dimensioni a cui ridurre 
            $h_rid  =(int)($h_orig*$ratio); 
            $tn = imagecreatetruecolor($w_rid, $h_rid);  
            $image = imagecreatefromjpeg($cart_p.$nome_file);  
            imagecopyresampled($tn, $image, 0, 0, 0, 0, $w_rid, $h_rid , $w_orig, $h_orig);  
            imagejpeg($tn, $cart_d.$nome_file, 90); 
        } 
        echo "trattato: $nome_file<br>"; 
        @rename($cart_p.$nome_file, $cart_d.$nome_file);// sposta nella cartella di destinazione (attenzione sovrascrive se esiste) 
        //per svuotare la cartella di partenza in automatico dei file trattat (altrimenti commentare la riga) 
        @unlink($cart_p.$nome_file); 
    } 
}//fine function riduci_ricarica  
//************************************** 
$imm_da_spost=array_merge(glob("da_ridurre/*.jpg"),glob("da_ridurre/*.JPG"));//legge i file da cartella di partenza 
foreach($imm_da_spost as $immagine){ 
    $immagine=basename($immagine); 
    riduci_carica($immagine); 
} 
echo "fatto"; 
?> 
</head>
<body>
</body>
</html>