JQuery PHP图片在线裁剪实例


Posted in Javascript onJuly 27, 2020

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

自由图片剪切 无比例

<?php
 
/**
 * 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"); 
?>

以上就是本文的全部内容,希望对大家有所帮助,希望大家继续关注三水点靠木的最新内容。

Javascript 相关文章推荐
改版了网上的一个js操作userdata
Apr 27 Javascript
javascript(jquery)利用函数修改全局变量的代码
Nov 02 Javascript
JS保留两位小数 四舍五入函数的小例子
Nov 20 Javascript
JavaScript中的Math 使用介绍
Apr 21 Javascript
Node.js获取前端ajax提交的request信息
Feb 20 Javascript
js前端日历控件(悬浮、拖拽、自由变形)
Mar 02 Javascript
angularJS之$http:与服务器交互示例
Mar 17 Javascript
vue实现长图垂直居上 vue实现短图垂直居中
Oct 18 Javascript
Windows安装Node.js报错:2503、2502的解决方法
Oct 25 Javascript
Vue项目使用localStorage+Vuex保存用户登录信息
May 27 Javascript
vue2.x 对象劫持的原理实现
Apr 19 Javascript
JS倒计时两种实现方式代码实例
Jul 27 Javascript
JavaScript SHA-256加密算法详细代码
Oct 06 #Javascript
JavaScript SHA1加密算法实现详细代码
Oct 06 #Javascript
JavaScript仿网易选项卡制作代码
Oct 06 #Javascript
Javascript中作用域的详细介绍
Oct 06 #Javascript
js实现非常棒的弹出div
Oct 06 #Javascript
jQuery事件用法详解
Oct 06 #Javascript
KVM虚拟化技术之使用Qemu-kvm创建和管理虚拟机的方法
Oct 05 #Javascript
You might like
JavaScript 语法集锦 脚本之家基础推荐
2009/11/15 Javascript
Extjs 3.3切换tab隐藏相应工具栏出现空白解决
2013/04/02 Javascript
登陆成功后自动计算秒数执行跳转
2014/01/23 Javascript
通过js来制作复选框的全选和不选效果
2014/05/22 Javascript
Javascript让DEDECMS告别手写Tag
2014/09/01 Javascript
JS实现的简洁二级导航菜单雏形效果
2015/10/13 Javascript
解决JS请求服务器gbk文件乱码的问题
2015/10/16 Javascript
JavaScript+html5 canvas绘制的圆弧荡秋千效果完整实例
2016/01/26 Javascript
详解jQuery的Cookie插件
2016/11/23 Javascript
Angular2利用组件与指令实现图片轮播组件
2017/03/27 Javascript
JavaScript 函数的定义-调用、注意事项
2017/04/16 Javascript
Javascript实现倒计时时差效果
2017/05/18 Javascript
bootstrap表单示例代码分享
2017/05/18 Javascript
vue-router路由参数刷新消失的问题解决方法
2017/06/17 Javascript
vue实现简单全选和反选功能
2020/09/15 Javascript
[04:22]DOTA2上海特级锦标赛主赛事第四日TOP10
2016/03/06 DOTA
python通过字典dict判断指定键值是否存在的方法
2015/03/21 Python
详解django自定义中间件处理
2018/11/21 Python
Python3实现zip分卷压缩过程解析
2019/10/09 Python
python实现差分隐私Laplace机制详解
2019/11/25 Python
浅谈numpy中np.array()与np.asarray的区别以及.tolist
2020/06/03 Python
树莓派4B安装Tensorflow的方法步骤
2020/07/16 Python
HEMA法国:荷兰原创设计
2019/02/21 全球购物
德国滑雪和户外用品网上商店:XSPO
2019/10/30 全球购物
前台接待岗位职责
2013/12/03 职场文书
法人授权委托书格式
2014/04/08 职场文书
《李广射虎》教学反思
2014/04/27 职场文书
廉洁校园实施方案
2014/05/25 职场文书
信息合作协议书
2014/10/09 职场文书
小学见习报告
2015/06/23 职场文书
学校运动会简讯
2015/07/20 职场文书
2016年第32个教师节红领巾广播稿
2015/12/18 职场文书
numpy数据类型dtype转换实现
2021/04/24 Python
关于Vue Router的10条高级技巧总结
2021/05/06 Vue.js
用Python爬取各大高校并可视化帮弟弟选大学,弟弟直呼牛X
2021/06/11 Python
Python 可迭代对象 iterable的具体使用
2021/08/07 Python