iOS error - Canvas area exceeds the maximum limit (width * height > 16,777,216)
웹에서 그림을 그리기 위해 캔버스 개체를 생성하는데 FHD (1920x1080) 로 캔버스를 생성해 만든 앱이 iOS 의 사파리나 크롬, 앳지에서 올려보면 Canvas area exceeds the maximum limit (width * height > 16,777,216) 이런 에러를 개발자 모드에서 보이며 실행 안됨. 근데 1920x1080 = 2,073,600 로 제한을 넘어가지 않는데도 이 에러가 난다는 심오한 문제? 눈치챘겠지만 레티나 디스플레이 때문임. 해상도가 높다보니 window 개체의 device pixel ratio 속성이 3 이야 그러니 물리적으로 (1920x3) x (1080x3) = 18,662,400 를 논리적 1920x1080 짜리 캔버스로 생성하려고 하니 에러가 남. 구글링해보면 몇가지 방법이 (생성형 AI 들은 앞에 설명한 내용을 내가 써주기 전까지 제대로 모름) 있는데, 일반적으로 iOS 제한 픽셀 / (1920x3) x (1080x3) = 0.89... 이 비율로 캔버스를 생성하고 그려진 내용을 이 비율로 zoom out 시켜서 표시... 열라 귀찮긴한데... 여하튼 그렇게 해야 표시됨. 돈받고 하니 하지 안 그럼 모르고 있을 일이지 않을까? ㅋ
댓글
댓글 쓰기