前端npm包- CropperJS

ops/2025/3/18 15:11:07/

文章目录

  • 一、CropperJS
      • **核心特性**
      • **官网与文档**
      • **安装与使用**
        • 1. **通过 npm/yarn/pnpm 安装**
        • 2. **HTML 结构**
        • 3. **引入 CSS 和 JS**
        • 4. **初始化裁剪器**
      • **相关插件/替代方案**
      • **适用场景**
      • **注意事项**
  • 总结


一、CropperJS

cropperjs 是一个轻量级、功能强大的 图片裁剪插件,专为前端开发者设计。它支持图片的裁剪、旋转、缩放等操作,适用于头像上传、图片编辑等场景,具有响应式、触摸屏友好和丰富的 API 配置。


核心特性

裁剪功能:支持自由比例、固定比例或固定尺寸裁剪。
交互友好:拖拽、缩放、旋转(支持触摸屏设备)。
响应式:自动适应容器尺寸变化。
事件回调:提供裁剪区域坐标变化、图片加载等事件。
API 丰富:可通过代码动态调整裁剪区域、导出结果等。


官网与文档

官网地址:https://fengyuanchen.github.io/cropperjs/
GitHub 仓库:https://github.com/fengyuanchen/cropperjs
文档与示例:官网提供了完整的 API 文档和实时演示。


安装与使用

npmyarnpnpm__27">1. 通过 npm/yarn/pnpm 安装
pnpm add cropperjs
2. HTML 结构
<div><img id="image" src="your-image.jpg" alt="Image to crop">
</div>
3. 引入 CSS 和 JS
import 'cropperjs/dist/cropper.css';
import Cropper from 'cropperjs';
4. 初始化裁剪器
const image = document.getElementById('image');
const cropper = new Cropper(image, {aspectRatio: 16 / 9,  // 固定比例viewMode: 1,         // 限制裁剪区域在图片范围内crop(event) {console.log(event.detail.x, event.detail.y); // 实时输出裁剪坐标},
});// 获取裁剪结果(Base64 或 Blob)
const croppedData = cropper.getCroppedCanvas().toDataURL();

相关插件/替代方案

  1. React 集成版
    react-cropper: https://github.com/react-cropper/react-cropper
    专为 React 设计的封装版本,保留原生 Cropper.js 的功能。

  2. 其他图片处理库
    PhotoSwipe: https://photoswipe.com/(图片画廊插件)
    Filerobot: https://www.filerobot.com/(商业级图片编辑器)


适用场景

• 用户头像上传(如社交平台)。
• 电商商品图片编辑(裁剪主图、细节图)。
• 在线设计工具中的图片处理模块。


注意事项

依赖项:纯 JavaScript 实现,无 jQuery 依赖。
兼容性:支持现代浏览器(Chrome、Firefox、Safari、Edge)。
性能:处理大图时建议先压缩再裁剪,避免卡顿。

如果需要更高级的功能(如滤镜、贴图),可以结合其他库(如 fabric.jskonva.js)使用。


总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。


http://www.ppmy.cn/ops/166794.html

相关文章

2.2 B/S架构和Tomcat服务器

本文介绍了B/S架构、Tomcat服务器及其与IDEA的整合。B/S架构是一种基于浏览器的网络计算模式&#xff0c;具有跨平台、易用性强的特点&#xff0c;适用于互联网应用。Tomcat是Apache开源的Web服务器&#xff0c;支持Java Web应用的部署和运行。文章通过实例演示了如何下载、安装…

一键爬取b站视频

同学们。废话不多说&#xff0c; b站视频素材多&#xff0c; 二次加工就归你&#xff0c; 三话不说爬起来&#xff0c; 犯法违纪咱不干 代码 import json import requests from bs4 import BeautifulSoup import re# 目标网址bvnane"BV1hUQEYCEyY" pp("0&q…

前端安全之DOMPurify基础使用

DOMPurify时一款专门用于防御XSS攻击的库&#xff0c;通过净化HTML的内容&#xff0c;移除恶意脚本&#xff0c;同时保留安全的HTML标签和数学。以下是基础使用指南&#xff0c;涵盖基础的安装与用法。 1&#xff0c;安装DOMPurify 通过npm或yarn安装 npm install dompurify …

Excel单元格中插入自定义超链接

Excel单元格中插入自定义超链接 方法一、插入静态自定义超链接 适用场景: 手动设置固定显示文本和链接地址 快捷键 Ctrl K 可显示插入超链接窗口. 方法二、适用HYPERLINK函数动态生成超链接 跳转到超链接 HYPERLINK("https://www.bilibili.com/?","CS…

专栏特辑--如何查询Essential Science Indicators (ESI)- 高被引论文--我的文章和高引文章的差距

灵感就是今天终于查询了一下高被引文章,网上对于ESI高被引的查询方法五花八门,很多都是过时的或者极为繁琐的,或者说半天都说不清楚的,现在来总结梳理一下,以备不时之需。这里只讨论高被引文章,不讨论热点(hot)文章。 所谓高被引--就是received enough citations to p…

【第K小数——可持久化权值线段树】

题目 代码 #include <bits/stdc.h> using namespace std;const int N 1e5 10;int a[N], b[N]; int n, m, len; int rt[N], idx; // idx 是点分配器struct node {int l, r;int s; } tr[N * 22];int getw(int x) {return lower_bound(b 1, b len 1, x) - b; }int bui…

Word 小黑第22套

对应大猫23 续编号&#xff08;编号断了&#xff0c;从一开始&#xff09;&#xff1a;点编号&#xff0c;再设置编号值 插入以图标方式显示的文档&#xff1a;插入 -对象 -由文件创建 &#xff08;这里要链接到文件也要勾选 不然扣一分&#xff09; 一个页面设为横向不影响上…

探索具身多模态大模型:开发、数据集和未来方向(下)

25年2月来自广东人工智能和数字经济实验室、深圳大学、巴黎理工学院和巴黎高等师范学院、中山大学的论文“Exploring Embodied Multimodal Large Models: Development, Datasets, and Future Directions”。 近年来&#xff0c;具身多模态大模型 (EMLM) 因其在复杂的现实环境中…