|
Struts example source code file (hsv.js)
The Struts hsv.js source code/* Copyright (c) 2004-2006, The Dojo Foundation All Rights Reserved. Licensed under the Academic Free License version 2.1 or above OR the modified BSD license. For more information on Dojo licensing, see: http://dojotoolkit.org/community/licensing.shtml */ dojo.provide("dojo.gfx.color.hsv"); dojo.require("dojo.lang.array"); dojo.require("dojo.math"); dojo.lang.extend(dojo.gfx.color.Color, {toHsv:function () { return dojo.gfx.color.rgb2hsv(this.toRgb()); }}); dojo.gfx.color.rgb2hsv = function (r, g, b, options) { if (dojo.lang.isArray(r)) { if (g) { options = g; } b = r[2] || 0; g = r[1] || 0; r = r[0] || 0; } var opt = {inputRange:(options && options.inputRange) ? options.inputRange : 255, outputRange:(options && options.outputRange) ? options.outputRange : [255, 255, 255]}; var h = null; var s = null; var v = null; switch (opt.inputRange) { case 1: r = (r * 255); g = (g * 255); b = (b * 255); break; case 100: r = (r / 100) * 255; g = (g / 100) * 255; b = (b / 100) * 255; break; default: break; } var min = Math.min(r, g, b); v = Math.max(r, g, b); var delta = v - min; s = (v == 0) ? 0 : delta / v; if (s == 0) { h = 0; } else { if (r == v) { h = 60 * (g - b) / delta; } else { if (g == v) { h = 120 + 60 * (b - r) / delta; } else { if (b == v) { h = 240 + 60 * (r - g) / delta; } } } if (h <= 0) { h += 360; } } switch (opt.outputRange[0]) { case 360: break; case 100: h = (h / 360) * 100; break; case 1: h = (h / 360); break; default: h = (h / 360) * 255; break; } switch (opt.outputRange[1]) { case 100: s = s * 100; case 1: break; default: s = s * 255; break; } switch (opt.outputRange[2]) { case 100: v = (v / 255) * 100; break; case 1: v = (v / 255); break; default: break; } h = dojo.math.round(h); s = dojo.math.round(s); v = dojo.math.round(v); return [h, s, v]; }; dojo.gfx.color.hsv2rgb = function (h, s, v, options) { if (dojo.lang.isArray(h)) { if (s) { options = s; } v = h[2] || 0; s = h[1] || 0; h = h[0] || 0; } var opt = {inputRange:(options && options.inputRange) ? options.inputRange : [255, 255, 255], outputRange:(options && options.outputRange) ? options.outputRange : 255}; switch (opt.inputRange[0]) { case 1: h = h * 360; break; case 100: h = (h / 100) * 360; break; case 360: h = h; break; default: h = (h / 255) * 360; } if (h == 360) { h = 0; } switch (opt.inputRange[1]) { case 100: s /= 100; break; case 255: s /= 255; } switch (opt.inputRange[2]) { case 100: v /= 100; break; case 255: v /= 255; } var r = null; var g = null; var b = null; if (s == 0) { r = v; g = v; b = v; } else { var hTemp = h / 60; var i = Math.floor(hTemp); var f = hTemp - i; var p = v * (1 - s); var q = v * (1 - (s * f)); var t = v * (1 - (s * (1 - f))); switch (i) { case 0: r = v; g = t; b = p; break; case 1: r = q; g = v; b = p; break; case 2: r = p; g = v; b = t; break; case 3: r = p; g = q; b = v; break; case 4: r = t; g = p; b = v; break; case 5: r = v; g = p; b = q; break; } } switch (opt.outputRange) { case 1: r = dojo.math.round(r, 2); g = dojo.math.round(g, 2); b = dojo.math.round(b, 2); break; case 100: r = Math.round(r * 100); g = Math.round(g * 100); b = Math.round(b * 100); break; default: r = Math.round(r * 255); g = Math.round(g * 255); b = Math.round(b * 255); } return [r, g, b]; }; Other Struts examples (source code examples)Here is a short list of links related to this Struts hsv.js source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.