불투명 한 부분이 불규칙한 모양을 가진 여러 개의 겹치는 투명 PNG가있는 화면을 만들기 위해이 사이트의 다른 곳에 제공된 Canvas 코드를 사용했습니다. 나는 커서 아래에있는 색상을 얻을 수 있으며 그것은 훌륭합니다. 그러나 내 셰이프는 모두 같은 색이며 특정 셰이프의 ID를 얻는 방법이 필요합니다. 그래서 어느 셰이프를 클릭했는지 알 수 있습니다. 도달하는 국가에 대해 겹치는 png로 구성된지도를 상상해보십시오. 클릭 한 국가를 감지하고 싶습니다. 내가 알 수 있듯이 ID 탐지는 직사각형 영역에만 적용됩니다. 어떤 제안?HTML5 검색이 가능합니까?
$('#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는 명확하게 구분하기 위해 별도의 기능입니다). 나는 이드가 필요해! 도움!
이것은 복잡하지만 실제로는 영리합니다. 내 고객은 수백 개의 겹치는 이미지 (예 :지도)가있는 앱을 사용하며 각 이미지는 가장 적합하지 않은 직사각형이므로 사례 # 1이 대부분 작동합니다. 색상 값> 0을 반환하는 유일한 색상의 후보를 반복하면 완벽한 솔루션입니다. –
감사합니다. 종종 소스 코드를 제공하지만,이 코드는 너무 길어서 그렇게 할 수 없습니다. –
출처는 필요하지 않습니다. 이것은 그 목적에 부합하지 않을만큼 충분히 관례입니다. :) 나는 이미 그것을 작동하고 내 블로그에 게시 생각 중입니다. 꽤 유용합니다. –