Angular实现图片裁剪工具ngImgCrop实践
时间:2019-03-31
本文章向大家介绍Angular实现图片裁剪工具ngImgCrop实践,主要包括Angular实现图片裁剪工具ngImgCrop实践使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
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;
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
- JavaWeb(五)之JSTL标签库
- spring cloud:Edgware.RELEASE版本中zuul回退方法的变化
- js中几种实用的跨域方法原理详解
- spring cloud:Edgware.RELEASE版本hystrix超时新坑
- JS魔法堂:再识ASCII实体、符号实体和字符实体
- MyBatis之传入参数——parameterType
- 被解放的姜戈07 马不停蹄
- 机器学习笔记(6):多类逻辑回归-使用gluon
- JS魔法堂:被玩坏的innerHTML、innerText、textContent和value属性
- JavaWeb(四)EL表达式
- eclipse SWT Designer 插件
- 身份证号码验证算法
- JS读书心得:《JavaScript框架设计》——第12章 异步处理
- 被解放的姜戈04 各取所需
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- PHP的new static和new self的区别与使用
- php时间戳转换代码详解
- thinkPHP和onethink微信支付插件分享
- PHP各种常见经典算法总结【排序、查找、翻转等】
- php字符串截取函数mb_substr用法实例分析
- PHP利用DWZ.CN服务生成短网址
- php精度计算的问题解析
- PHP使用Session实现上传进度功能详解
- php常用字符串查找函数strstr()与strpos()实例分析
- php 根据URL下载远程图片、压缩包、pdf等文件到本地
- PHP使用HTML5 FormData对象提交表单操作示例
- python接入支付宝的实例操作
- php实现网页上一页下一页翻页过程详解
- Yii 使用intervention/image拓展实现图像处理功能
- PHP常用的类封装小结【4个工具类】