/*
Author: Blaz Grapar, blaz.grapar@email.si
20031030 Laurent G. Beaudet - Corrected the computation of height vs width
Please don't delete names in the script. Thanks.
This class creates a thumbnail of an image. Size of thumbnail is determined with maximum width and height of an thumbnail.
*/
// ==========================================================================================
// Changings: by Gotti
// Purpose of changes: If thumb with same size already exists we don't need to write it again.
// Support for GD1 added.
// GD does not support .gif so we handle them as .jpg
// Added missing function 'imagedestroy()'
// Changed lines: 135-146, 165-170, 199
// Homepage: http://www.mambo.i-d-sign.com
// Author: Gotti
// Date: 10.02.2004
// ==========================================================================================
class Thumbnail
{
var $source;
var $max_width;
var $max_height;
var $dest;
var $exist = false;
// function Thumbnail( $source, $max_width = 100, $max_height = 100, $dest = '' )
function Thumbnail( $source, $max_width, $max_height, $dest = '' )
{
$this->source = $source;
$this->max_width = $max_width;
$this->max_height = $max_height;
$this->dest = $dest;
}
// Get the width of the original image
function GetWidth()
{
$size = GetImageSize($this->source);
return $size[0];
//return ImageSX($this->source);
}
// Get the height of the original image
function GetHeight()
{
$size = GetImageSize($this->source);
return $size[1];
//return ImageSY($this->source);
}
// Get the type of the image
function GetType()
{
$size = GetImageSize($this->source);
switch ( $size[2] )
{
case 1:
return 'gif';
break;
case 2:
return 'jpg';
break;
case 3:
return 'png';
break;
}
}
// Width calculation of thumbnail
function CalcWidth()
{
if ($this->GetWidth() > $this->GetHeight()) {
//
// let's take the width as the largest dimension
//
return ($this->max_width);
} else {
//
// the width will have to be of the same ration as the height
//
return(floor(($this->max_height * $this->GetWidth()) / $this->GetHeight()));
}
}
// Height calculation of thumbnail
function CalcHeight()
{
if ($this->GetWidth() > $this->GetHeight()) {
//
// the height will have to be of the same ration as the width
//
return(floor(($this->max_width * $this->GetHeight()) / $this->GetWidth()));
} else {
//
// let's take the height as the largest dimension
//
return($this->max_height);
}
}
// Creating a thumbnail
function Create()
{
switch ($this->GetType())
{
case 'gif':
$img_src = ImageCreateFromGIF ( $this->source );
break;
case 'jpg':
$img_src = ImageCreateFromJPEG ( $this->source );
break;
case 'png':
$img_src = ImageCreateFromPNG ( $this->source );
break;
}
$gd = 2;
$img_des = ImageCreateTrueColor ( $this->CalcWidth(), $this->CalcHeight() );
if (!$img_des) {
$gd = 1;
$img_des = ImageCreate( $this->CalcWidth(), $this->CalcHeight() );
}
for($i=0; $i<256; $i++)
imagecolorallocate($img_des, $i, $i, $i);
if ($gd==2) {
ImageCopyResampled( $img_des, $img_src, 0, 0, 0, 0, $this->CalcWidth(), $this->CalcHeight(), $this->GetWidth(), $this->GetHeight() );
} else {
imagecopyresized( $img_des, $img_src, 0, 0, 0, 0, $this->CalcWidth(), $this->CalcHeight(), $this->GetWidth(), $this->GetHeight() );
}
return $img_des;
}
// Output the thumbnail to file or directly to a client
function Output()
{
if (file_exists($this->dest)) {
$old_size = getimagesize($this->dest);
if ($old_size[0] == $this->CalcWidth())
$exist = true;
}
if ($exist==false) {
switch ($this->GetType())
{
case 'gif':
if (empty($this->dest))
{
header ("Content-type: image/jpeg");
return ImageJPEG($this->Create());
}
else
{
return ImageJPEG( $this->Create(), $this->dest );
}
break;
case 'jpg':
if (empty($this->dest))
{
header ("Content-type: image/jpeg");
return ImageJPEG($this->Create());
}
else
{
return ImageJPEG( $this->Create(), $this->dest );
}
break;
case 'png':
if (empty($this->dest))
{
header ("Content-type: image/png");
return ImagePNG($this->Create());
}
else
{
return ImagePNG( $this->Create(), $this->dest );
}
break;
}
imagedestroy($img_des);
}
}
}
?>
Salvabordi e angolari PE NOSTRA PRODUZ. |
|
|
|
Clicca qui per vedere le macchine con cui lo produciamo
La qualità nasce già nella fase della progettazione per poi svilupparsi in prodotti che rispondano all'esigenza del cliente in termini di sicurezza e affidabilità, non va trascurato che è un prodotto di NOSTRA PRODUZIONE
Grazie ai profili in polietilene, gli angolari, i cilindri pieni, ecc. siamo in grado di offrire una perfetta tenuta contro gli urti, con un prodotto che garantisce leggerezza, facilita di applicazione e stoccaggio. Completamente riciclabile, rispetta i parametri riguardanti i principi sullo smaltimento e riciclaggio degli imballaggi. Alcuni metodi d'uso |
|
|
|
|
>> |
|
|
|