php按坐标截取图片,jquery(Jcrop)+PHP根据坐标剪切图片

/**

* Goofy 2011-11-29

* 图像处理:根据传递过来的坐标参数,x,y,w,h,依次为选取的x坐标,y坐标,w宽度,h高度

* 通过imagecopy()方法将该区域copy至第一步创建的空白图像中

* 注意,在创建图像的时候要用imagecreatetruecolor()真彩色,不然用imagecreate()图片会失真

*/

1.[代码]自由图片剪切 无比例

/**

* Goofy 2011-11-29

* 图像处理:根据传递过来的坐标参数,x,y,w,h,依次为选取的x坐标,y坐标,w宽度,h高度

* 通过imagecopy()方法将该区域copy至第一步创建的空白图像中

* 注意,在创建图像的时候要用imagecreatetruecolor()真彩色,不然用imagecreate()图片会失真

*/

//页面传过来的比例

$scale=$_GET['scale'];

//下面的属性乘以相应的比例

$x=$_GET['x']*$scale;

$y=$_GET['y']*$scale;

$w=$_GET['w']*$scale;

$h=$_GET['h']*$scale;

//源路径

$src=$_GET['src'];

//是否继续?如果不继续在这张图片截图,会将源图片删除

$again="off";

if(!empty($_GET['again'])){

$again=$_GET['again'];

}

//第一步,根据传来的宽,高参数创建一幅图片,然后正好将截取的部分真好填充到这个区域

header("Content-type: image/jpeg");

$target = @imagecreatetruecolor($w,$h)

or die("Cannot Initialize new GD image stream");

//第二步,根据路径获取到源图像,用源图像创建一个image对象

$source = imagecreatefromjpeg($src);

//第三步,根据传来的参数,选取源图像的一部分填充到第一步创建的图像中

imagecopy( $target, $source, 0, 0, $x, $y, $w, $h);

//第四步,保存图像

//截取并组织新路径

$pos_path= strripos($src, "/");

$newPath=substr($src,0,$pos_path-strlen($src))."_new/";

//截取并组织新名称

$pos_name=strripos($src, ".");

$newName=substr($src,0,$pos_name);

$pos_name_= strripos($newName, "/");

//这里暂时不加后缀“.jpg”,防止有重复的文件,如果有,需要重命名,加了后会不方便

$newName=substr($newName,$pos_name_-strlen($newName)+1)."_";

//生成不带后缀的图片

$file=$newPath.$newName;

//附加asc码重命名文件,也可以用随机数,时间等命名,项目需求我不用那些命名方法了

for($i=0;$i<26;$i++){

//如果目录存在

if(is_dir($newPath)){

//如果文件存在,继续循环,直到没有重名的文件

if(is_file($file.chr(97+$i).".jpg")){

continue;

}else{

//创建文件

imagejpeg($target,$file.chr(97+$i).".jpg",100);

//文件创建完成确定是否删除源文件,off为删除源文件

if($again=="off"){

unlink($src);

unset($_SESSION['url']);

}

break;

}

}else{

//创建目录

mkdir($newPath);

//创建文件

imagejpeg($target,$file.chr(97+$i).".jpg",100);

//文件创建完成确定是否删除源文件,off为删除源文件

if($again=="off"){

unlink($src);

unset($_SESSION['url']);

}

break;

}

}

//跳转到首页

Header("Location: index.php");

?>

2.[文件] imgtool.rar ~ 3MB     下载(1826)

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值