>  기사  >  웹 프론트엔드  >  JavaScript로 캔버스의 마우스 아래 픽셀 색상을 얻는 방법은 무엇입니까?

JavaScript로 캔버스의 마우스 아래 픽셀 색상을 얻는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-10-31 18:05:14688검색

How to Get the Pixel Color Under the Mouse on a Canvas in JavaScript?

마우스 이동 시 캔버스에서 픽셀 색상 가져오기

mousemove 이벤트를 사용하면 사용자의 마우스가 움직일 때 위치를 추적할 수 있습니다. 캔버스 요소. 캔버스를 기준으로 마우스 위치를 가져오고 getImageData() 메서드를 사용하면 마우스 커서 아래 픽셀의 RGB 값을 검색할 수 있습니다.

JavaScript에서 마우스 아래 픽셀 색상을 얻으려면 다음을 따르세요. 다음 단계:

  1. 캔버스 컨텍스트 가져오기: getContext('2d')를 사용하여 캔버스 요소의 2D 렌더링 컨텍스트(그리기 표면)를 가져옵니다.
  2. mousemove 이벤트 수신: 캔버스 요소에 mousemove 이벤트 리스너를 추가합니다.
  3. 마우스 위치 가져오기: mousemove 이벤트 핸들러 내에서 마우스 위치를 가져옵니다. e.offsetX 및 e.offsetY를 사용하여 캔버스를 기준으로 하는 마우스 커서.
  4. 픽셀 색상 가져오기: getImageData(x, y, 1, 1)를 사용하여 이미지 데이터를 가져옵니다. 지정된 픽셀 위치를 지정하고 결과를 변수에 저장합니다.
  5. 픽셀 색상 구문 분석: getImageData() 메서드는 빨간색, 녹색, 파란색 및 알파를 나타내는 네 가지 값의 배열을 반환합니다.

예제 코드

다음은 마우스 아래에서 픽셀 색상을 가져오는 방법을 보여주는 완전한 예입니다.

<code class="javascript">const canvas = document.getElementById('my-canvas');
const ctx = canvas.getContext('2d');

ctx.fillStyle = 'red';
ctx.fillRect(0, 0, 100, 100);

canvas.addEventListener('mousemove', (e) => {
  const x = e.offsetX;
  const y = e.offsetY;

  const pixelData = ctx.getImageData(x, y, 1, 1).data;
  const color = `rgb(${pixelData[0]}, ${pixelData[1]}, ${pixelData[2]})`;

  console.log(color);
});</code>

이 예제에서는 마우스가 캔버스 위로 이동할 때 마우스 커서 아래 픽셀의 RGB 색상을 콘솔에 기록합니다.

위 내용은 JavaScript로 캔버스의 마우스 아래 픽셀 색상을 얻는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.