SimpleCrop
全网唯一支持裁剪图片任意角度旋转、交互体验媲美原生客户端的全平台图片裁剪组件。
Github 地址:https://github.com/newbieYoung/Simple-Crop
特性及优势
和目前流行的图片裁剪组件相比,其优势在于以下几点:
- 裁剪图片支持任意角度旋转;
- 支持 Script 标签、微信小程序、React、Vue;
- 支持移动和 PC 设备;
- 支持边界判断、当裁剪框里出现空白时,图片自动吸附至完全填满裁剪框;
- 移动端缩放以双指中心为基准点;
- 交互体验媲美原生客户端。
示例
微信小程序示例
移动端示例
左侧是 IOS 系统相册中原生的图片裁剪功能,右侧为 SimpleCrop 移动端示例。
可以扫描二维码体验:
或者访问以下链接:
https://newbieyoung.github.io/Simple-Crop/examples/test-2.html
PC 示例
链接如下:
https://newbieyoung.github.io/Simple-Crop/examples/test-1.html
安装
npm install simple-crop
用法
开源许可协议
MIT License.
原理及实现
全平台(Vue、React、微信小程序)任意角度旋转 图片裁剪组件
https://newbieweb.lione.me/2019/05/16/simple-crop/
确实很喜欢这个插件,但是对于大图iOS下无法加载图片,当前的处理办法是将大的图片在wx.getImageInfo函数的回调中把尺寸调小,但也偶有iOS无法加载的情况产生。我用的iPhone7无问题,但客户的iPhone8 plus偶而还是加载不了。亲们都是怎么处理的呢?
//对于超大的图,回调中加了这么一段
var ratio = 1;
if(res.width>res.height){
if(res.width>800){
ratio = res.width/800;
}
}else{
if(res.height>800){
ratio = res.height/800;
}
}
res.width=Math.round(res.width/ratio);
res.height=Math.round(res.height/ratio);
图片太大报错,具体报错在函数transformCoordinates,在
wx.canvasToTempFilePath({
canvas: self.$cropContent,
width: self.$cropContent.width,
height: self.$cropContent.height,
destWidth: self.$cropContent.width,
destHeight: self.$cropContent.height,
success(res) {
的时候报错了,图片太大,在android机器上,拍摄的照片,百度的时候,有人反馈是小程序提供的canvas不支持android高dpr,dpr>=3的时候会报错。具体怎么修复我没找到。不知道ios会不会报错。
这个组件是我搜了几十个里,做个最理想的一个,就这么个核心bug,非常其他能修复,需要配合的随时喊我。
裁剪框 不能拖动啊?
感谢分享,确实不错
请问现在是不能用了嘛?
2021年1月后这个插件貌似无法使用了。
不支持qq小程序
ios手机上传图片过大会加载不出来 真机调试又不行 开发者工具调试又没有问题 害。。。
打开就闪退
华为手机选择图片无法显示,一片黑