从图片网址中提取颜色

时间:2018-09-11 17:43:05

标签: javascript jquery html css colors

我有一个输入的图片网址

我的目标是读取该图像并从中提取2种十六进制颜色。

我研究发现了一个:https://jariz.github.io/vibrant.js/

我尝试过集成

图片

<img name="logo_path" id="skill-icon" src="/img/default.png" width="300px"><br><br>

输入

<input type="file" class="form-control" name="logo_path" aria-describedby="fileHelp">

JS

var icon = $('#skill-icon');
icon.attr('src', $( "#url-logo" ).val());

$( "#url-logo" ).on('keyup',function(){


    var vibrant = new Vibrant(icon);
    var swatches = vibrant.swatches()
    for (var swatch in swatches)
        if (swatches.hasOwnProperty(swatch) && swatches[swatch])
            console.log(swatch, swatches[swatch].getHex())

    /*
     * Results into:
     * Vibrant #7a4426
     * Muted #7b9eae
     * DarkVibrant #348945
     * DarkMuted #141414
     * LightVibrant #f3ccb4
     */
}); 

我无法使用它。

我不断得到

enter image description here

  

未捕获的TypeError:无法在'CanvasRenderingContext2D'上执行'drawImage':提供的值不是'(CSSImageValue或HTMLImageElement或SVGImageElement或HTMLVideoElement或HTMLCanvasElement或ImageBitmap或OffscreenCanvas)类型的值

我在这里放了一个小提琴:

https://jsfiddle.net/bheng/fkqx5gad/

enter image description here

我该如何实现?

1 个答案:

答案 0 :(得分:0)

该错误是由于图像位于其他域而导致的。将属性crossDomain =“ anonymous”添加到图像元素。

示例:

<img src="test.jpg" crossOrigin="anonymous" />