Script zum liefern und croppen von Bildern

liefert Bilder, auch gecroppt. Könnte für den Einen oder den Anderen von Interesse sein:


<?php
/*
returns an image (JPEG, PNG, or GIF) stored anywhere in the LAN. 
Parameters: 
pic: file name of image
ImageDirectory: Directory of image
crop: if "yes" than image will be cropped
x_start, y_start: coordinates of cropping rectangle
DestWidth, DestHeight: size of cropping rectangle

example of how to use: <img src="/php/BringImage.php?pic=cam25.jpg&crop=yes&x_start=120&y_start=0&DestWidth=200&DestHeight=80">


*/

if(isset($_GET['pic']) && (!empty($_GET['pic'])))
 {$pictureName = $_GET['pic'];}

if(isset($_GET['ImageDirectory'])) 
	{$ImageDirectory = $_GET['ImageDirectory'];}
else
	$ImageDirectory = "C:\IP-Symcon\media".chr(92);


if((isset($_GET['crop'])) and ($_GET['crop'])=="yes")
//if (1==1)
	{ 
	if(isset($_GET['x_start'])) 
		{$x_start = $_GET['x_start'];}
	if(isset($_GET['y_start'])) 
		{$y_start = $_GET['y_start'];}
	if(isset($_GET['$DestWidth'])) 
		{$DestWidth = $_GET['DestWidth'];}
	if(isset($_GET['$DestHeight'])) 
		{$$DestHeight = $_GET['DestHeight'];}

	$pictureReturn = CropAnyImage($ImageDirectory.$pictureName, $x_start, $y_start, $DestWidth, $DestHeight);
	}

else

{
$pictureReturn = ReturnPicture($ImageDirectory.$pictureName);
}

header("Content-Type: image/png");
imagepng($pictureReturn);

//___________________________________________________________

Function ReturnPicture($pictureName)
	{
	$picturetype = substr($pictureName, -3); 
	$filename = $pictureName;
		switch ($picturetype)
		{
    	case "jpg":
        	$image=imagecreatefromjpeg($filename);
			$mimetype = 'image/jpg';
        	break;
    	case "png":
        	$image=imagecreatefrompng($filename);
			$mimetype = 'image/png';
        	break;
    	case "jpeg":
        	$image=imagecreatefromjpeg($filename);
			$mimetype = 'image/jpg';
        	break;
		case "gif":
        	$image=imagecreatefromgif($filename);
			$mimetype = 'image/gif';
        	break;
			
		}

return $image;
	}

//__________________________


Function CropAnyImage($Image, $x_start, $y_start, $DestWidth, $DestHeight)
	{
	$imageCropped =	imagecreatetruecolor($DestWidth, $DestHeight);
	list($width, $height) = getimagesize($Image);
	
	$ImageRes = ReturnPicture($Image);
	imagecopyresampled ($imageCropped,$ImageRes, 
		0,0,  
		$x_start, $y_start, 
		$DestWidth, $DestHeight, 
		$DestWidth, $DestHeight);
	
	return $imageCropped;	
	}

?>