/*
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);
}
}
}
?>
Cartone ottenuto da fibra di carta KRAFT reciclata, adatta all'imballaggio di qualsiasi materiale che necessiti di protezione.
Rigido, flessibile, in bobina, in formato di vari spessori, stampato, personalizzato. Può essere accoppiato a vari materiali. Trova utilizzo in svariati settori, dall'arredamento, all'edilizia, consentendo un'ottima protezione con bassi costi di esercizio. Alcuni esempi d'uso
|
|
|
|
|
>> |
|
|
|