Sha256: a8f9a05e0922f085b855cf7d34b2e1663888cc0f778df7f8b0e03898cd53e22d
Contents?: true
Size: 1.35 KB
Versions: 2
Compression:
Stored size: 1.35 KB
Contents
// 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; });
Version data entries
2 entries across 2 versions & 1 rubygems