Salve. Ho trovato questa classe sul forum. Purtroppo permette solo di impostare l'altezza ma me serve che l'immagine generata stia in un quadrato di n lunghezza di lato. Ho preparato la funzione ed ho provato ad inserirla ma non funziona.
Posto sia la funzione che ho creato che la classe modificata e la classe non modificata così potete avere tutto a disposizione:
MIA FUNZIONE
codice:
function GetHeight ($height , $width, $side)
{
if ($height > $width)
{
return $side;
}
elseif ($height < $width)
{
$side = ($height*$side)/$width;
return $side;
}
}
CLASSE MODIFICATA
codice:
class Image
{
var $src_filename;
var $src_witdh;
var $src_height;
var $src_type;
var $src_attr;
var $src_image;
function Image($filename)
{
$this->src_filename = $filename;
$this->GetImageInfo();
}
function GetImageInfo()
{
list($this->src_width,$this->src_height, $this->src_type, $this->src_attr) = getimagesize($this->src_filename);
}
function CreateSourceImage()
{
switch ($this->src_type)
{
case 1:
$this->src_image =imagecreatefromgif($this->src_filename);
break;
case 2:
$this->src_image =imagecreatefromjpeg($this->src_filename);
break;
case 3:
$this->src_image =imagecreatefrompng($this->src_filename);
break;
default: return false;
}
return true;
}
function GetHeight ($side)
{
if ($this->src_height > $this->src_width)
{
return $height;
}
elseif ($this->src_height < $this->src_width)
{
$height = ($this->src_height*$side)/$this->src_width;
return $height;
}
}
function SaveProportionateImage($filename, $quality, $this->height)
{
$dest_height = $height;
$ratio = $this->src_height / $dest_height;
$dest_image = imagecreatetruecolor( $this->src_width / $ratio,$dest_height);
imagecopyresampled($dest_image, $this->src_image, 0, 0, 0, 0,$this->src_width / $ratio,$this->src_height / $ratio,$this->src_width,$this->src_height);
imagejpeg($dest_image, $filename, $quality);
imagedestroy($dest_image);
}
function Free()
{
imagedestroy($this->src_image);
}
}
CLASSE ORIGINALE
codice:
class Image
{
var $src_filename;
var $src_witdh;
var $src_height;
var $src_type;
var $src_attr;
var $src_image;
function Image($filename)
{
$this->src_filename = $filename;
$this->GetImageInfo();
}
function GetImageInfo()
{
list($this->src_width,$this->src_height, $this->src_type, $this->src_attr) = getimagesize($this->src_filename);
}
function CreateSourceImage()
{
switch ($this->src_type)
{
case 1:
$this->src_image =imagecreatefromgif($this->src_filename);
break;
case 2:
$this->src_image =imagecreatefromjpeg($this->src_filename);
break;
case 3:
$this->src_image =imagecreatefrompng($this->src_filename);
break;
default: return false;
}
return true;
}
function SaveProportionateImage($filename, $quality, $height)
{
$dest_height = $height;
$ratio = $this->src_height / $dest_height;
$dest_image = imagecreatetruecolor( $this->src_width / $ratio,$dest_height);
imagecopyresampled($dest_image, $this->src_image, 0, 0, 0, 0,$this->src_width / $ratio,$this->src_height / $ratio,$this->src_width,$this->src_height);
imagejpeg($dest_image, $filename, $quality);
imagedestroy($dest_image);
}
function Free()
{
imagedestroy($this->src_image);
}
}
Spero che qualcuno mi possa aiutare perchè io non ci sto capendo più niente!