117 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			117 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
<?php
 | 
						|
class Icon{
 | 
						|
 | 
						|
	function createIcon(){
 | 
						|
		$this->getImgSize();
 | 
						|
		//print_r( $this->img_info );
 | 
						|
		if( !$this->img_info ) return false;
 | 
						|
		$this->getNewSize();
 | 
						|
		$this->makeIcon();
 | 
						|
	}
 | 
						|
	function getImgSize(){
 | 
						|
		$this->img_info = @getImagesize( $this->path );
 | 
						|
		$this->w = $this->img_info[0];
 | 
						|
		$this->h = $this->img_info[1];
 | 
						|
 | 
						|
		switch ( $this->img_info[2] ){
 | 
						|
			case 1:
 | 
						|
				$this->t = 'gif';
 | 
						|
				break;
 | 
						|
			case 2:
 | 
						|
				$this->t = 'jpg';
 | 
						|
				break;
 | 
						|
			case 3:
 | 
						|
				$this->t = 'png';
 | 
						|
				break;
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
	function getNewSize(){
 | 
						|
		if( $this->w > $this->h ){
 | 
						|
			$this->nh = $this->size;
 | 
						|
			$this->nw = ($this->size/$this->h) * $this->w;
 | 
						|
			$this->type = 1;
 | 
						|
		}else{
 | 
						|
			$this->nw = $this->size;
 | 
						|
			$this->nh = ($this->size/$this->w) * $this->h;
 | 
						|
			$this->type = 0;
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
	function makeIcon(){
 | 
						|
			$type = $this->type;
 | 
						|
			//$img_des = ImageCreateTrueColor ( $this->size, $this->size );
 | 
						|
			$img_des = ImageCreateTrueColor ( $this->size , $this->size );
 | 
						|
 | 
						|
			$background = imagecolorallocate( $img_des , 255 , 255 , 255 );
 | 
						|
			imagefill( $img_des , 0 , 0 , $background ); 
 | 
						|
 | 
						|
			switch ( $this->t ){
 | 
						|
				case 'gif':
 | 
						|
					$img_src = ImageCreateFromGIF ( $this->path );
 | 
						|
					break;
 | 
						|
 | 
						|
				case 'jpg':
 | 
						|
					$img_src = ImageCreateFromJPEG ( $this->path );
 | 
						|
					break;
 | 
						|
 | 
						|
				case 'png':
 | 
						|
					$img_src = ImageCreateFromPNG ( $this->path );
 | 
						|
					break;
 | 
						|
			}
 | 
						|
			if( $type === 1 ){
 | 
						|
				imagecopyresampled( $img_des, $img_src, 0, 0, ($this->w-$this->h)/2 , 0, $this->nw , $this->nh, $this->w, $this->h );
 | 
						|
			}elseif( $type === 0 ){
 | 
						|
				imagecopyresampled( $img_des, $img_src, 0, 0, 0 , ($this->h-$this->w)/2, $this->nw , $this->nh, $this->w, $this->h );
 | 
						|
			}else{
 | 
						|
				imagecopyresampled( $img_des, $img_src, 0, 0, 0 , 0 , $this->size, $this->size , $this->w, $this->h );
 | 
						|
			}
 | 
						|
			
 | 
						|
			imageline( $img_des , 0 , 0 , 0 , ($this->size-1) , imagecolorallocate( $img_des , 220 , 220 , 220 )  );
 | 
						|
			imageline( $img_des , 0 , ($this->size-1) , ($this->size-1) , ($this->size-1) , imagecolorallocate( $img_des , 220 , 220 , 220 )  );
 | 
						|
			imageline( $img_des , ($this->size-1) , ($this->size-1) , ($this->size-1) , 0 , imagecolorallocate( $img_des , 220 , 220 , 220 )  );
 | 
						|
			imageline( $img_des , ($this->size-1) , 0 , 0 , 0 , imagecolorallocate( $img_des , 220 , 220 , 220 )  );
 | 
						|
			
 | 
						|
			//echo $this->dest ;
 | 
						|
 | 
						|
			switch ( $this->t ){
 | 
						|
				case 'gif':
 | 
						|
					if ( empty( $this->dest ) ){
 | 
						|
						header( "Content-type: image/gif" );
 | 
						|
						return ImageGIF( $img_des );
 | 
						|
					}else{
 | 
						|
						return ImageGIF( $img_des, $this->dest );
 | 
						|
					}
 | 
						|
					break;
 | 
						|
 | 
						|
				case 'jpg':
 | 
						|
					if ( empty( $this->dest ) ){
 | 
						|
						header ( "Content-type: image/jpeg" );
 | 
						|
						return ImageJPEG( $img_des );
 | 
						|
					}else{
 | 
						|
						return ImageJPEG( $img_des, $this->dest );
 | 
						|
					}
 | 
						|
					break;
 | 
						|
 | 
						|
				case 'png':
 | 
						|
					if ( empty( $this->dest ) ){
 | 
						|
						header ( "Content-type: image/png" );
 | 
						|
						return ImagePNG( $img_des );
 | 
						|
					}else{
 | 
						|
						return ImagePNG( $img_des, $this->dest );
 | 
						|
					}
 | 
						|
					break;
 | 
						|
			}
 | 
						|
		}
 | 
						|
 | 
						|
 | 
						|
 | 
						|
}
 | 
						|
/*
 | 
						|
$icon = new Icon();
 | 
						|
$icon->path = 'a.gif';
 | 
						|
$icon->size = 64;
 | 
						|
$icon->dest = 'b.gif';
 | 
						|
$icon->createIcon();
 | 
						|
*/
 | 
						|
?>
 |