2011-09-05 4 views
7

나는 캔버스, 캔버스를 사용하는 페인트 응용 프로그램에서 일하고 있는데 사용자가 선택한 영역에만 그리는 옵션을 허용하고 싶습니다. 에 대해서는 clip() 메서드를 사용할 수 있습니다. 하지만 사용자가 글자를 그릴 수 있도록하려면 텍스트 용으로 clip()을 사용할 수있는 방법이 있습니까? 내가 할 수있는 또 다른 방법이 있습니까?html 캔버스 : 클리핑 및 텍스트

감사합니다.

+0

I에 새로 만든 효과를 넣어

  • 사용 drawImage(in-memory-canvas, x, y) 클리핑 원하는 일을 그립니다 이해할 수 없지만 "사용자가 내부 문자를 그릴 수있게하려면"부품 –

  • 답변

    11

    이렇게 할 수는 있지만 클립은 사용하지 마십시오. 클립은 경로에서만 작동하며 텍스트는 경로가 아닙니다.

    효과를 얻으려면 두 번째 메모리 내 (페이지가 아님) 캔버스를 사용해야합니다.

    1. , 메모리 내 캔버스를 확인 텍스트
    2. 메모리 내 컨텍스트의 설정이 메모리 캔버스
    3. 에 텍스트 그리기를 포함 할 수있는 폭과 높이로 설정 방법은 다음과 같습니다이다 '소스 인'에 globalCompositeOperation
    4. 당신이 텍스트 일반 캔버스
    +0

    위대한 답변! 감사합니다. –

    +0

    음, 문제가 있습니다. 100 % 미만의 알파 색상으로 "잘린"텍스트를 그릴 때, 더 높은 알파 % 색상으로 동일한 픽셀을 다시 그릴 수 없습니다. –