anchor.diff:  
     int maxWidth, minWidth, maxHeight, minHeight;
   
  +  int _cropW, _cropH;
  +
     CanvasHandler _handler;
   
     CanvasLayer _cropLayer = new CanvasLayer(), _imageLayer = new CanvasLayer();
  
positive.code:     if (properties.url == null) {
        return;
      }
      _handler = new CanvasHandler(canvas);
      var rotated = properties.rotate % 2 == 1;
      _originalWidth = _handler.width = rotated?properties.width:properties.height;
      _originalHeight = _handler.height = rotated?properties.height:properties.width;
      _handler.addLayer(_imageLayer);
      _fullImage = new ImageElement(src:"/"+properties.url);
      _fullImage.onLoad.listen((_) {
  
negative.code:     if (r == _rotate) {
        return;
      }
      _rotate = r;
      _image.rotationDeg = _cropShape.rotationDeg = 90 * r;
      var w = _handler.width;
  