Indietro

Termine: Funzione pif_gdnormalizza($nomefile, $nomemin, $dimx, $dimy)

<?php
////////////////////////////////////////////////
//Funzione per RIDIMENSIONARE i file all'interno della dimensione massima FullHD: 1920x1080
//Verranno mantenute le proporzioni 4/3, 16/9 o altre
//$nomefile = nome file da ridimensionare
//$nomemin = nome miniatura
//$dimx = dimensione massima x ex: 1920
//$dimy = dimensione massima y ex: 1080
////////////////////////////////////////////////
function pif_gdnormalizza($fileinput, $fileoutput, $dimx, $dimy)
{
 //$imginfo: Array ( [0] => 1600 [1] => 1200 [2] => 2 [3] => width="1600" 
 //height="1200" [bits] => 8 [channels] => 3 [mime] => image/jpeg )
 
 $imginfo = getimagesize($fileinput);
 
 //Proporzione larghezza/altezza immagine originale
 //Larghezza: $imginfo[0]: Altezza: $imginfo[1]
 $proporzione=$imginfo[0]/$imginfo[1];
 
 //DEBUG
 //echo "DIMENSIONI RICHIESTE: ".$dimx." - ".$dimy."<br>";
 //echo "ORIGINALE: ".$imginfo[0]." - ".$imginfo[1]."<br>";
 //echo "Proporzione: ".$proporzione."<br>";
 //break;
 
 //Controllo se orizzontale o verticale
 if ($proporzione>=1)
 {
	//****************
	//FOTO ORIZZONTALE
	//****************
	//Larghezza superiore al massimo consentito ex: $dimx=1920
 	if ($imginfo[0]>$dimx)
 	{
		//Calcolo nuova altezza y: x_originale:y_originale=1920:y
		$y=floor($dimx/$proporzione);
	
		//DEBUG
		//echo "Foto orizzontale Y calcolata: ".$y."<br>";
		
		//Verifico che la nuova altezza non superi $dimy=1080
		//Se supera $dimy=1080 ricalcolo x proporzionale
		if ($y>$dimy)
		{
			//ricalcolo larghezza mantenendo le proporzioni 
			//con altezza massima $dimy=1080 
			$x=floor($dimy*$dimx/$y);
			$y=$dimy;
		}
		else
		{
			//Altezza non supera altezza minima
			//$y=$imginfo[1];
			$x=$dimx;
		}
		
		
		
 	}
 	else
 	{
	 	//Dimensioni x inferiori dimx=1920 
		$x=$imginfo[0];
		
		//Altezza è maggiore altezza massima
		if ($imginfo[1]>=$dimy+1)
		{
			
		}
		else
		{
			$y=$imginfo[1];
		}
 	};
	
	
 }
 else
 {
	//****************
	//FOTO VERTICALE
	//****************
	
	//Se altezza superiore a $dimy=1080
	if ($imginfo[1]>$dimy)
 	{
		//Altezza $y=1080
		$y=$dimy;
	}
	else
	{
		//Altezza uguale a quella reale
		$y=$imginfo[1];
	}
	//Calcolo larghezza proporzionale
	$x=floor($dimy*$imginfo[0]/$imginfo[1]);
 }
	
 	//DEBUG
	//echo "Proporzione: ".$proporzione."<br>";
	//echo "Calcoli definitivi<br>";
	//echo "x: ".$x." y: ".$y."<br>";
	//break;
 
	//Creo la BASE della nuova immagne
 	$img_out = imagecreatetruecolor($x, $y);
	ini_set("memory_limit", "50M");
 
 	$img_in = imagecreatefromjpeg($fileinput);
	
	//Controllo altezza per verificare se è minore di $dimy=1080
	
	imagecopyresampled ($img_out, $img_in, 0,0,0,0, $x, $y, $imginfo[0], $imginfo[1]);
	
	imagejpeg ($img_out, $fileoutput, 100);
	
  }
//////////////////////////////////////////////////////////////////////////////

?>

Alessandro Piffero

Sviluppo applicazioni Web
Partita IVA: IT01557500038

CONTATTI

Via del Lauro, 10
28821 Cannero Riviera (VB) ITALY
alex@piffero.it
PEC: piffero@pec.it
348 8734510
Modulo contatto