图片裁剪的js有哪些(整理)
图片裁剪的js有哪些(整理)
一、总结
一句话总结:如果用了amaze框架就去amaze框架的插件库里面找图片裁剪插件,如果没用,jcrop和cropper都不错。
1、amazeui的插件库中有很多好用的插件(包括两款比较好用的图片裁剪工具)给了我们什么启示?
关注前端框架的插件,或者说多去探索他们的功能,多去点点
那些比较知名的前端框架肯定是因为他们的很多方面都做的很好,有很多功能,而我还没有发现,比如bootstrap,所以多去官网,多去点点
2、裁剪的英语单词叫什么?
crop
这个真的还挺重要的,这样看到插件叫这个名字起码知道是一个裁剪插件
二、几种js图片裁剪
tapmodo / Jcrop
Jcrop是人气最高的图片裁剪jQuery插件,stars数量2k+,功能非常丰富,文档齐全,首选。Github.com官网也使用了这个插件。有一个小细节是,边框线的蚂蚁线是动画的,真的很用心。
Jcrop项目地址 | demo1 | demo2 | demo3 | demo4fengyuanchen / cropper
Cropper也是一款图片裁剪jQuery插件,stars数量1k+,是杭州的前端工程师Fengyuan Chen所写的,功能也相当丰富,裁剪时还可以对原图进行旋转。
Cropper项目地址 |
demoodyniec / imgareaselect
imgAreaSelect 也是比较经典的图片裁剪jQuery插件,我很久以前就在自己的项目中使用过,stars数量500+。
imgAreaSelect项目地址 |
demoalexk111 / ngImgCrop
ngImgCrop是用于AngularJS的图片裁剪插件,提供圆形和矩形两种裁剪框风格。
ngImgCrop项目地址 |
demoandyshora / angular-image-crop
Angular Image Crop 也是用于AngularJS的图片裁剪插件,我没用过,不好评价什么了。
Angular Image Crop 项目地址 |
demo
https://blog.csdn.net/zdw19861127/article/details/52856568?locationNum=5&fps=1
三、cropper.js图片裁剪
最近做电子名片的项目,可是个人照片展示上出现了 用户上传的图片尺寸严重失调,所以要求进行图片裁剪,再此我对图片裁剪进行调研 还不太成熟 以后再改
这个实现的原理是 前台获取到 坐标 图片的尺寸 原图文件 传给后台进行裁剪
这个是我在网上找的一个插件 cropper功能很强大
这里是官方文档
首先使用cropper必须引入对应得css和js,还有jquery
<script src="jquery.js"></script>
<link href="cropper.css" rel="stylesheet">
<script src="cropper.js"></script>
html结构,cropper是针对img得 所以配置项需要配置到img上
<div class="container">
<img id="img" src="img/add-pic.png">
</div>
相对的js配置(这是项目里应用的部分 参数 如果以后有改动 需要根据API配置)
$('.container > img').cropper({//这里是给img 即被裁剪的图片进行参数配置
aspectRatio: 720 / 425,//裁剪框的比例
preview: $('.avatar-preview'),//预览的容器
minContainerHeight: 1080,//容器最小高度
autoCropArea: 0.9,//初始化裁剪框大小(相对于图片大小做比例)
movable:false,//是否能移动裁剪框(这里是可以移动图片 裁剪框处于不动的状态 按你的需求设置)
dragCrop:false,//不允许重新开裁剪框
resizable:false,//不允许改变裁剪框大小
crop: function(data) {
//data是 x,y width, height rotate scaleX scaleY裁剪框的坐标,以及裁剪出来的图片长宽 旋转角度 缩放等
$('#x').val(data.x);
$('#y').val(data.y);
console.log('w'+data.width+' height'+data.height);
},
//这几个回调函数
build: function (e) { //是图片绘制到cropper自动生成的canvas的开始 加载开始
//过渡效果
},
built: function (e) { //加载完成 绘制完成 获取到相应的data } });
效果图:
并且移动图片的过程中 会获取到data
上传的时候,使用了FromData 但是 在调用ajax的时候 会报错 这个问题后来使用特别方式解决 以后研究
var data = new FormData();
data.append("x",Math.floor(myval('x')));
data.append("y",Math.floor(myval('y')));
data.append("w",Math.floor(myval('w')));
data.append("h",Math.floor(myval('h'))); data.append("file",$("#imgUpload")[0].files[0]);
data.append("name",$("#imgUpload").val());
data.append('jsonpcallback','a');
由于会报错 所以有人告诉我这样一个方式 但是只能从error中获取值
$.ajax({
"type": 'post',
"url": "imageCut",
"dataType": "json",
"data": data,
// 告诉jQuery不要去处理发送的数据 发送了fromData对象
processData : false,
// 告诉jQuery不要去设置Content-Type请求头
contentType : false,
success: function (resp) {
console.log(resp)
},
error:function(data){
if(data.status==200){
//这个就是裁剪后图片的线上地址
console.log(data.responseText);
}
}
});
上传的方式,
1.可以通过form表单的方式进行
2.ajax上传(将图片转化为Base64编码)
Demo 的HTML结构
<form action="http://172.16.105.43:8080/vcard/imageCut" enctype="multipart/form-data" method="post" id="form">
<div class="pic">
<a href="javascript:void(0)" class="add"><input type="file" name="file" id="imgUpload"/></a>
<div class="mask_box">
<div class="container">
<img id="img" src="img/add-pic.png">
</div>
<input type="hidden" name="x" id="x" value="0"/>
<input type="hidden" name="y" id="y" value="0"/>
<input type="hidden" name="w" id="w" value="720"/>
<input type="hidden" name="h" id="h" value="425"/>
<div class="btn_submit"><span onclick="cancel()" >取消</span><span class="right" onclick="upload()">完成</span></div>
</div>
</div>
</form>
参考:cropper.js图片裁剪 - 明媚下雨天 - 博客园
https://www.cnblogs.com/GoTing/p/7536648.html
四、amazeui前端框架插件库中的图片裁剪
amazeui插件库地址:Amazeui Plugins
http://plugins.amazeui.org/
有两个,感觉都还挺好用的
功能也还比较强大
使用的话官方介绍的是非常详细的
图片裁剪的js有哪些(整理)的更多相关文章
- 图片裁剪 cropper.js 上传组件封装 vue
//HTML cropper.js 文档地址: https://github.com/fengyuanchen/cropperjs/blob/master/README.md <template ...
- node.js平台下,cropper.js实现图片裁剪预览并转换为base64发送至服务端。
一 .准备工作 1.首先需要先下载cropper,常规使用npm,进入项目路径后执行以下命令: npm install cropper 2. cropper基于jquery,在此不要忘记引入jq,同时 ...
- 使用JCrop进行图片裁剪,裁剪js说明,裁剪预览,裁剪上传,裁剪设计的图片处理的工具类和代码
1.要想制作图片裁剪功能,可以使用网上的裁剪工具JCrop,网址是:https://github.com/tapmodo/Jcrop/ 案例效果如下: 2.引入JCrop的js代码,具体要引入那 ...
- cropper.js图片裁剪
最近做电子名片的项目,可是个人照片展示上出现了 用户上传的图片尺寸严重失调,所以要求进行图片裁剪,再此我对图片裁剪进行调研 还不太成熟 以后再改 这个实现的原理是 前台获取到 坐标 图片的尺寸 原图文 ...
- cropper.js实现图片裁剪预览并转换为base64发送至服务端。
一 .准备工作 1.首先需要先下载cropper,常规使用npm,进入项目路径后执行以下命令: npm install cropper 2. cropper基于jquery,在此不要忘记引入jq,同时 ...
- js插件---图片裁剪cropImgBox(适合练习编写插件之用)
js插件---图片裁剪cropImgBox(适合练习编写插件之用) 一.总结 一句话总结:无论是灰度还是高对比度的图片,都是先处理canvas的像素,使其变成灰度或者高对比度,然后再用canvas.t ...
- js插件---强大的图片裁剪Cropper
js插件---强大的图片裁剪Cropper 一.总结 一句话总结:官网或者github里面的文档或者demo才是真的详细 使用的话找到图片裁剪后的base64数据,然后这个数据可下载可传递到服务器 1 ...
- js插件---图片裁剪photoClip
js插件---图片裁剪photoClip 一.总结 一句话总结:页面裁剪图片得到base64格式的图片数据,然后把这个数据通过ajax上传给服务器,服务器将base64图片数据解析成图片并且保存到服务 ...
- 如何使用echo.js实现图片的懒加载(整理)
如何使用echo.js实现图片的懒加载(整理) 一.总结 一句话总结:a.在img标签中添加data-echo属性加载真实图片:<img class="loading" sr ...
随机推荐
- USART
串口通信是一种设备间非常常用的串行通行方式,其简单便捷,大部分电子设备都支持. 一.物理层 常用RS-232标准,主要规定了信号的用途.通信接口以及信号的电平标准. “DB9接口”之间通过串口信号线 ...
- 【ICM Technex 2018 and Codeforces Round #463 (Div. 1 + Div. 2, combined) C】 Permutation Cycle
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] p[i] = p[p[i]]一直进行下去 在1..n的排列下肯定会回到原位置的. 即最后会形成若干个环. g[i]显然等于那个环的大 ...
- 洛谷—— P2934 [USACO09JAN]安全出行Safe Travel || COGS ——279|| BZOJ——1576
https://www.luogu.org/problem/show?pid=2934 题目描述 Gremlins have infested the farm. These nasty, ugly ...
- [Recompose] Handle React Events as Streams with RxJS and Recompose
Events are the beginning of most every stream. Recompose provides a createEventHandler function to h ...
- 树根 Digital root
数根 (又称数字根Digital root)是自然数的一种性质.换句话说.每一个自然数都有一个数根.数根是将一正整数的各个位数相加(即横向相加),若加完后的值大于等于10的话,则继续将各位数进行横向相 ...
- sublime配置python
Sublime Text 2作为一款轻量级的编辑器,特点鲜明.方便使用,愈发受到普罗大众的喜爱.我个人近期也開始用了起来.同一时候,我近段时间还在学习Python的相关东西.所以開始用ST2来写Pyt ...
- 推荐一款优雅的jquery手风琴特效
推荐一款基于 jQuery和 CSS3实现的手风琴效果. 查看demo演示
- 【POJ3377】Ferry Lanes 最短路
我仅仅是贴一下手写堆优化的dij模板.尽管.它.TLE了--**** #include <cstdio> #include <cstring> #include <ios ...
- .Net经典笔试题
1. 简述 private. protected. public. internal 修饰符的访问权限. 答:private:私有成员,在类的内部才可以访问: protected:保护成员,该类内部和 ...
- HTTP 与 HTTPS
https就是http和TCP之间有一层SSL层,这一层的实际作用是防止钓鱼和加密. 防止钓鱼通过网站的证书,网站必须有CA证书,证书类似于一个解密的签名. 另外是加密,加密需要一个密钥交换算法,双方 ...