js插件---图片裁剪photoClip

一、总结

一句话总结:页面裁剪图片得到base64格式的图片数据,然后把这个数据通过ajax上传给服务器,服务器将base64图片数据解析成图片并且保存到服务器上面,并且返回图片在服务器上的地址。

二、图片裁剪photoClip

1、截图

 

2、代码(代码需要放到web服务器里面,因为带了裁剪后图片上传服务器的功能)

百度盘下载链接:链接:https://pan.baidu.com/s/1-kZzwmIvtwLpGA8GrhVHPA 密码:oj8u

裁剪页面代码

 <!DOCTYPE html>
<html> <head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="renderer" content="webkit">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<meta http-equiv="Cache-Control" content="no-siteapp" />
<title>裁剪图片演示-带初始值</title>
<link rel="stylesheet" type="text/css" href="../dist/amazeui.min.css" />
<style type="text/css">
#clip {
width: 100%;
height: 400px;
}
</style>
</head> <body>
<div id="clip"></div> <div class="am-margin-sm">
<button type="button" class="am-btn am-btn-primary" id="toggle-file">上传头像</button>
<button type="button" class="am-btn am-btn-primary" id="clipBtn">裁剪</button>
</div> <input class="am-hide" type="file" id="file"> <img class="am-img-circle" id="img-view"/> <script src="../dist/jquery.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../dist/iscroll-zoom.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../dist/hammer.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../dist/photoClip.min.js" type="text/javascript" charset="utf-8"></script>
<script>
$(function() {
var $clip = $("#clip");
var $file = $("#file");
$("#toggle-file").click(function() {
$file.trigger("click");
}); $clip.photoClip({
width: 400,
height: 300,
fileMinSize: 20,
file: $file,
defaultImg: "../img/4.jpg",
ok: "#clipBtn",
loadStart: function() {
console.log("照片读取中");
},
loadProgress: function(progress) {
console.log(progress);
},
loadError: function() {
console.log("图片加载失败");
},
loadComplete: function() {
console.log("照片读取完成");
},
imgSizeMin: function(kbs) {
console.log(kbs, "上传图片过小");
},
clipFinish: function(dataURL) {
document.getElementById("img-view").src = dataURL; $.post("index.php", { dataURL: dataURL},
function(data){
alert("Data Loaded: " + data);
});
console.log(dataURL);
}
});
})
</script> </body>
</html>

后台接收并处理图片代码

 <?php
//print_r($_POST);
$base_img=$_POST['dataURL'];
// $base_img是获取到前端传递的值
$base_img = str_replace('data:image/jpeg;base64,', '', $base_img);
// 设置文件路径和命名文件名称
$path = "./";
$output_file = time().rand(100,999).'.jpeg';
$path = $path.$output_file;
// 创建将数据流文件写入我们创建的文件内容中
file_put_contents($path, base64_decode($base_img));
// 输出文件
print_r($output_file);
?>
 

最新文章

  1. spring 定时任务@Scheduled
  2. 解决 Virtual Box 启动 Cannot load R0 module supLoadModule returned VERR_LDR_MISMATCH_NATIVE Failed to register ourselves as a PCI Bus (VERR_MODULE_NOT_FOUND)
  3. springMVC框架中,在hib-config.xml配置sqlserver2008数据库连接的代码
  4. Configuring Service Broker for Asynchronous Processing
  5. php中的不常用数组函数(一)(数组中元素的键和值对调 array_flip())
  6. 蓝牙BLE ATT剖析(一)
  7. Chapter 5
  8. Spring 拦截器配置
  9. Oracle INTERVAL DAY TO SECOND数据类型
  10. mysql sql学习(一)mysql连接
  11. 记录一下八款开源 Android 游戏引擎
  12. 进阶:案例五: Dynamic 创建 Business Graphic
  13. 使用malloc分别分配2KB,6KB的内存空间,打印指针地址
  14. .net cookie
  15. SAP HANA创建层次结构的属性视图(Hierarchy Attribute View)
  16. springMVC实现REST开发详解(补充Json解析问题以及静态文件404错误解决办法)
  17. Android源码浅析(二)——Ubuntu Root,Git,VMware Tools,安装输入法,主题美化,Dock,安装JDK和配置环境
  18. C#中Convert.ToInt32、int.TryParse、(int)和int.Parse四者的区别
  19. Block abstraction view(Create &amp; Reference)
  20. 【代码审计】CLTPHP_v5.5.3前台XML外部实体注入漏洞分析

热门文章

  1. Python爬虫简单入门及小技巧
  2. [原创]Linux 下 redis 链接一次
  3. The Zen of Python, by Tim Peters
  4. POJ--1966--Cable TV Network【无向图顶点连通度】
  5. linux搜索文件过程
  6. MapReduce 的类型与格式【编写最简单的mapreduce】(1)
  7. java 短连接+MD5加密短链接
  8. nginx模块开发
  9. NGUI研究之开发项目的一些使用心得比較细节
  10. 汇编中中括号[]作用以及lea和mov指令的区别