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有关元素内容操作小结
Dec 20 Javascript
jQuery中[attribute=value]选择器用法实例
Dec 31 Javascript
用JavaScript实现对话框的教程
Jun 04 Javascript
js实现显示当前状态的导航效果代码
Aug 28 Javascript
详解网站中图片日常使用以及优化手法
Jan 09 Javascript
原生js实现秒表计时器功能
Feb 16 Javascript
jQuery animate()实现背景色渐变效果的处理方法【使用jQuery.color.js插件】
Mar 15 Javascript
VUE多层路由嵌套实现代码
May 15 Javascript
原生js实现移动端Touch轮播图的方法步骤
Jan 03 Javascript
Vue 中 a标签上href无法跳转的解决方式
Nov 12 Javascript
vue使用自定义事件的表单输入组件用法详解【日期组件与货币组件】
Jun 01 Javascript
JS如何判断对象是否包含某个属性
Aug 29 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
smarty静态实验表明,网络上是错的~呵呵
2006/11/25 PHP
PHP pathinfo()获得文件的路径、名称等信息说明
2011/09/13 PHP
php调用淘宝开放API实现根据卖家昵称获取卖家店铺ID的方法
2015/07/29 PHP
PHP格式化MYSQL返回float类型的方法
2016/03/30 PHP
PHP设计模式之工厂模式实例总结
2017/09/01 PHP
PHP校验15位和18位身份证号的类封装
2018/11/07 PHP
PHP+MySQL实现在线测试答题实例
2020/01/02 PHP
javascript String 对象
2008/04/25 Javascript
js实现瀑布流的一种简单方法实例分享
2013/11/04 Javascript
基于jquery实现一个滚动的分步注册向导-附源码
2015/08/26 Javascript
常用的Javascript设计模式小结
2015/12/09 Javascript
jQuery实现的自动加载页面功能示例
2016/09/04 Javascript
JS产生随机数的用法小结
2016/12/10 Javascript
Node.js如何响应Ajax的POST请求并且保存为JSON文件详解
2017/03/10 Javascript
2种简单的js倒计时方式
2017/10/20 Javascript
vue-cli脚手架引入图片的几种方法总结
2018/03/13 Javascript
angular 实现的输入框数字千分位及保留几位小数点功能示例
2018/06/19 Javascript
swiper在angularjs中使用循环轮播失效的解决方法
2018/09/27 Javascript
koa2实现登录注册功能的示例代码
2018/12/03 Javascript
uploadify插件实现多个图片上传并预览
2019/09/30 Javascript
微信小程序 获取手机号 JavaScript解密示例代码详解
2020/05/14 Javascript
[15:15]教你分分钟做大人:狙击手
2014/10/30 DOTA
python将每个单词按空格分开并保存到文件中
2018/03/19 Python
python多线程与多进程及其区别详解
2019/08/08 Python
余弦相似性计算及python代码实现过程解析
2019/09/18 Python
python的mysql数据库建立表与插入数据操作示例
2019/09/30 Python
matplotlib交互式数据光标mpldatacursor的实现
2021/02/03 Python
CSS3实现时间轴特效
2020/11/02 HTML / CSS
碧欧泉美国官网:Biotherm美国
2016/08/31 全球购物
麦德龙官方海外旗舰店:德国麦德龙超市
2017/12/23 全球购物
数控技术专业推荐信
2013/11/01 职场文书
银行实习生的自我评价
2013/12/09 职场文书
《小猫刮胡子》教学反思
2014/02/21 职场文书
卫生标语大全
2014/06/21 职场文书
就业导师推荐信范文
2015/03/27 职场文书
Python异常类型以及处理方法汇总
2021/06/05 Python