2013-05-20 80 views
3

是否可以使用HTML5或CSS3的漸變貼圖重新着色圖像?我也開放使用JavaScript庫。是否可以使用HTML5或CSS3的漸變貼圖重新着色圖像?

我遵循這個問題,但是這僅灰階和調整RGB值: How can I use a gradient map to tone a HTML5 canvas with an image in the canvas.

這是不可能真正分配的梯度與這種技術來重新着色的圖像。有任何推薦的人,請以這種方式發送給他們!

我已經包含了一個鏈接到與圖像編輯器創建的效果的圖像,以更好地解釋效果不熟悉:

http://www.imagesincontext.com/IICFeatures/GradientMap.gif

謝謝!

回答

1

沒有什麼內置的,可以爲你做到這一點。

但是,您可以使用javascript對圖像執行一些後期處理。

下面是關於這個問題有很大的聯繫:

Image manipulation with Canvas

基本上,你會通過getImageData訪問像素(),並與putImageData改變它()。在上面的鏈接中可以看到一個類似的例子。

0

有一個叫gradientmaps.js *大圖書館負責處理這真的很好。

<img id="myimage" src="photo.jpg"> 

<script src="gradientmaps.min.js"></script> 
<script> 
    var target = document.getElementById('myimage'); 
    var gradientMap = "blue, green, yellow"; 

    GradientMaps.applyGradientMap(target, gradientMap); 
</script> 

該腳本會將您的顏色列表轉換爲相應的SVG過濾器代碼。然後它生成一個<svg>元素。它將一個唯一的ID分配給<filter>元素,然後將該過濾器應用於您的DOM元素。

上面的例子執行後,DOM會變成這個樣子....

<svg version="1.1" width="0" height="0"> 
    <filter id="filter-1489690359932"> 
    <feColorMatrix type="matrix" values="0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0 0 0 1 0" result="gray"></feColorMatrix> 
    <feComponentTransfer color-interpolation-filters="sRGB"> 
     <feFuncR type="table" tableValues="0 0 1"></feFuncR> 
     <feFuncG type="table" tableValues="0 0.5019607843137255 1"></feFuncG> 
     <feFuncB type="table" tableValues="1 0 0"></feFuncB> 
     <feFuncA type="table" tableValues="1 1 1"></feFuncA> 
    </feComponentTransfer> 
    </filter> 
</svg> 
<img id="myimage" src="photo.jpg" 
    data-gradientmap-filter="filter-1489690359932" 
    style="filter: url(&quot;#filter-1489690359932&quot;);"> 

*我已經鏈接到我的這個項目,這增加了對IE/EDGE的支持的叉。

相關問題