photoclip / 移动端图片上传剪裁插件 /一款手势驱动的裁图插件

官方网站 https://www.npmjs.com/package/photoclip

介绍

  • 在移动设备上双指捏合为缩放,双指转动为旋转
  • 在PC设备上鼠标滚轮为缩放,每次双击则顺时针旋转90度

兼容

IE10及以上版本,Chrome、Firefox、Safari、Android、微信等主流先进浏览器

依赖插件

iscroll-zoom.js
hammer.js
lrz.all.bundle.js

使用方法

<div id="clipArea"></div>
<input type="file" id="file" />
...
<script src="js/iscroll-zoom.js"></script>
<script src="js/hammer.min.js"></script>
<script src="js/lrz.all.bundle.js"></script>
<script src="js/PhotoClip.js"></script>
<script>
var pc = new PhotoClip('#clipArea');
file.addEventListener('change', function() {
    pc.load(this.files[0]);
});
</script> 

PhotoClip 构造函数

new PhotoClipcontainer [, options] )

构造函数有两个主要参数:

container

表示图片裁剪容器的选择器或者DOM对象。

options

配置选项,详细配置如下:

  • size      截取框大小。默认值为 [100,100]

    值为数字或者数组。
    当值为数字时,表示截取框为宽高都等于该值的正方形。
    当值为数组时,数组中索引[0][1]所对应的值分别表示宽和高。

  • adaptive    截取框自适应。默认为 ''

    类型为:字符串或者数组。

    设置该选项后,size 选项将会失效,此时 size 进用于计算截取框的宽高比例。
    当值为一个百分数字符串时,表示截取框的宽度百分比。
    当值为数组时,数组中索引 [0] 和 [1] 所对应的值分别表示宽和高的百分比(不是宽与高的百分比,是宽相对于剪裁容器宽的百分比,高相对于剪裁容器高的百分比)。<

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
createObjectURL 是一个用于生成 Blob 对象的 URL 的方法,可以用于实现图片剪裁。具体步骤如下: 1. 首先,将用户选择的图片文件读取为 Blob 对象。可以使用 FileReader 对象的 readAsArrayBuffer、readAsBinaryString、readAsDataURL 或 readAsText 方法来读取文件。 2. 接下来,使用 HTML5 的 canvas 元素创建一个画布,并获取其上下文对象。 3. 将读取到的图片文件绘制到画布上,可以使用 drawImage 方法来实现。 4. 根据需要进行图片剪裁操作,可以使用 canvas 的裁剪方法(如 clip 方法)或者直接设置绘制区域(如 drawImage 方法的参数)来实现。 5. 最后,使用 toDataURL 方法将剪裁后的画布内容转换为 Data URL,即可得到剪裁后的图片。 以下是一个简单的示例代码: ```javascript // 选择图片文件并读取为 Blob 对象 const fileInput = document.getElementById('fileInput'); const file = fileInput.files; const blob = new Blob([file], { type: file.type }); // 创建 URL 对象 const url = URL.createObjectURL(blob); // 创建画布并获取上下文对象 const canvas = document.createElement('canvas'); const ctx = canvas.getContext('2d'); // 加载图片并绘制到画布上 const img = new Image(); img.onload = function() { // 绘制原始图片 ctx.drawImage(img, 0, 0); // 进行图片剪裁操作 // ... // 将剪裁后的画布内容转换为 Data URL const croppedDataURL = canvas.toDataURL(); // 使用剪裁后的图片进行后续操作 // ... }; img.src = url; ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值