anchor.diff:      _loadFile();
     }
   
  -  /// Mime type of the file (according to its file name).
  -  String get _mime {
  -    int dotIndex = _file.name.lastIndexOf('.');
  -    if (dotIndex < 1) return null;
  -    String ext = _file.name.substring(dotIndex + 1);
  -    if (ext.length < 3) return null;
  -    ext = ext.toLowerCase();
  -    switch(ext) {
  -      case 'jpg':
  -      case 'jpeg':
  -        return 'image/jpeg';
  -      case 'gif':
  -        return 'image/gif';
  -      case 'png':
  -        return 'image/png';
  -      default:
  -        return null;
  -    }
  -  }
  -
     _loadFile() {
  -    _image.onLoad.listen((_) {
  -      resize();
  -    });
  +    _image.onLoad.listen((_) => resize());
       _file.getBytes().then((chrome.ArrayBuffer content) {
         String base64 = CryptoUtils.bytesToBase64(content.getBytes());
  -      _image.src = 'data:${_mime};base64,$base64';
  +      String mimeType = mime.lookupMimeType(_file.name);
  +      _image.src = 'data:${mimeType};base64,$base64';
       });
     }
   
  
positive.code:       }
      } else {
        double maxDx = (_imageWidth - _width) / 2;
        if (_dx > maxDx) _dx = maxDx;
        else if (_dx < -maxDx) _dx = -maxDx;
      }
  
      if (_imageHeight < _height) {
  
negative.code: 
    ImageViewer(this._file) {
      _image.draggable = false;
      html.window.onResize.listen((_) => resize());
      rootElement.classes.add('imageeditor-root');
      rootElement.append(_image);
      rootElement.onMouseWheel.listen(_handleMouseWheel);
  