anchor.diff:  
     int maxWidth, minWidth, maxHeight, minHeight;
   
  +  int _cropW, _cropH;
  +
     CanvasHandler _handler;
   
     CanvasLayer _cropLayer = new CanvasLayer(), _imageLayer = new CanvasLayer();
  
positive.code: 
    void setCrop(double x, double y, double width, double height) {
      _cropShape.setCrop(x, y, width, height);
  
      if (!_cropLayer.handlerSet) {
        _handler.addLayer(_cropLayer);
  
  
negative.code:       }
  
        if (properties.width != null) {
          if(_isRotated){
            _updateSize(properties.height, properties.width);
          } else {
            _updateSize(properties.width, properties.height);
          }
        }
        if (properties.cropX != null) {
          setCrop(properties.cropX / _handler.width, properties.cropY / _handler.height, properties.cropW / _handler.width, properties.cropH / _handler.height);
        } else {
  