A5下载站:努力做内容最丰富最安全的下载站! 网站地图最新更新下载排行专题软件发布

热门软件

地铁跑酷

冒险迷岛

全民迷宫

连连消大作战

小河狸创客

阿里健康医鹿

支付宝app

番薯小说

MOMO陌陌

虾米音乐app

位置导航:A5下载 > 源码技巧 > 父类数据

php结合imgareaselect实现图片裁剪

时间:2015-07-06 09:29来源:a5源码作者:zhao浏览:54
这篇文章主要介绍了php结合imgareaselect实现图片裁剪的相关资料,需要的朋友可以参考下……

引用CSS

/js/jquery.imgareaselect-0.9.10/css/imgareaselect-default.css

引用js

/js/jquery.imgareaselect-0.9.10/scripts/jquery.imgareaselect.min.js

/js/AjaxFileUploaderV2.1/ajaxfileupload.js

html

<div>

<img src='blank.jpg' id="mainimg">

</div>

<div id="myPreview" >

<img src="blank.jpg" id="mainimgthumb" />

</div>

<form name="fmCrop">

<input type="hidden" name="src_path" value="" />

<input type="hidden" name="x1" value="" />

<input type="hidden" name="x2" value="" />

<input type="hidden" name="y1" value="" />

<input type="hidden" name="y2" value="" />

<input type="submit" name="btnSubmit" class="baseinf_but1" style="display:none" value="确定" />

</form>

jQuery代码

$("#mainimg_src", content).load(function () {

crop($("#mainimg", content));

});

function crop($img) { //$img是

//缩小比例

var scalex =$img.width() / $("#mainimg_src").width();

var scaley =$img.height() / $("#mainimg_src").height();

$img.imgAreaSelect({

x1:0,y1:0,x2:150,y2:150,

handles: true, aspectRatio: '1:1',

onSelectEnd: function (img, selection) {

var scaleX = 100 / (selection.width || 1);

var scaleY = 100 / (selection.height || 1);

$('#mainimgthumb').css({

width: Math.round(scaleX * 400) + 'px',

height: Math.round(scaleY * 300) + 'px',

marginLeft: '-' + Math.round(scaleX * selection.x1) + 'px',

marginTop: '-' + Math.round(scaleY * selection.y1) + 'px'

});

$('input[name="x1"]', content).val(selection.x1/scalex);

$('input[name="y1"]', content).val(selection.y1/scaley);

$('input[name="x2"]', content).val(selection.x2/scalex);

$('input[name="y2"]', content).val(selection.y2/scaley);

}

});

}

确定裁剪

//确定剪切

$("form[name=fmCrop]", content).submit(function () {

var data = $("form[name=fmCrop]", content).serializeArray();

$.get('/members/web-members-rest/crop.html', data, function (r) {

switch (r.result) {

case "Success":

jAlert("操作成功");

$("#left_mainimg").attr("src", "/" + r.path + '?a=' + (new Date()).format('yyyyMMddhhmmss'));

$("#myPreview", content).css("display", "block");

$("#myPreview", content).prev().css("display", "none");

$("#mainimg", content).imgAreaSelect({ hide: true });

$("form[name=fmUpload]", content).css("display", "none");

$("input[name=btnSubmit]", content).css("display", "none");

break;

}

});

return false;

});

服务器端php代码

public function actionCrop($src_path,$x1,$x2,$y1,$y2){

$pic =$src_path;

$width = $x2-$x1;

$height = $y2-$y1;

$type=exif_imagetype($pic); //判断文件类型

$support_type=array(IMAGETYPE_JPEG , IMAGETYPE_PNG , IMAGETYPE_GIF);

if(!in_array($type, $support_type,true)) {

echo "this type of image does not support! only support jpg , gif or png";

exit();

}

switch($type) {

case IMAGETYPE_JPEG :

$image = imagecreatefromjpeg($pic);

break;

case IMAGETYPE_PNG :

$image = imagecreatefrompng($pic);

break;

case IMAGETYPE_GIF :

$image = imagecreatefromgif($pic);

break;

default:

echo "Load image error!";

exit();

}

$copy = $this->PIPHP_ImageCrop($image, $x1, $y1, $width, $height);//裁剪

imagejpeg($copy, $src_path); //替换新图

return ['result'=>'Success','path'=>$src_path]; //返回新图地址

}

function PIPHP_ImageCrop($image, $x, $y, $w, $h){

$tw = imagesx($image);

$th = imagesy($image);

if ($x > $tw || $y > $th || $w > $tw || $h > $th) return FALSE;

$temp = imagecreatetruecolor($w, $h);

imagecopyresampled($temp, $image, 0, 0, $x, $y, $w, $h, $w, $h);

return $temp;

}

以上所述就是本文的全部内容了,希望大家能够喜欢。