我正在尋找一種JavaScript方法來檢測透明PNG內的圖像。例如,我將創建一個帶有940x680透明畫布的PNG,然後在該畫布內放置一個完全不透明的對象。Javascript方法來檢測不透明PNG的區域
我希望能夠檢測的大小(H/W),和該對象的頂部+左的位置,是不畫布
這裏內透明是原始圖像 下面是一個例子我想實現的一個例子。 (邊框疊加,與頂級+左極限數據)
香港專業教育學院發現,確實有些透明檢出的資源了,但是我不知道我怎麼擴大這樣的事情是什麼即時尋找。
var imgData,
width = 200,
height = 200;
$('#mask').bind('mousemove', function(ev){
if(!imgData){ initCanvas(); }
var imgPos = $(this).offset(),
mousePos = {x : ev.pageX - imgPos.left, y : ev.pageY - imgPos.top},
pixelPos = 4*(mousePos.x + height*mousePos.y),
alpha = imgData.data[pixelPos+3];
$('#opacity').text('Opacity = ' + ((100*alpha/255) << 0) + '%');
});
function initCanvas(){
var canvas = $('<canvas width="'+width+'" height="'+height+'" />')[0],
ctx = canvas.getContext('2d');
ctx.drawImage($('#mask')[0], 0, 0);
imgData = ctx.getImageData(0, 0, width, height);
}
太棒了!非常感謝,這肯定會讓我走向正確的方向。 – Mike
在您急需幫助後,我能夠將其發展到我需要的解決方案。但是,在Safari中測試後,Safari看起來無法獲取線條的座標。你的小提琴反映了相同的結果。 看來這可能與Unit32Array有關。 Unit32Array函數在Safari上似乎也非常慢。 你能夠建議一個修復,以允許Safari,Ipad等..? – Mike
@MikeBarkemeyer必須是Safari的問題,如果是的話,我們只能等待Apple解決這個問題。您可以在未註冊的情況下報告此問題。解決方法是使用Uint8Array,跳過4個字節並測試Alpha通道。 – K3N