function getSourceCanvas(image, _ref6, _ref7, _ref8) {
  var imageAspectRatio = _ref6.aspectRatio,
      imageNaturalWidth = _ref6.naturalWidth,
      imageNaturalHeight = _ref6.naturalHeight,
      _ref6$rotate = _ref6.rotate,
      rotate = _ref6$rotate === void 0 ? 0 : _ref6$rotate,
      _ref6$scaleX = _ref6.scaleX,
      scaleX = _ref6$scaleX === void 0 ? 1 : _ref6$scaleX,
      _ref6$scaleY = _ref6.scaleY,
      scaleY = _ref6$scaleY === void 0 ? 1 : _ref6$scaleY;
  var aspectRatio = _ref7.aspectRatio,
      naturalWidth = _ref7.naturalWidth,
      naturalHeight = _ref7.naturalHeight;
  var _ref8$fillColor = _ref8.fillColor,
      fillColor = _ref8$fillColor === void 0 ? 'transparent' : _ref8$fillColor,
      _ref8$imageSmoothingE = _ref8.imageSmoothingEnabled,
      imageSmoothingEnabled = _ref8$imageSmoothingE === void 0 ? true : _ref8$imageSmoothingE,
      _ref8$imageSmoothingQ = _ref8.imageSmoothingQuality,
      imageSmoothingQuality = _ref8$imageSmoothingQ === void 0 ? 'low' : _ref8$imageSmoothingQ,
      _ref8$maxWidth = _ref8.maxWidth,
      maxWidth = _ref8$maxWidth === void 0 ? Infinity : _ref8$maxWidth,
      _ref8$maxHeight = _ref8.maxHeight,
      maxHeight = _ref8$maxHeight === void 0 ? Infinity : _ref8$maxHeight,
      _ref8$minWidth = _ref8.minWidth,
      minWidth = _ref8$minWidth === void 0 ? 0 : _ref8$minWidth,
      _ref8$minHeight = _ref8.minHeight,
      minHeight = _ref8$minHeight === void 0 ? 0 : _ref8$minHeight;
  var canvas = document.createElement('canvas');
  var context = canvas.getContext('2d');
  var maxSizes = getAdjustedSizes({
    aspectRatio: aspectRatio,
    width: maxWidth,
    height: maxHeight
  });
  var minSizes = getAdjustedSizes({
    aspectRatio: aspectRatio,
    width: minWidth,
    height: minHeight
  }, 'cover');
  var width = Math.min(maxSizes.width, Math.max(minSizes.width, naturalWidth));
  var height = Math.min(maxSizes.height, Math.max(minSizes.height, naturalHeight)); // Note: should always use image's natural sizes for drawing as
  // imageData.naturalWidth === canvasData.naturalHeight when rotate % 180 === 90

  var destMaxSizes = getAdjustedSizes({
    aspectRatio: imageAspectRatio,
    width: maxWidth,
    height: maxHeight
  });
  var destMinSizes = getAdjustedSizes({
    aspectRatio: imageAspectRatio,
    width: minWidth,
    height: minHeight
  }, 'cover');
  var destWidth = Math.min(destMaxSizes.width, Math.max(destMinSizes.width, imageNaturalWidth));
  var destHeight = Math.min(destMaxSizes.height, Math.max(destMinSizes.height, imageNaturalHeight));
  var params = [-destWidth / 2, -destHeight / 2, destWidth, destHeight];
  canvas.width = normalizeDecimalNumber(width);
  canvas.height = normalizeDecimalNumber(height);
  context.fillStyle = fillColor;
  context.fillRect(0, 0, width, height);
  context.save();
  context.translate(width / 2, height / 2);
  context.rotate(rotate * Math.PI / 180);
  context.scale(scaleX, scaleY);
  context.imageSmoothingEnabled = imageSmoothingEnabled;
  context.imageSmoothingQuality = imageSmoothingQuality;
  context.drawImage.apply(context, [image].concat(_toConsumableArray(params.map(function (param) {
    return Math.floor(normalizeDecimalNumber(param));
  }))));
  context.restore();
  return canvas;
}
function getSourceCanvas(image, _ref6, _ref7, _ref8) {
  var imageAspectRatio = _ref6.aspectRatio,
      imageNaturalWidth = _ref6.naturalWidth,
      imageNaturalHeight = _ref6.naturalHeight,
      _ref6$rotate = _ref6.rotate,
      rotate = _ref6$rotate === void 0 ? 0 : _ref6$rotate,
      _ref6$scaleX = _ref6.scaleX,
      scaleX = _ref6$scaleX === void 0 ? 1 : _ref6$scaleX,
      _ref6$scaleY = _ref6.scaleY,
      scaleY = _ref6$scaleY === void 0 ? 1 : _ref6$scaleY;
  var aspectRatio = _ref7.aspectRatio,
      naturalWidth = _ref7.naturalWidth,
      naturalHeight = _ref7.naturalHeight;
  var _ref8$fillColor = _ref8.fillColor,
      fillColor = _ref8$fillColor === void 0 ? 'transparent' : _ref8$fillColor,
      _ref8$imageSmoothingE = _ref8.imageSmoothingEnabled,
      imageSmoothingEnabled = _ref8$imageSmoothingE === void 0 ? true : _ref8$imageSmoothingE,
      _ref8$imageSmoothingQ = _ref8.imageSmoothingQuality,
      imageSmoothingQuality = _ref8$imageSmoothingQ === void 0 ? 'low' : _ref8$imageSmoothingQ,
      _ref8$maxWidth = _ref8.maxWidth,
      maxWidth = _ref8$maxWidth === void 0 ? Infinity : _ref8$maxWidth,
      _ref8$maxHeight = _ref8.maxHeight,
      maxHeight = _ref8$maxHeight === void 0 ? Infinity : _ref8$maxHeight,
      _ref8$minWidth = _ref8.minWidth,
      minWidth = _ref8$minWidth === void 0 ? 0 : _ref8$minWidth,
      _ref8$minHeight = _ref8.minHeight,
      minHeight = _ref8$minHeight === void 0 ? 0 : _ref8$minHeight;
  var canvas = document.createElement('canvas');
  var context = canvas.getContext('2d');
  var maxSizes = getAdjustedSizes({
    aspectRatio: aspectRatio,
    width: maxWidth,
    height: maxHeight
  });
  var minSizes = getAdjustedSizes({
    aspectRatio: aspectRatio,
    width: minWidth,
    height: minHeight
  }, 'cover');
  var width = Math.min(maxSizes.width, Math.max(minSizes.width, naturalWidth));
  var height = Math.min(maxSizes.height, Math.max(minSizes.height, naturalHeight)); 
  

  var destMaxSizes = getAdjustedSizes({
    aspectRatio: imageAspectRatio,
    width: maxWidth,
    height: maxHeight
  });
  var destMinSizes = getAdjustedSizes({
    aspectRatio: imageAspectRatio,
    width: minWidth,
    height: minHeight
  }, 'cover');
  var destWidth = Math.min(destMaxSizes.width, Math.max(destMinSizes.width, imageNaturalWidth));
  var destHeight = Math.min(destMaxSizes.height, Math.max(destMinSizes.height, imageNaturalHeight));
  var params = [-destWidth / 2, -destHeight / 2, destWidth, destHeight];
  canvas.width = normalizeDecimalNumber(width);
  canvas.height = normalizeDecimalNumber(height);
  context.fillStyle = fillColor;
  context.fillRect(0, 0, width, height);
  context.save();
  context.translate(width / 2, height / 2);
  context.rotate(rotate * Math.PI / 180);
  context.scale(scaleX, scaleY);
  context.imageSmoothingEnabled = imageSmoothingEnabled;
  context.imageSmoothingQuality = imageSmoothingQuality;
  context.drawImage.apply(context, [image].concat(_toConsumableArray(params.map(function (param) {
    return Math.floor(normalizeDecimalNumber(param));
  }))));
  context.restore();
  return canvas;
}
function getSourceCanvas ( image , _ref6 , _ref7 , _ref8 ) { var imageAspectRatio = _ref6 . aspectRatio , imageNaturalWidth = _ref6 . naturalWidth , imageNaturalHeight = _ref6 . naturalHeight , _ref6$rotate = _ref6 . rotate , rotate = _ref6$rotate === void 0 ? 0 : _ref6$rotate , _ref6$scaleX = _ref6 . scaleX , scaleX = _ref6$scaleX === void 0 ? 1 : _ref6$scaleX , _ref6$scaleY = _ref6 . scaleY , scaleY = _ref6$scaleY === void 0 ? 1 : _ref6$scaleY ; var aspectRatio = _ref7 . aspectRatio , naturalWidth = _ref7 . naturalWidth , naturalHeight = _ref7 . naturalHeight ; var _ref8$fillColor = _ref8 . fillColor , fillColor = _ref8$fillColor === void 0 ? 'transparent' : _ref8$fillColor , _ref8$imageSmoothingE = _ref8 . imageSmoothingEnabled , imageSmoothingEnabled = _ref8$imageSmoothingE === void 0 ? true : _ref8$imageSmoothingE , _ref8$imageSmoothingQ = _ref8 . imageSmoothingQuality , imageSmoothingQuality = _ref8$imageSmoothingQ === void 0 ? 'low' : _ref8$imageSmoothingQ , _ref8$maxWidth = _ref8 . maxWidth , maxWidth = _ref8$maxWidth === void 0 ? Infinity : _ref8$maxWidth , _ref8$maxHeight = _ref8 . maxHeight , maxHeight = _ref8$maxHeight === void 0 ? Infinity : _ref8$maxHeight , _ref8$minWidth = _ref8 . minWidth , minWidth = _ref8$minWidth === void 0 ? 0 : _ref8$minWidth , _ref8$minHeight = _ref8 . minHeight , minHeight = _ref8$minHeight === void 0 ? 0 : _ref8$minHeight ; var canvas = document . createElement ( 'canvas' ) ; var context = canvas . getContext ( '2d' ) ; var maxSizes = getAdjustedSizes ( { aspectRatio : aspectRatio , width : maxWidth , height : maxHeight } ) ; var minSizes = getAdjustedSizes ( { aspectRatio : aspectRatio , width : minWidth , height : minHeight } , 'cover' ) ; var width = Math . min ( maxSizes . width , Math . max ( minSizes . width , naturalWidth ) ) ; var height = Math . min ( maxSizes . height , Math . max ( minSizes . height , naturalHeight ) ) ; // Note: should always use image's natural sizes for drawing as // imageData.naturalWidth === canvasData.naturalHeight when rotate % 180 === 90 var destMaxSizes = getAdjustedSizes ( { aspectRatio : imageAspectRatio , width : maxWidth , height : maxHeight } ) ; var destMinSizes = getAdjustedSizes ( { aspectRatio : imageAspectRatio , width : minWidth , height : minHeight } , 'cover' ) ; var destWidth = Math . min ( destMaxSizes . width , Math . max ( destMinSizes . width , imageNaturalWidth ) ) ; var destHeight = Math . min ( destMaxSizes . height , Math . max ( destMinSizes . height , imageNaturalHeight ) ) ; var params = [ - destWidth / 2 , - destHeight / 2 , destWidth , destHeight ] ; canvas . width = normalizeDecimalNumber ( width ) ; canvas . height = normalizeDecimalNumber ( height ) ; context . fillStyle = fillColor ; context . fillRect ( 0 , 0 , width , height ) ; context . save ( ) ; context . translate ( width / 2 , height / 2 ) ; context . rotate ( rotate * Math . PI / 180 ) ; context . scale ( scaleX , scaleY ) ; context . imageSmoothingEnabled = imageSmoothingEnabled ; context . imageSmoothingQuality = imageSmoothingQuality ; context . drawImage . apply ( context , [ image ] . concat ( _toConsumableArray ( params . map ( function ( param ) { return Math . floor ( normalizeDecimalNumber ( param ) ) ; } ) ) ) ) ; context . restore ( ) ; return canvas ; }
Get a canvas which drew the given image.
@param {HTMLImageElement} image - The image for drawing.
@param {Object} imageData - The image data.
@param {Object} canvasData - The canvas data.
@param {Object} options - The options.
@returns {HTMLCanvasElement} The result canvas.
Get a canvas which drew the given image .