JQuery PHP图片在线裁剪实例

/ * Goofy 2011-11-29 * 图像处理:根据传递过来的坐标参数,x,y,w,h,依次为选取的x坐标,y坐标,w宽度,h高度 通过imagecopy()方法将该区域copy至第一步创建的空白图像中 注意,在创建图像的时候要用imagecreatetruecolor()真彩色,不然用imagecreate()图片会失真 */

自由图片剪切 无比例

rush:PHP;"> PHP

/**

  • Goofy 2011-11-29
  • 图像处理:根据传递过来的坐标参数,x,依次为选取的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,$x,$y,$w,$h);

//第四步,保存图像
//截取并组织新路径
$pos_path= strripos($src,"/");
$newPath=substr($src,$pos_path-strlen($src))."_new/";
//截取并组织新名称
$pos_name=strripos($src,".");
$newName=substr($src,$pos_name);
$posname= strripos($newName,"/");
//这里暂时不加后缀“.jpg”,防止有重复的文件,如果有,需要重命名,加了后会不方便
$newName=substr($newName,$posname-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,100);
//文件创建完成确定是否删除源文件,off为删除源文件
if($again=="off"){
unlink($src);
unset($_SESSION['url']);
}
break;
}
}
//跳转到首页
Header("Location: index.php");
?>

以上就是本文的全部内容,希望对大家有所帮助,希望大家继续关注编程之家的最新内容

相关文章

页面搜索关键词突出 // 页面搜索关键词突出 $(function () {...
jQuery实时显示日期、时间 html: &lt;span id=&quot...
jQuery 添加水印 &lt;script src=&quot;../../../.....
中文:Sys.WebForms.PageRequestManagerParserErrorExceptio...
1. 用Response.Write方法 代码如下: Response.Write(&q...
Jquery实现按钮点击遮罩加载,处理完后恢复 思路: 1.点击按...