<?php
/*
iaTermark
Created by Silvio Rainoldi
www.ianaz.ch
*/
class img
{
var $thumb_w = 172; // larghezza thumb
var $thumb_h = 130; // altezza thumb
var $max_w = 720; // larghezza max
var $max_h = 540; // altezza max
var $pos_x = "RIGHT"; // posizione logo
var $pos_y = "BOTTOM"; // posizione logo
var $img_folder = ""; // cartella immagine grande
var $thumb_folder = ""; // cartella immagine thumb
var $saveBIG = 1; //salvare immagine grande
var $saveTHUMB = 1; //salvare thumb
var $name = ""; //nome immagine senza estensione
function AddLogo($image, $logo = NULL)
{
$this->im = $this->createImage($image);
$this->im_width = imagesx($this->im);
$this->im_height = imagesy($this->im);
$this->wt_x = $this->calc_pos_x($this->pos_x);
$this->wt_y = $this->calc_pos_y($this->pos_y);
$this->new_image = $this->resizeImg();
$this->resizeForThumb();
if($logo != NULL)
{
$this->createTheLogo($logo);
}
if($this->name==""){
$this->name = substr($image, 0 , strrpos($image, "."));
}
if($this->saveBIG == 1)
{
imagejpeg($this->new_image, $this->img_folder.$this->name."_big.jpg");
}
if($this->saveTHUMB == 1)
{
imagejpeg($this->thumb, $this->thumb_folder.$this->name."_small.jpg");
}
}
function createImage($image){
$type = strtolower(substr($image, strrpos($image, "."), strlen($image)-strrpos($image, ".")));
if($type==".jpeg" || $type==".jpg"){
return imagecreatefromjpeg($image);
}elseif($type==".gif"){
return imagecreatefromgif($image);
}elseif($type==".png"){
return imagecreatefrompng($image);
}else{
die("Immagine non valida");
}
}
function createTheLogo($logo)
{
$this->logo = $this->createImage($logo);
$this->logo_width = imagesx($this->logo);
$this->logo_height = imagesy($this->logo);
$this->wt_x = $this->calc_pos_x($this->pos_x);
$this->wt_y = $this->calc_pos_y($this->pos_y);
imagecopy($this->new_image, $this->logo, $this->wt_x, $this->wt_y, 0, 0, $this->logo_width, $this->logo_height);
}
function resizeImg()
{
if($this->im_width > $this->max_w && $this->im_height < $this->max_h)
{
$rapporto = $this->max_w / $this->im_width;
$this->new_im_w = $this->im_width * $rapporto;
$this->new_im_h = $this->im_height * $rapporto;
}
else if($this->im_width < $this->max_w && $this->im_height > $this->max_h)
{
$rapporto = $this->max_h / $this->im_height;
$this->new_im_w = $this->im_width * $rapporto;
$this->new_im_h = $this->im_height * $rapporto;
}
else if($this->im_width > $this->max_w && $this->im_height > $this->max_h)
{
$rapporto_1 = $this->max_w / $this->im_width;
$rapporto_2 = $this->max_h / $this->im_height;
if($rapporto_1 > $rapporto_2)
{
$rapporto = $rapporto_2;
}
else
{
$rapporto = $rapporto_1;
}
$this->new_im_w = $this->im_width * $rapporto;
$this->new_im_h = $this->im_height * $rapporto;
}
else
{
$this->new_im_w = $this->im_width;
$this->new_im_h = $this->im_height;
}
$this->new_image = imagecreatetruecolor($this->new_im_w, $this->new_im_h);
imagecopyresized($this->new_image, $this->im, 0, 0, 0, 0, $this->new_im_w, $this->new_im_h, $this->im_width, $this->im_height);
return $this->new_image;
}
function resizeForThumb(){
$thumb_w = $this->thumb_w;
$thumb_h = $this->thumb_h;
if($this->im_width > $this->im_height)
{
$rapporto = $this->im_height / $this->im_width;
$thumb_h = $this->thumb_h * $rapporto;
$thumb_w = $this->thumb_w * $rapporto;
}
else if($this->im_width < $this->im_height)
{
$rapporto = $this->im_width / $this->im_height;
$thumb_w = $this->thumb_w * $rapporto;
}
else
{
$thumb_w = $this->thumb_w;
$thumb_h = $this->thumb_h;
}
$this->thumb = imagecreatetruecolor($thumb_w, $thumb_h);
imagecopyresized($this->thumb, $this->new_image, 0, 0, 0, 0, $thumb_w, $thumb_h, $this->new_im_w, $this->new_im_h);
}
function calc_pos_x($position_x)
{
$x = 0;
switch($position_x)
{
case 'LEFT':
$x = 0;
break;
case 'CENTER':
$x = @$this->new_im_w / 2 - @$this->logo_width / 2;
break;
case 'RIGHT':
$x = @$this->new_im_w - @$this->logo_width;
break;
default:
$x = 0;
}
return $x;
}
function calc_pos_y($position_y)
{
$y = 0;
switch($position_y)
{
case 'TOP':
$y = 0;
break;
case 'MIDDLE':
$y = @$this->new_im_h / 2 - @$this->logo_height / 2;
break;
case 'BOTTOM':
$y = @$this->new_im_h - @$this->logo_height;
break;
default:
$y = 0;
}
return $y;
}
}
?>
|