CANVAS 태그에 대한 질문을 시작으로 HTML5 KIG 활동을 시작해봅니다. ^^

안녕하세요. 

이미지클릭 김민태입니다.


Canvas로 개발을 하다가 문득 의문이 생겨서 이렇게 질문드려봅니다.

[질문]

Canvas 태그는 width 또는 height 가 설정되면 (값의 변경 유무와 상관없이) canvas 자체가 리셋됩니다. 
즉 그려진 이미지가 모두 지워지고 각종 style도 리셋됩니다. 
명시적인 API 로 reset 을 구현하지 않고 이렇게 하는 이유는 무엇일까요?


[배경]

HTML5에서 새로 추가된 태그인 Canvas 는 많은 API 를 함께 제공하고 있습니다.
2D 작업을 하기위해서 나름 충분한 API 를 제공하고 있는데요 유독 이해하기 힘든 
형태를 하나 발견했습니다. 

Canvas 자체의 width 또는 height 가 설정되면 Canvas가 Reset 되는 방식이 그것입니다.
여기서 핵심은 실제로 Canvas 의 width나 height 가 변하지 않아도 단지 같은 크기로 
설정만 된다해도 Reset 되는 방식이라는 것이죠. 

Canvas.reset() 같은 API 를 제공해주면 더 명시적이고 좋을 것 같은데 개발 코드도 좀 
쌩뚱맞아지고 별로 훌륭한 컨셉인 것 같지는 않아서 말이죠.  혹시 왜 이런 메커니즘을 채택
했는지 아시는 분이 있으시면 좋겠습니다. 

그리고 무엇보다 단지 방식의 문제가 아닌 canvas 의 사이즈가 변하면 reset 이 되기 때문에
만약 고정크기 Canvas를 사용하지 않는다면 브러우저의 크기가 변하면 항상 현재 상태의 
Canvas 를 유지하기 위해서 다시그려야하는 부담감이 있습니다. 

그려야하는 이미지가 복잡할 경우 이는 더욱 큰 부담이 될 것 같습니다. 만약 이렇게 reset 
되지 않는다면 리사이즈로 인해서 빈 공간만 다시 그리면 될텐데 현재의 canvas 구조상 
resize 이벤트에 전체를 다시 그리려야합니다.




우선 저는 이 질문으로 시작해봅니다.^^

김민태 드림. 


ps : 메일 형식은 SK Telecom 김도완님의 양식을 활용해봤습니다. ^^


# Kim Min Tae
--------------------------------------
Imageclick co.,Ltd
http:// www.imageclick.com
ibare77@gmail.com
http://www.ibare.kr

http://twitter/ibare

Mobile: 010.8555.3198

Received on Wednesday, 17 November 2010 01:38:30 UTC