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将字符串转成正则表达式的实现方法
Nov 13 Javascript
Extjs表单常见验证小结
Mar 07 Javascript
jquery中trigger()无法触发hover事件的解决方法
May 07 Javascript
深入解析JavaScript中函数的Currying柯里化
Mar 19 Javascript
jq checkbox 的全选并ajax传参的实例
Apr 01 Javascript
详解JS中的this、apply、call、bind(经典面试题)
Sep 19 Javascript
js+css实现打字效果
Jun 24 Javascript
jQuery超简单遮罩层实现方法示例
Sep 06 jQuery
vue中如何实现后台管理系统的权限控制的方法示例
Sep 19 Javascript
使用react context 实现vue插槽slot功能
Jul 18 Javascript
js中复选框的取值及赋值示例详解
Oct 18 Javascript
js实现Element中input组件的部分功能并封装成组件(实例代码)
Mar 02 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
php 获取页面中指定内容的实现类
2014/01/23 PHP
PHP计算一年多少个星期和每周的开始和结束日期
2014/07/01 PHP
Linux下手动编译安装PHP扩展的例子分享
2014/07/15 PHP
PHP批量生成图片缩略图的方法
2015/06/18 PHP
Smarty高级应用之缓存操作技巧分析
2016/05/14 PHP
解决form中action属性后面?传递参数 获取不到的问题
2017/07/21 PHP
RR vs IO BO3 第一场2.13
2021/03/10 DOTA
脚本吧 - 幻宇工作室用到js,超强推荐share.js
2006/12/23 Javascript
鼠标移入移出事件改变图片的分辨率的两种方法
2013/12/17 Javascript
用简洁的jQuery方法toggleClass实现隔行换色
2014/10/22 Javascript
js实现文字跟随鼠标移动而移动的方法
2015/02/28 Javascript
详解javascript高级定时器
2015/12/31 Javascript
基于JavaScript实现点击页面任何位置返回
2016/08/31 Javascript
AJAX和jQuery动态加载数据的实现方法
2016/12/05 Javascript
多个上传文件用js验证文件的格式和大小的方法(推荐)
2017/03/09 Javascript
angular.js实现列表orderby排序的方法
2018/10/02 Javascript
vue将单页面改造成多页面应用的方法
2018/11/25 Javascript
JavaScript 实现同时选取多个时间段的方法
2019/10/17 Javascript
vue v-on:click传递动态参数的步骤
2020/09/11 Javascript
kaggle+mnist实现手写字体识别
2018/07/26 Python
python async with和async for的使用
2019/06/20 Python
python conda操作方法
2019/09/11 Python
在Python中字符串、列表、元组、字典之间的相互转换
2019/11/15 Python
详解有关PyCharm安装库失败的问题的解决方法
2020/02/02 Python
python剪切视频与合并视频的实现
2020/03/03 Python
Python Merge函数原理及用法解析
2020/09/16 Python
手机业务员岗位职责
2013/12/13 职场文书
副校长个人对照检查材料思想汇报
2014/10/04 职场文书
2015年全国爱眼日活动小结
2015/02/27 职场文书
大学升旗仪式主持词
2015/07/04 职场文书
药房管理制度范本
2015/08/06 职场文书
预防职务犯罪警示教育心得体会
2016/01/15 职场文书
合作协议书格式范本
2016/03/21 职场文书
2016年社区创先争优活动总结
2016/04/05 职场文书
css 中多种边框的实现小窍门
2021/04/07 HTML / CSS
解决Pytorch修改预训练模型时遇到key不匹配的情况
2021/06/05 Python