Angular实现图片裁剪工具ngImgCrop实践
发布时间 - 2026-01-11 02:50:29 点击率:次ngImgCrop是AngularJS的一个图片裁剪插件,它实际上是一个封装好的AngularJs指令,可以让用户以圆框或者方框来裁剪图片

1、使用效果截图
2、demo演示
demo演示地址 http://jsfiddle.net/alexk111/rw6q9/
3、下载安装
可以使用两种方式来下载ngImgCrop插件
a、GitHub下载:git clone https://github.com/alexk111/ngImgCrop.git
b、bower安装,如果项目中使用了bower,使用命令bower install ngImgCrop即可
4、添加js和css依赖到项目中
<script src="angular.js"></script> <script src="ng-img-crop.js"></script> <link rel="stylesheet" type="text/css" href="ng-img-crop.css" rel="external nofollow" rel="external nofollow" >
5、添加AngularJs依赖
var myAppModule = angular.module('MyApp', ['ngImgCrop']);
6、使用样例
<html>
<head>
<script src="angular.js"></script>
<script src="ng-img-crop.js"></script>
<link rel="stylesheet" type="text/css" href="ng-img-crop.css" rel="external nofollow" rel="external nofollow" >
<style>
.cropArea {
background: #E4E4E4;
overflow: hidden;
width:500px;
height:350px;
}
</style>
<script>
angular.module('app', ['ngImgCrop'])
.controller('Ctrl', function($scope) {
$scope.myImage='';
$scope.myCroppedImage='';
var handleFileSelect=function(evt) {
var file=evt.currentTarget.files[0];
var reader = new FileReader();
reader.onload = function (evt) {
$scope.$apply(function($scope){
$scope.myImage=evt.target.result;
});
};
reader.readAsDataURL(file);
};
angular.element(document.querySelector('#fileInput')).on('change',handleFileSelect);
});
</script>
</head>
<body ng-app="app" ng-controller="Ctrl">
<div>Select an image file: <input type="file" id="fileInput" /></div>
<div class="cropArea">
<img-crop image="myImage" result-image="myCroppedImage"></img-crop>
</div>
<div>Cropped Image:</div>
<div><img ng-src="{{myCroppedImage}}" /></div>
</body>
</html>
7、属性介绍
<img-crop
image="{string}" 需要进行裁剪的图片文件 如$scope.myImage
result-image="{string}" 保存裁剪结果的图片文件 如$scope.myCroppedImage
[change-on-fly="{boolean}"] 可选项:表示是否在拖拽裁剪区域时实时更新结果文件
[area-type="{circle|square}"] 可选项:表示裁剪窗口是方的还是圆的,默认是圆的
[area-min-size="{number}"] 可选项,表示裁剪结果的最小大小,默认是80,即结果最小是高80像素、宽80像素
[result-image-size="{number}"] 可选项,表示裁剪结果大小,默认是200,即高200像素、宽200像素
[result-image-format="{string}"] 可选项,表示裁剪结果保存的文件类型,可以选择image/jpeg、image/png、image/webp,默认是image/png
[result-image-quality="{number}"] 可选项,表示裁剪结果的质量,取值在0.0到1.0之间
[on-change="{expression}"] 可选项,检测到图片修改后执行的表达式
[on-load-begin="{expression"] 可选项,图片开始加载执行的表达式
[on-load-done="{expression"] 可选项,图片加载完成执行的表达式
[on-load-error="{expression"] 可选项,图片加载失败执行的表达式
></img-crop>
8、注意点
结果文件是base64的格式,如果是直接展示的话没有问题,如果是以文件格式要将图片上传给后台服务器,那么还需要将base64转换成图片文件格式,附上我自己的转换代码
$scope.file可直接作为File文件格式上传至后台服务器
function getBlobBydataURL(dataURI,type){
var binary = atob(dataURI.split(',')[1]);
var array = [];
for(var i = 0; i < binary.length; i++) {
array.push(binary.charCodeAt(i));
}
return new Blob([new Uint8Array(array)], {type:type });
}
var $Blob = getBlobBydataURL($scope.myCroppedImage,"image/png");
$scope.file = $Blob;
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# ngimgcrop
# 裁剪
# Angular
# 图片裁剪
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
C++用Dijkstra(迪杰斯特拉)算法求最短路径
使用豆包 AI 辅助进行简单网页 HTML 结构设计
HTML5打空格有哪些误区_新手常犯的空格使用错误【技巧】
Edge浏览器如何截图和滚动截图_微软Edge网页捕获功能使用教程【技巧】
JavaScript中的标签模板是什么_它如何扩展字符串功能
Laravel的辅助函数有哪些_Laravel常用Helpers函数提高开发效率
详解Android图表 MPAndroidChart折线图
HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】
Android使用GridView实现日历的简单功能
做企业网站制作流程,企业网站制作基本流程有哪些?
edge浏览器无法安装扩展 edge浏览器插件安装失败【解决方法】
Laravel怎么配置.env环境变量_Laravel生产环境敏感数据保护与读取【方法】
Python进程池调度策略_任务分发说明【指导】
移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?
如何自定义建站之星模板颜色并下载新样式?
Laravel Blade模板引擎语法_Laravel Blade布局继承用法
PHP 实现电台节目表的智能时间匹配与今日/明日轮播逻辑
如何快速搭建自助建站会员专属系统?
如何在新浪SAE免费搭建个人博客?
网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?
Win11怎么设置默认图片查看器_Windows11照片应用关联设置
Laravel怎么配置不同环境的数据库_Laravel本地测试与生产环境动态切换【方法】
活动邀请函制作网站有哪些,活动邀请函文案?
软银砸40亿美元收购DigitalBridge 强化AI资料中心布局
HTML5空格和nbsp有啥关系_nbsp的作用及使用场景【说明】
如何用低价快速搭建高质量网站?
香港服务器选型指南:免备案配置与高效建站方案解析
Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议
Internet Explorer官网直接进入 IE浏览器在线体验版网址
三星、SK海力士获美批准:可向中国出口芯片制造设备
宙斯浏览器文件分类查看教程 快速筛选视频文档与图片方法
怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?
javascript中的数组方法有哪些_如何利用数组方法简化数据处理
Laravel如何实现URL美化Slug功能_Laravel使用eloquent-sluggable生成别名【方法】
香港服务器租用每月最低只需15元?
java获取注册ip实例
php json中文编码为null的解决办法
Android利用动画实现背景逐渐变暗
laravel怎么实现图片的压缩和裁剪_laravel图片压缩与裁剪方法
Laravel distinct去重查询_Laravel Eloquent去重方法
潮流网站制作头像软件下载,适合母子的网名有哪些?
在Oracle关闭情况下如何修改spfile的参数
宙斯浏览器视频悬浮窗怎么开启 边看视频边操作其他应用教程
Laravel队列由Redis驱动怎么配置_Laravel Redis队列使用教程
zabbix利用python脚本发送报警邮件的方法
如何基于云服务器快速搭建个人网站?
Laravel中Service Container是做什么的_Laravel服务容器与依赖注入核心概念解析
详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)
JS去除重复并统计数量的实现方法
新三国志曹操传主线渭水交兵攻略

