docs: function (width, height, interpolation) {
  		this.widthOriginal = parseInt(this.width);
  		this.heightOriginal = parseInt(this.height);
  		this.targetWidth = Math.abs(parseInt(width) || 0);
  		this.targetHeight = Math.abs(parseInt(height) || 0);
  		this.colorChannels = 4;
  		this.interpolationPass = !!interpolation;
  
  		this.targetWidthMultipliedByChannels = this.targetWidth * this.colorChannels;
  		this.originalWidthMultipliedByChannels = this.widthOriginal * this.colorChannels;
  		this.originalHeightMultipliedByChannels = this.heightOriginal * this.colorChannels;
  		this.widthPassResultSize = this.targetWidthMultipliedByChannels * this.heightOriginal;
  		this.finalResultSize = this.targetWidthMultipliedByChannels * this.targetHeight;
  		
  		
  		if (this.widthOriginal == this.targetWidth) { //Bypass the width resizer pass:
  			this.resizeWidth = this._bypassResizer;
  		}
  		else { //Setup the width resizer pass:
  			this.ratioWeightWidthPass = this.widthOriginal / this.targetWidth;
  			if (this.ratioWeightWidthPass < 1 && this.interpolationPass) {
  				this._initializeFirstPassBuffers(true);
  				this.resizeWidth = this._resizeWidthInterpolatedRGBA;
  			}
  			else {
  				this._initializeFirstPassBuffers(false);
  				this.resizeWidth = this._resizeWidthRGBA;
  			}
  		}
  		if (this.heightOriginal == this.targetHeight) { //Bypass the height resizer pass:
  			this.resizeHeight = this._bypassResizer;
  		}
  		else {	
  			//Setup the height resizer pass:
  			this.ratioWeightHeightPass = this.heightOriginal / this.targetHeight;
  			if (this.ratioWeightHeightPass < 1 && this.interpolationPass) {
  				this._initializeSecondPassBuffers(true);
  				this.resizeHeight = this._resizeHeightInterpolated;
  			}
  			else {
  				this._initializeSecondPassBuffers(false);
  				this.resizeHeight = this._resizeHeightRGBA;
  			}
  		}
  		
  		this.data = this.resizeHeight(this.resizeWidth(this.data));
  		
  		this.width = width;
  		this.height = height;
  	}