anchor.diff:      if (width != -1) {
         image = copyResize(image, width, height, NEAREST);
       }
  -    String filename = _outputFolder;
  -    if (_outputFilename == null) {
  -      filename = filename + new DateTime.now().toString() + '.png';
  -    } else {
  -      filename = filename + _outputFilename;
  -    }
  -    new io.File(filename).create(recursive: true).then((io.File file) {
  -      file.writeAsBytesSync(encodePng(image));
  -    });
  +
  +    String filePath = _computeFilePath("${new DateTime.now()}.png");
  +    _writeImageSync(filePath, image);
     }
   
     void render_SCALING_HACK(num width, num height) {
  
positive.code:       }
      }
  
      String filename = _outputFolder;
      if (_outputFilename == null) {
        filename = filename +
            new DateTime.now().toString() +
            '_${areaX.min},${areaX.max}_${areaY.min},${areaY.max}' +
            '.png';
      } else {
        filename = filename + _outputFilename;
      }
      new io.File(filename).create(recursive: true).then((io.File file) {
        file.writeAsBytesSync(encodePng(image));
      });
    }
  
    /// Applies the transforms to the stored data points.
  
negative.code: //    if (width != -1) {
  //      image = copyResize(image, width, height, NEAREST);
  //    }
  
      String filePath = _computeFilePath("${new DateTime.now()}.png");
      _writeImageSync(filePath, image);
    }
  
    /// Writes only the selected range of the visualisation to file. No scaling.
  