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 相关文章推荐
json 入门基础教程 推荐
Oct 31 Javascript
JavaScript Cookie 直接浏览网站分网址
Dec 08 Javascript
用js做一个小游戏平台 (一)
Dec 29 Javascript
PHP开发者必须掌握的6个关键字
Apr 14 Javascript
优化RequireJS项目的相关技巧总结
Jul 01 Javascript
JavaScript正则表达式匹配 div  style标签
Mar 15 Javascript
AngularJs expression详解及简单示例
Sep 01 Javascript
javascript中href和replace的比较(详解)
Nov 25 Javascript
JS操作时间 - UNIX时间戳的简单介绍(必看篇)
Aug 16 Javascript
浅谈Vue.js 中的 v-on 事件指令的使用
Nov 25 Javascript
浅析Proxy可以优化vue的数据监听机制问题及实现思路
Nov 29 Javascript
jQuery AJAX与jQuery事件的分析讲解
Feb 18 jQuery
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发送有附件的电子邮件-(PHPMailer使用的实例分析)
2013/04/26 PHP
php获取文件夹路径内的图片以及分页显示示例
2014/03/11 PHP
PHP 面向对象程序设计(oop)学习笔记(一) - 抽象类、对象接口、instanceof 和契约式编程
2014/06/12 PHP
laravel 5 实现模板主题功能
2015/03/02 PHP
保证JavaScript和Asp、Php等后端程序间传值编码统一
2009/04/17 Javascript
基于jQuery的烟花效果(运动相关)点击屏幕出烟花
2012/06/14 Javascript
jquery全选/全不选/反选另一种实现方法(配合原生js)
2013/04/07 Javascript
javaScript 计算两个日期的天数相差(示例代码)
2013/12/27 Javascript
JSP中使用JavaScript动态插入删除输入框实现代码
2014/06/13 Javascript
AngularJS ng-repeat指令中使用track by子语句解决重复数据遍历错误问题
2017/01/21 Javascript
AngularJS基于factory创建自定义服务的方法详解
2017/05/25 Javascript
浅谈Angular HttpClient简单入门
2018/05/04 Javascript
vue2单元测试环境搭建
2018/05/24 Javascript
详解JavaScript中操作符和表达式
2018/09/12 Javascript
vue2.0结合Element-ui实战案例
2019/03/06 Javascript
原生JavaScript实现五子棋游戏
2020/11/09 Javascript
[00:27]DOTA2荣耀之路2:Patience from zhou!
2018/05/24 DOTA
python扫描proxy并获取可用代理ip的实例
2017/08/07 Python
基于python中pygame模块的Linux下安装过程(详解)
2017/11/09 Python
django 解决manage.py migrate无效的问题
2018/05/27 Python
Django+Ajax+jQuery实现网页动态更新的实例
2018/05/28 Python
Selenium定时刷新网页的实现代码
2018/10/31 Python
解决python3中的requests解析中文页面出现乱码问题
2019/04/19 Python
Python使用qrcode二维码库生成二维码方法详解
2020/02/17 Python
python框架flask入门之环境搭建及开启调试
2020/06/07 Python
python利用线程实现多任务
2020/09/18 Python
CSS3中的Transition过度与Animation动画属性使用要点
2016/05/20 HTML / CSS
HTML5 Canvas入门学习教程
2016/03/17 HTML / CSS
DogBuddy荷兰:找到你最完美的狗保姆
2019/04/17 全球购物
27个经典Linux面试题及答案,你知道几个?
2014/03/11 面试题
测试时代收集的软件测试面试题
2013/09/25 面试题
数控技校生自我鉴定
2014/03/02 职场文书
优秀学生干部个人事迹材料
2014/06/02 职场文书
节约用水的口号
2014/06/20 职场文书
简历中的自我评价怎么写呢?
2019/04/30 职场文书
python图像处理基本操作总结(PIL库、Matplotlib及Numpy)
2021/06/08 Python