IEnumerator DownloadImage() { WWW www = new WWW(urlField.text); yield return(www); if (string.IsNullOrEmpty(www.error)) { texture = www.texture; image.texture = texture; float ratio = 700f / texture.height; float w = texture.width * ratio; float h = texture.height * ratio; image.rectTransform.sizeDelta = new Vector2(w, h); var dominant = new ColorThief.ColorThief(); dominantColor.color = dominant.GetColor(texture).UnityColor; var palette = new ColorThief.ColorThief(); List <ColorThief.QuantizedColor> colors = palette.GetPalette(texture, paletteColors.Length); for (int i = 0; i < colors.Count; i++) { paletteColors[i].color = colors[i].UnityColor; } } else { Debug.Log(www.error); } }
public static async Task <ColorDataResult> GetSchemeFromCoverImage(Texture2D tex, string levelID) { var result = new ColorDataResult(); var paletteColors = new List <QuantizedColor>(); if (PaletteCache.ContainsKey(levelID)) { PaletteCache.TryGetValue(levelID, out paletteColors); } if (Cache.ContainsKey(levelID)) { result.Colors = paletteColors; result.Scheme = Cache[levelID]; return(result); } var thief = new ColorThief.ColorThief(); var colors = new List <QuantizedColor>(); await Task.Run(() => { colors = thief.GetPalette(tex); }); //var leftColor = GetWarmestColor(colors); //var rightColor = GetColdestColor(colors); var leftColor = colors[0].UnityColor; var rightColor = colors[1].UnityColor; var obsColor = colors[2].UnityColor; var scheme = new ColorScheme("CoverSaber", "Cover Saber", true, "Cover Saber", true, leftColor, rightColor, leftColor * 1.3f, rightColor * 1.3f, false, leftColor * 1.5f, rightColor * 1.5f, obsColor); Cache.TryAdd(levelID, scheme); PaletteCache.TryAdd(levelID, colors); result.Scheme = scheme; result.Colors = colors; return(result); }