php – jquery – 裁切圖片

使用jquery imgAreaSelect選取要裁切的範圍
網址:http://odyniec.net/projects/imgareaselect/

並且可以設定最大範圍與最小範圍或是不限制範圍~~
以下是範例,我寫在同一張PHP,實做的時候建議分開來吧!

<?
if (isset($_POST['submit']))
{
	//裁切圖片
	function cutimg($fromimgname, $fromimg_startx, $fromimg_starty, $newimg_width, $newimg_height)
	{
		//取得目標檔案的長寬
		$fromimg = imagecreatefromjpeg($fromimgname);
		$fromimg_info = getimagesize($fromimgname);
		$fromimg_width = $fromimg_info[0];
		$fromimg_height = $fromimg_info[1];

		//新檔案的寬高
		$newimg = imagecreatetruecolor($newimg_width, $newimg_height); // 超過256色改用這個

		//進行裁切
		imagecopy($newimg, $fromimg, 0,0,$fromimg_startx,$fromimg_starty,$newimg_width,$newimg_height);

		return $newimg;
	}

	$newimg = cutimg($_POST['imgfile'], $_POST['x1'], $_POST['y1'], $_POST['width'], $_POST['height']);
	header("Content-Type: image/jpg");
	mb_http_output("pass");
	imagejpeg($newimg); //直接顯示來TEST, 增加第2個參數可以存成圖片

	die;
}
?>
<link rel="stylesheet" type="text/css" href="jquery.imgareaselect-0.9.10/css/imgareaselect-default.css" />
<script type="text/javascript" src="jquery.imgareaselect-0.9.10/scripts/jquery.min.js"></script>
<script type="text/javascript" src="jquery.imgareaselect-0.9.10/scripts/jquery.imgareaselect.pack.js"></script>

<script>
$(function (){

    $('img#photo').imgAreaSelect({
        handles: true,
		aspectRatio : "4:3", //比例
		fadeSpeed : 200,
		maxWidth : 200,
		maxHeight : 200,
		minWidth : 100,
		minHeight: 100,
		outerOpacity : 0.9, //指定透明度
        onSelectChange: function (img, selection){

			//x1, y1 為左上角座標
			//x2, y2 為右下表座標

			$("[name=x1]").val(selection.x1)
			$("[name=y1]").val(selection.y1)
			$("[name=x2]").val(selection.x2)
			$("[name=y2]").val(selection.y2)
			$("[name=width]").val(selection.width)
			$("[name=height]").val(selection.height)
			}

		});

	})
</script>
<img id="photo" src="Koala.jpg">

<form action="" method="post" enctype="multipart/form-data">
    <input type="hidden" name="x1" value="" />
    <input type="hidden" name="y1" value="" />
    <input type="hidden" name="x2" value="" />
    <input type="hidden" name="y2" value="" />
    <input type="hidden" name="width" value="">
    <input type="hidden" name="height" value="">
    <input type="hidden" name="imgfile" value="Koala.jpg">
    <input type="submit" name="submit" value="Submit" />
</form>