您好,登錄后才能下訂單哦!
小編給大家分享一下Angular如何實(shí)現(xiàn)圖片裁剪工具ngImgCrop,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
ngImgCrop是AngularJS的一個(gè)圖片裁剪插件,它實(shí)際上是一個(gè)封裝好的AngularJs指令,可以讓用戶以圓框或者方框來(lái)裁剪圖片
1、使用效果截圖
2、demo演示
demo演示地址 http://jsfiddle.net/alexk111/rw6q9/
3、下載安裝
可以使用兩種方式來(lái)下載ngImgCrop插件
a、GitHub下載:git clone https://github.com/alexk111/ngImgCrop.git
b、bower安裝,如果項(xiàng)目中使用了bower,使用命令bower install ngImgCrop即可
4、添加js和css依賴到項(xiàng)目中
<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}" 需要進(jìn)行裁剪的圖片文件 如$scope.myImage result-image="{string}" 保存裁剪結(jié)果的圖片文件 如$scope.myCroppedImage [change-on-fly="{boolean}"] 可選項(xiàng):表示是否在拖拽裁剪區(qū)域時(shí)實(shí)時(shí)更新結(jié)果文件 [area-type="{circle|square}"] 可選項(xiàng):表示裁剪窗口是方的還是圓的,默認(rèn)是圓的 [area-min-size="{number}"] 可選項(xiàng),表示裁剪結(jié)果的最小大小,默認(rèn)是80,即結(jié)果最小是高80像素、寬80像素 [result-image-size="{number}"] 可選項(xiàng),表示裁剪結(jié)果大小,默認(rèn)是200,即高200像素、寬200像素 [result-image-format="{string}"] 可選項(xiàng),表示裁剪結(jié)果保存的文件類(lèi)型,可以選擇image/jpeg、image/png、image/webp,默認(rèn)是image/png [result-image-quality="{number}"] 可選項(xiàng),表示裁剪結(jié)果的質(zhì)量,取值在0.0到1.0之間 [on-change="{expression}"] 可選項(xiàng),檢測(cè)到圖片修改后執(zhí)行的表達(dá)式 [on-load-begin="{expression"] 可選項(xiàng),圖片開(kāi)始加載執(zhí)行的表達(dá)式 [on-load-done="{expression"] 可選項(xiàng),圖片加載完成執(zhí)行的表達(dá)式 [on-load-error="{expression"] 可選項(xiàng),圖片加載失敗執(zhí)行的表達(dá)式 ></img-crop>
8、注意點(diǎn)
結(jié)果文件是base64的格式,如果是直接展示的話沒(méi)有問(wèn)題,如果是以文件格式要將圖片上傳給后臺(tái)服務(wù)器,那么還需要將base64轉(zhuǎn)換成圖片文件格式,附上我自己的轉(zhuǎn)換代碼
$scope.file可直接作為File文件格式上傳至后臺(tái)服務(wù)器
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;
看完了這篇文章,相信你對(duì)“Angular如何實(shí)現(xiàn)圖片裁剪工具ngImgCrop”有了一定的了解,如果想了解更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。