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 相关文章推荐
20款非常优秀的 jQuery 工具提示插件 推荐
Jul 15 Javascript
javascript简单事件处理和with用法介绍
Sep 16 Javascript
ajax请求get与post的区别总结
Nov 04 Javascript
jquery和ajax的关系详细介绍
Nov 29 Javascript
理解javascript中的回调函数(callback)
Sep 02 Javascript
jquery实现最简单的滑动菜单效果代码
Sep 12 Javascript
vue 组件使用中的一些细节点
Apr 25 Javascript
小程序点击图片实现自动播放视频
May 29 Javascript
小程序实现搜索框
Jun 19 Javascript
详解Vue中的MVVM原理和实现方法
Jul 15 Javascript
快速解决Vue、element-ui的resetFields()方法重置表单无效的问题
Aug 12 Javascript
JavaScript 如何计算文本的行数的实现
Sep 14 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获取文件绝对路径的代码(上一级目录)
2011/05/29 PHP
19个超实用的PHP代码片段
2014/03/14 PHP
Codeigniter上传图片出现“You did not select a file to upload”错误解决办法
2014/06/12 PHP
PHP实现扎金花游戏之大小比赛的方法
2015/03/10 PHP
PHP防止图片盗用(盗链)的方法小结
2016/11/11 PHP
RR vs IO BO3 第二场2.13
2021/03/10 DOTA
RGB颜色值转HTML十六进制(HEX)代码的JS函数
2009/04/25 Javascript
Extjs4 GridPanel 的几种样式使用介绍
2013/04/18 Javascript
js对象与打印对象分析比较
2013/04/23 Javascript
自己编写的类似JS的trim方法
2013/10/09 Javascript
jquery中push()的用法(数组添加元素)
2014/11/25 Javascript
jQuery实现自动调整字体大小的方法
2015/06/15 Javascript
js+ajax实现获取文件大小的方法
2015/12/08 Javascript
JavaScript绑定事件监听函数的通用方法
2016/05/14 Javascript
JS取数字小数点后两位或n位的简单方法
2016/10/24 Javascript
jQuery实现的模拟弹出窗口功能示例
2016/11/24 Javascript
微信小程序 五星评价功能的实现
2017/03/09 Javascript
说说node中的可读流和可写流的区别
2018/06/01 Javascript
Angular实现svg和png图片下载实现
2019/05/05 Javascript
JavaScript Window浏览器对象模型原理解析
2020/05/30 Javascript
Python构建XML树结构的方法示例
2017/06/30 Python
python 信息同时输出到控制台与文件的实例讲解
2018/05/11 Python
python实现列表中最大最小值输出的示例
2019/07/09 Python
python Web flask 视图内容和模板实现代码
2019/08/23 Python
python取均匀不重复的随机数方式
2019/11/27 Python
Python unittest工作原理和使用过程解析
2020/02/24 Python
DataReader和DataSet的异同
2014/12/31 面试题
2014迎新年晚会策划方案
2014/02/23 职场文书
工程技术员岗位职责
2014/03/02 职场文书
中文专业求职信
2014/06/20 职场文书
职工年度考核评语
2014/12/31 职场文书
前台文员岗位职责
2015/02/04 职场文书
护士2015年终工作总结
2015/04/29 职场文书
市场营销计划书
2019/04/24 职场文书
MySQL数字类型自增的坑
2021/05/07 MySQL
各国货币符号大全
2022/02/17 杂记