내 문제 : ImageObject가 있는데, 이는 PatternObject를 만드는 데 사용됩니다. 내 문제는 패턴을 만들기 전에 이미지의 width
및 height
속성을 변경했지만 실제로 이미지를 다시 매핑하지 않으며 문제가되지 않는다는 것입니다. 문제는, 제가 지금 패턴을 가지고 있다는 것입니다, 그것은 이미지 자체와 다른 크기 (원래 이미지 크기)입니다. 그 패턴의 fillStyle을 사용하여 선을 그려야한다면, (새로운 크기의 패턴이 필요하기 때문에) 적합하지 않습니다.Html5 캔버스의 패턴 크기 변경
내 질문 : 쉬운 방법이있어 패턴의 너비와 높이를 조절할 수 있습니까?
내는을 시도하고 내가 그들처럼 해달라고 이유 :
1) 새로운 크기의 캔버스에 원본 이미지를 렌더링하고의 패턴을 만들 수 있습니다. 캔버스가 만들어지고 너무 느리게 렌더링되어 패턴을 직접로드 할 수 없기 때문에이 패턴을 사용하지 않았습니다. 그러나 나는 그 패턴을 직접적으로 원합니다.
2) 새로운 이미지 크기와 원본 사이의 차이를 계산하고, 컨텍스트의 lineWidth를 변경하여 패턴 높이가 정확하게 맞추고 선의 크기가 줄어들 기 때문에 크기가 적당합니다. . 실시간으로 렌더링하기 때문에 이것을 사용하지 않았습니다. 웹 앱에서 나중에 사용하기에는 너무 느립니다.
고맙습니다. :)
+1 당신이 내게 너무 많은 옵션을주고 첫 번째 것을 다시 시도 할 것이고, 내 문제는 내가 새로 정의 된 캔버스에 그려서 패턴을로드하려고하면 패턴을 어떻게 든로드 할 수 없다는 것입니다. 왜냐하면 캔버스가 로딩 준비가되어 있지 않기 때문입니다. – TheOneAndOnly
@TheOneAndOnly 문제 없습니다. 그 원인은 이미지로드가 완료되지 않았을 가능성이 큽니다. 이미지의 onload 이벤트에 연결하여 패턴 설정 등을 트리거 할 수 있습니다. – K3N
이 스 니펫은 매우 유용합니다! +1 – A1rPun