code: function(path, callback) {
        return Jimp.read(path, function (err, image) {
          var originalWidth = image.bitmap.width;
          var originalHeight = image.bitmap.height;
          image.exifRotate();
  
          var extension = image.getExtension();
          extension = extension === 'jpeg' ? 'jpg' : extension;
  
          callback(err, {
            extension: extension,
            width: image.bitmap.width,
            height: image.bitmap.height,
            // Jimp blows away exif data on write, so keeping a reference to the original orientation is not useful
            orientation: 'Undefined',
            originalWidth: originalWidth,
            originalHeight: originalHeight
          });
        });
      }
docs: Identify a local image file.
  
  If the file is not an image or is too defective to be identified an error is
  passed to the callback.
  
  Otherwise the second argument to the callback is guaranteed to have extension,
  width, height, orientation, originalWidth and originalHeight properties.
  extension will be gif, jpg or png and is detected from the file's true contents,
  not the original file extension. With the Jimp backend, width and height
  are automatically rotated to TopLeft orientation while originalWidth and
  originalHeight are not.
  
  Since Jimp blows away exif data upon saving the orientation property will be set to 'Undefined'.
  
  @param {String} path Local filesystem path to image file
  @param {Function} callback Receives the usual err argument, followed by an
  object with extension, width, height, orientation, originalWidth and
  originalHeight properties.
  
  @see Uploadfs#copyImageIn