Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to resize the image by dragging

I have an image and need to resize it by dragging its corners, is there any options in angularjs?

As of now I am doing manual image resize like this:

<img src="~/Content/images/login-logo.png" width="{{image.width}}" height="{{image.size}}"/>
<div class="right-wrapper">
  <h3 class="right-head">Appearance <img src="~/Content/images/info-icon.png"></h3>
  <div ng-if="isImage">
      <div ng-class="form-group">
          size
          <input class="form-control" type="textbox" ng-model="image.size" />
      </div>
      <div ng-class="form-group">
          width
          <input class="form-control" type="textbox" ng-model="image.width" />
      </div>
  </div>
</div>

But I want to resize it by dragging its corners.

like image 585
Syed Rasheed Avatar asked Feb 24 '16 04:02

Syed Rasheed


2 Answers

Hope this angular directive helps

(function () {
  'use strict';

  angular.module('myApp', [])

  .directive('resizable', function () {

    return {
        restrict: 'A',
        scope: {
            callback: '&onResize'
        },
        link: function postLink(scope, elem, attrs) {
            elem.resizable({handles: "all"});
            elem.on('resize', function (evt, ui) {
              scope.$apply(function() {
                if (scope.callback) { 
                  scope.callback({$evt: evt, $ui: ui }); 
                }                
              })
            });
        }
    };
  })


  .controller('MainCtrl', function ($scope) {

    $scope.resize = function(evt,ui) {
      //console.log (evt,ui);
      $scope.w = ui.size.width;
      $scope.h = ui.size.height;
    }

  });

})();
<head>
  <link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css">
  <link rel="stylesheet" href="//code.jquery.com/ui/1.11.2/themes/smoothness/jquery-ui.css">
  <script src="//code.jquery.com/jquery-1.10.2.js"></script>
  <script src="//code.jquery.com/ui/1.11.2/jquery-ui.js"></script>
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.1/angular.min.js"></script>
</head>

<body class="jumbotron" ng-controller="MainCtrl" ng-app="myApp">
	
  <h2>Resizable directive in AngularJS and jQueryUI</h2>
  <p>Drag the cursor to resize</p>
  
  <img src="http://dummyimage.com/600x400/fff/000" resizable on-resize="resize($evt, $ui)" width="200" height="200" />
	<div ng-show="w">{{w}}:{{h}}px</div>
</body>
like image 173
Narendra CM Avatar answered Sep 30 '22 15:09

Narendra CM


This solves my problem

Resizeable:

<div ngResizable > I am resizable </div>

Well you can use both directives concurrently if you wish:(Resizeable & Draggable)

<div ngDraggable ngResizable> I'm now draggable and resizable </div>

Using below link you will find more details.

angular2-draggable

like image 30
Awais Avatar answered Sep 30 '22 13:09

Awais