Termine: Funzione pif_gdrid_x($nomefile, $nomemin, $dimx, $formato)<?php
/////////////////////////////////////////////////
//Funzione per RIDIMENSIONARE immagini jpg e png fissando larghezza:
//Modifica: 11-10-2017 aggiunto formato png
//$nomefile = nome file da ridimensionare
//$nomemin = nome miniatura
//$dimx = dimensione x ex: 800
//$dimy = calcolata proporzionalmente
//$formato = jpg o png
////////////////////////////////////////////////
function pif_gdrid_x($nomefile, $nomemin, $dimx, $formato)
{
//$imginfo: Array ( [0] => 1600 [1] => 1200 [2] => 2 [3] => width="1600"
//height="1200" [bits] => 8 [channels] => 3 [mime] => image/jpeg )
$imginfo = getimagesize($nomefile);
//Larghezza: $imginfo[0]: Altezza: $imginfo[1]
//Controllo se l'immagine è orizzontale (larghezza maggiore altezza)
if ($imginfo[0] > $imginfo[1])
{
//Con GD versione 2.0
//Calcolo l'altezza dell'immagine ridimensionata
//in modo che sia proporzionale all'immagine originale
$dimy=($imginfo[1]*$dimx)/$imginfo[0];
//Creo la BASE della nuova immagne
//**$img_out = imagecreate($dimx, $dimy);
$img_out = imagecreatetruecolor($dimx, $dimy);
}
//L'immagine è verticale
else
{//Con GD versione 2.0
//$img_out = imagecreatetruecolor($dimy, $dimx);
//Calcolo l'altezza in modo che sia proporzionale all'immagine
$dimy=($imginfo[1]*$dimx)/$imginfo[0];
//echo ("Larghezza: ".$imginfo[0]." Altezza: ".$imginfo[1]);
//**$img_out = imagecreate($dimx, $dimy);
$img_out = imagecreatetruecolor($dimx, $dimy);
}
//controllo esaurimento RAM se immagine troppo grande
//if (!($img_in = @imagecreatefromjpeg($nomefile))) {$errore="immagine grande"; return($errore);};
ini_set("memory_limit", "16M");
if($formato =="jpg"){ $img_in = @imagecreatefromjpeg($nomefile);}
if($formato =="png"){ $img_in = @imagecreatefrompng($nomefile);}
if ($imginfo[0] > $imginfo[1])
{
//controllo se immagine orizzontale o verticale
//**imagecopyresized ($img_out, $img_in, 0,0,0,0, $dimx, $dimy, $imginfo[0], $imginfo[1]);
//Con GD versione 2.0
if($formato =="jpg")
{
imagecopyresampled ($img_out, $img_in, 0,0,0,0, $dimx, $dimy, $imginfo[0], $imginfo[1]);
imagejpeg ($img_out, $nomemin, 100); //$img_out viene nominato, con fattore compressione 100
}
if($formato =="png")
{
imagecopyresampled ($img_out, $img_in, 0,0,0,0, $dimx, $dimy, $imginfo[0], $imginfo[1]);
imagepng ($img_out, $nomemin); //$img_out viene nominato, con fattore compressione 100
}
}
else
{
//**imagecopyresized ($img_out, $img_in, 0,0,0,0, $dimx, $dimy, $imginfo[0], $imginfo[1]);
//Con GD versione 2.0
if($formato =="jpg")
{
imagecopyresampled ($img_out, $img_in, 0,0,0,0, $dimx, $dimy, $imginfo[0], $imginfo[1]);
imagejpeg ($img_out, $nomemin, 100); //$img_out viene nominato, con fattore compressione 100
}
if($formato =="png")
{
imagecopyresampled ($img_out, $img_in, 0,0,0,0, $dimx, $dimy, $imginfo[0], $imginfo[1]);
imagepng ($img_out, $nomemin); //$img_out viene nominato, con fattore compressione 100
}
}
}
////////////////////////////////////////////////
?>