<?php





/*


  +----------------------------------------------------------------------+


  | ThumbnaiI Image v.: 0.1 (05.12.2006)                                 |


  +----------------------------------------------------------------------+


  | Generate thumbnail images                                            |


  +----------------------------------------------------------------------+  


  | Author: Stigmat <multzone@inbox.ru>                                  |


  +----------------------------------------------------------------------+


*/





class thumbnail_images {





// get


var $PathImgOld;


var $PathImgNew;


var $NewWidth;


var $NewHeight;





// tmp


var $mime;





function imagejpeg_new ($NewImg,$path_img) {


if ($this->mime == 'image/jpeg' or $this->mime == 'image/pjpeg') imagejpeg($NewImg,$path_img);


elseif ($this->mime == 'image/gif') imagegif($NewImg,$path_img);


elseif ($this->mime == 'image/png') imagepng($NewImg,$path_img);


else return(false);


return(true);


}





function imagecreatefromjpeg_new($path_img) {


if ($this->mime == 'image/jpeg' or $this->mime == 'image/pjpeg') $OldImg=imagecreatefromjpeg($path_img);


elseif ($this->mime == 'image/gif') $OldImg=imagecreatefromgif($path_img);


elseif ($this->mime == 'image/png') $OldImg=imagecreatefrompng($path_img);


else return(false);


return($OldImg);


}





function create_thumbnail_images() {


$PathImgOld = $this->PathImgOld;


$PathImgNew = $this->PathImgNew;


$NewWidth = $this->NewWidth;


$NewHeight = $this->NewHeight;





$Oldsize = @getimagesize($PathImgOld);


$this->mime = $Oldsize['mime'];


$OldWidth = $Oldsize[0];


$OldHeight = $Oldsize[1];





if ($NewHeight=='' and $NewWidth!='') {


$NewHeight = ceil(($OldHeight*$NewWidth)/$OldWidth);


}


elseif ($NewWidth=='' and $NewHeight!='') {


$NewWidth = ceil(($OldWidth*$NewHeight)/$OldHeight);


}


elseif ($NewHeight=='' and $NewWidth=='') {


return(false);


}





$OldHeight_castr = ceil(($OldWidth*$NewHeight)/$NewWidth);


$castr_bottom = ($OldHeight-$OldHeight_castr)/2;





$OldWidth_castr = ceil(($OldHeight*$NewWidth)/$NewHeight);


$castr_right = ($OldWidth-$OldWidth_castr)/2;





if ($castr_bottom>0) {


$OldWidth_castr = $OldWidth;


$castr_right = 0;


}


elseif ($castr_right>0) {


$OldHeight_castr = $OldHeight;


$castr_bottom = 0;


}


else {


$OldWidth_castr = $OldWidth;


$OldHeight_castr = $OldHeight;


$castr_right = 0;


$castr_bottom = 0;


}





$OldImg=$this->imagecreatefromjpeg_new($PathImgOld);


if ($OldImg) {


$NewImg_castr=imagecreatetruecolor($OldWidth_castr,$OldHeight_castr);


if ($NewImg_castr) {


imagecopyresampled($NewImg_castr,$OldImg,0,0,$castr_right,$castr_bottom,$OldWidth_castr,$OldHeight_castr,$OldWidth_castr,$OldHeight_castr);


$NewImg=imagecreatetruecolor($NewWidth,$NewHeight);


if ($NewImg) {


imagecopyresampled($NewImg,$NewImg_castr,0,0,0,0,$NewWidth,$NewHeight,$OldWidth_castr,$OldHeight_castr);


imagedestroy($NewImg_castr);


imagedestroy($OldImg);


if (!$this->imagejpeg_new($NewImg,$PathImgNew)) return (false);


imagedestroy($NewImg);


}


}


}


else {


return(false);


}





return(true);


}





}


?>