text: // Adapted from http://gimp.sourcearchive.com/documentation/2.6.6-1ubuntu1/color-to-alpha_8c-source.html
  /*
      toAlpha returns a color where the values of the argument have been converted to alpha
  */
  ONECOLOR.installMethod('toAlpha', function (color) {
      var me = this.rgb(),
          other = ONECOLOR(color).rgb(),
          epsilon = 1e-10,
          a = new ONECOLOR.RGB(0, 0, 0, me._alpha),
          channels = ['_red', '_green', '_blue'];
  
      channels.forEach(function (channel) {
          if (me[channel] < epsilon) {
              a[channel] = me[channel];
          } else if (me[channel] > other[channel]) {
              a[channel] = (me[channel] - other[channel]) / (1 - other[channel]);
          } else if (me[channel] > other[channel]) {
              a[channel] = (other[channel] - me[channel]) / other[channel];
          } else {
              a[channel] = 0;
          }
      });
  
      if (a._red > a._green) {
          if (a._red > a._blue) {
              me._alpha = a._red;
          } else {
              me._alpha = a._blue;
          }
      } else if (a._green > a._blue) {
          me._alpha = a._green;
      } else {
          me._alpha = a._blue;
      }
  
      if (me._alpha < epsilon) {
          return me;
      }
  
      channels.foreach(function (channel) {
          me[channel] = (me[channel] - other[channel]) / me._alpha + other[channel];
      });
      me._alpha *= a._alpha;
  
      return me;
  });
  