code: public ColorPixel convertRange(double lowerLimitNow, double upperLimitNow, double lowerLimitAfter, double upperLimitAfter){
  		//		double currentRange = upperLimitNow-lowerLimitNow;
  		//		double newRange = upperLimitAfter-lowerLimitAfter;
  		//		double scaling = newRange/currentRange;
  		double scaling = (upperLimitAfter-lowerLimitAfter)/(upperLimitNow-lowerLimitNow);
  		setRGB_fromDouble_preserveAlpha(
  				lowerLimitAfter+(r_asDouble()-lowerLimitNow)*scaling,
  				lowerLimitAfter+(g_asDouble()-lowerLimitNow)*scaling,
  				lowerLimitAfter+(b_asDouble()-lowerLimitNow)*scaling);
  		return this;
  	}
docs: Converts the pixels RGB channel values from one value range to another.
  Alpha is preserved.
  <p>
  Suppose we know the pixels value range is currently from -10 to 10, and we want to
  change that value range to 0.0 to 1.0, then the call would look like this:<br>
  {@code convertRange(-10,10, 0,1)}.<br>
  A channel value of -10 would then be 0, a channel value of 0 would then be 0.5,
  a channel value 20 would then be 1.5 (even though it is out of range).
  
  @param lowerLimitNow the lower limit of the currently assumed value range
  @param upperLimitNow the upper limit of the currently assumed value range
  @param lowerLimitAfter the lower limit of the desired value range
  @param upperLimitAfter the upper limit of the desired value range
  @return this pixel for chaining.
  
  @see #scale(double)