@@ -0,0 +1,2395 @@
+/*%0A * Copyright (c) 2019 Abex%0A * All rights reserved.%0A *%0A * Redistribution and use in source and binary forms, with or without%0A * modification, are permitted provided that the following conditions are met:%0A *%0A * 1. Redistributions of source code must retain the above copyright notice, this%0A *    list of conditions and the following disclaimer.%0A * 2. Redistributions in binary form must reproduce the above copyright notice,%0A *    this list of conditions and the following disclaimer in the documentation%0A *    and/or other materials provided with the distribution.%0A *%0A * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS %22AS IS%22 AND%0A * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED%0A * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE%0A * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR%0A * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES%0A * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;%0A * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND%0A * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT%0A * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS%0A * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.%0A */%0Apackage net.runelite.api;%0A%0Aimport java.awt.Color;%0A%0Apublic final class JagexColor%0A%7B%0A%09public static short packHSL(int hue, int saturation, int luminance)%0A%09%7B%0A%09%09return (short) ((short) (hue & 63) %3C%3C 10%0A%09%09%09%7C (short) (saturation & 7) %3C%3C 7%0A%09%09%09%7C (short) (luminance & 127));%0A%09%7D%0A%0A%09public static short rgbToHSL(int rgb, double brightness)%0A%09%7B%0A%09%09if (rgb == 1)%0A%09%09%7B%0A%09%09%09return 0;%0A%09%09%7D%0A%0A%09%09brightness = 1.D / brightness;%0A%0A%09%09double r = (double) (rgb %3E%3E 16 & 255) / 256.0D;%0A%09%09double g = (double) (rgb %3E%3E 8 & 255) / 256.0D;%0A%09%09double b = (double) (rgb & 255) / 256.0D;%0A%0A%09%09r = Math.pow(r, brightness);%0A%09%09g = Math.pow(g, brightness);%0A%09%09b = Math.pow(b, brightness);%0A%0A%09%09float%5B%5D hsv = Color.RGBtoHSB((int) (r * 256.D), (int) (g * 256.D), (int) (b * 256.D), null);%0A%09%09double hue = hsv%5B0%5D;%0A%09%09double luminance = hsv%5B2%5D - ((hsv%5B2%5D * hsv%5B1%5D) / 2.F);%0A%09%09double saturation = (hsv%5B2%5D - luminance) / Math.min(luminance, 1 - luminance);%0A%0A%09%09return packHSL((int) (Math.ceil(hue * 64.D) %25 63.D),%0A%09%09%09(int) Math.ceil(saturation * 7.D),%0A%09%09%09(int) Math.ceil(luminance * 127.D));%0A%09%7D%0A%7D%0A

add JagexColor util