Location: PHPKode > scripts > Add mark at images > add-mark-at-images/img.class.php
<?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;
        
        }
        
}
    
?> 
Return current item: Add mark at images