imgareaselect php,php结合imgareaselect实现图片裁剪

搜索热词

引用CSS

引用js

html

blank.jpg

blank.jpg

jQuery代码

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);

}

});

}

确定裁剪

$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,$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,$h,$h);

return $temp;

}

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

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值