このサイトの他の場所で提供されているCanvasコードを使用して、不透明な部分が不規則な形状である、いくつかの重なり合う透明なpngがある画面を作成しました。カーソルの下の色を取得できます。それは素晴らしいことです。しかし、私の形はすべて同じ色であり、特定の形のIDも取得する方法が必要なので、どれがクリックされたかがわかります。国に到達するために重複するpngで作成されたマップを想像し、どの国がクリックされたかを検出したいとします。私の知る限り、ID検出は長方形の領域にのみ適用されます。助言がありますか?
$('#myCanvas').click(function(e){
var position = findPos(this);
var x = e.pageX - position.x;
var y = e.pageY - position.y;
var coordinate = "x=" + x + ", y=" + y;
var canvas = this.getContext('2d');
var p = canvas.getImageData(x, y, 1, 1).data;
var hex = "#" + ("000000" + rgbToHex(p[0], p[1], p[2])).slice(-6);
alert(hex);
});
このコードは色を取得して表示します(findPosとrgbToHexは、わかりやすくするために省略された別個の関数です)。IDが必要です!ヘルプ!