Angularjs Compress Image Before Upload
Angularjs Compress Image |
Angularjs Uploading the image compressed method. AnguarJs Image Crop Click Here Here Code But This method is very slow loading. try this
View.html
<div>
<div class="rating-camera-icon">
<input type="file" accept="image/*" name="file" ng-file-
select="onFileSelect($files)">
</div>
<img ng-show="fileName" ng-src="server/{{fileName}}" width="40"
style="margin-left:10px">
</div>
Controller.js
$scope.onFileSelect = function($files) { for (var i = 0; i < $files.length; i++) { var file = $files[i]; if (!file.type.match(/image.*/)) { // this file is not an image. }; $scope.upload = $upload.upload({ url: BASE_URL + 'upload.php', data: {myObj: $scope.myModelObj}, file: file }).progress(function(evt) { // console.log('percent: ' + parseInt(100.0 * evt.loaded / evt.total)); // $scope.fileProgress = evt.loaded / evt.total * 100.0; }).success(function(data, status, headers, config) { // file is uploaded successfully $scope.fileName = data; }); } };
Angularjs Image Compress is very slow load so another method is Angularjs Resize Image and Uploading.
// from an input element var filesToUpload = input.files; var file = filesToUpload[0]; var img = document.createElement("img"); var reader = new FileReader(); reader.onload = function(e) {img.src = e.target.result} reader.readAsDataURL(file); var ctx = canvas.getContext("2d"); ctx.drawImage(img, 0, 0); var MAX_WIDTH = 800; var MAX_HEIGHT = 600; var width = img.width; var height = img.height; if (width > height) { if (width > MAX_WIDTH) { height *= MAX_WIDTH / width; width = MAX_WIDTH; } } else { if (height > MAX_HEIGHT) { width *= MAX_HEIGHT / height; height = MAX_HEIGHT; } } canvas.width = width; canvas.height = height; var ctx = canvas.getContext("2d"); ctx.drawImage(img, 0, 0, width, height); var dataurl = canvas.toDataURL("image/png");
1 comments:
commentshow to preivew the image before upload
Replying in Angular2 ioni2