HTML5 캔버스에서 이미지 조작으로 작업하고 있습니다. 내 캔버스에는 이미지 수가 많습니다. 이미지를 개별적으로 자르고 싶을 때. 그러나 모양을 만들고 clip()
함수를 사용하여 하나의 이미지를 자르면 잘 동작합니다. 그러나 같은 방법으로 다른 이미지를 자르려고 할 때 문제가 발생합니다. 캔버스가 이전 모양을 저장 했으므로 캔버스가 새 모양과 연결되어 그에 따라 두 번째 이미지를 잘라냅니다. 이전 모양을 파괴하고 싶습니다. 이전에 클리핑 된 이미지가 있기 때문에 clearRect()
을 사용하여 캔버스를 지울 수 없습니다. 링크 드래그에서 캔버스 미리 정의 된 레이어에 이미지를HTML5 캔버스에서 여러 이미지 자르기
및 주변의 이미지를 드래그 :
링크를 심판하시기 바랍니다. 국경 밖으로 나가려고하면 이미지가 제대로 잘리는 것을 분명히 알 수 있습니다.
이제 다른 이미지를 다른 상자의 캔버스로 드래그하십시오. 이제 클리핑이 제대로 작동하지 않음을 알 수 있습니다. 내가 스크립트에서 한 일을 여기
: 여기
는 JSFiddle 링크당신이 날이 문제를 해결하는 데 도움이 할 수있는? 이전 모양을 지우는 또 다른 방법을 찾는다면 도움이 될 것입니다.
미리 감사드립니다.
내가 도와주고 싶어하지만, 내 AV 당신이해야한다고 그리워 JSFiddle – QBM5
에서했던 당신의 예를 게시, 그들은 바이러스를 포함 알려져 있습니다 때문에 링크로 이동하지 말있다 클리핑 전/후에 저장/복원을 사용 하시겠습니까? 어쩌면 캔버스가 상태 머신이라고 이해하지 못했을 것입니다. == 캔버스 상태를 직접보아야 만합니다. – GameAlchemist
@GameAlchemist. +1 Tatha가 저장/복원해야한다는 것이 맞다고 의심됩니다. 요점을 명확히하기 위해 : 이전 클리핑 영역은 모든 새 도면에 대해 지속됩니다. 이 지속성을 피하려면, clipping 전에'context.save()'를하고 나서'context.clip()을 끝내면 restore()를 호출합니다. 그렇게하면 새 도면에 새 클립을 적용 할 수 있습니다. – markE