コード例 #1
0
ファイル: Demo.cs プロジェクト: chiutse/ColorThief
    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);
        }
    }
コード例 #2
0
        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);
        }