iOS에서의 이미지 사이즈 제한
아이패드의 출시를 앞두고 이것저것 테스트를 진행하던 중-
이미지의 사이즈가 엄청 커졌을 때, 아이패드에서 표현을 하지 못하는 문제를 목격했습니다.
(아이패드로 테스트를 진행했지만 아이폰 역시 동일한 결과를 나타낼 것입니다.)
그 때 스치는 생각 하나.
"아, iOS에서는 이미지 사이즈나 용량 같은거에 제한이 있었던것 같아. 함 찾아보자."
아니나 다를까, Safari Reference Library 에서는 제가 찾고 있는 정보를 이미 제공하고 있었습니다.
Safari Reference Library > Safari Web Content Guide > Creating Compatible Web Content
이 경로로 접근을 하면, 말 그대로 호환성이 보장되는 웹 콘텐츠를 생성하는 방법을 자세하게 기술하고 있습니다.
특히 제가 궁금해 하던, iOS를 고려한 리소스 제한에 대해서는 "Know iPhone OS Resource Limits" 블럭에서 다루고 있습니다.
다른것들은 나중에 차차 살펴보기로 하고-
이미지 사이즈 제한에 대한 핵심은 이렇습니다.
The maximum size for decoded GIF, PNG, and TIFF images is 3 megapixels.
GIF, PNG, TIFF 형식의 이미지 최대 크기는 3메가 픽셀이다.
이미지의 크기는 어떻게 계산해야 할까요? 가로/세로가 어느정도 픽셀이 되는지는 알겠는데, 그걸 어떻게 해야 정확한 크기가 나오는 걸까요?
제가 참고한 문서에는 아래와 같은 공식을 제공하고 있는데요-
width * height ≤ 3 * 1024 * 1024
3 * 1024 * 1024 보다 작아야 하는 이유는 바로 다음과 같습니다.
먼저, 1024 * 1024 는 iOS가 표현할 수 있는, 표현해야 하는 최대 이미지의 크기입니다.
아이패드를 가로로 뉘였을 때의 해상도가 1024*768이고, 세로로 세웠을 때는 768*1024가 되기 때문에 최대 이미지 크기는 1024 * 1024로 생각할 수 있습니다.
이때, 이미지를 이루고 있는 각 픽셀 당 표현하고 있는 비트 수가 최고 일때는 24bit가 되고, 바이트로 환산하면 3이 됩니다.
(이 부분에 대한 좀 더 자세한 얘기는 맨 마지막에 하도록 할께요.)
따라서 3 * 1024 * 1024 이라는 계산은, 풀 컬러 화상의 가로/세로가 모두 1024픽셀인 이미지를 염두에 두고 이런 제한을 만든 것 같습니다.
이 값을 계산하면 3,145,728 정도가 되는데요-
대략 만든 이미지 사이즈가 1920 * 1680 정도를 넘으면 안되겠구나~ 하고 생각하심 됩니다.^^;
사실, 웹 사이트를 만들면서 이렇게 큰 이미지를 만들일이 빈번한 것은 아니지만,
알아두어서 나쁠 것 업겠쬬?
모두 유용하셨길 바랍니다~^^
이 부분을 이해하려면 먼저 2진법에 대해 생각해보아야 합니다.
1bit는 0과 1 두 개의 데이터를 나타낼 수 있고(2의 1승),
2bit는 네 개의 데이터를 나낼 수 있습니다(2의 2승).
우리가 일반적으로 사용하는 한글, 영문, 숫자 등과 같은 데이터를 표현하기 위해서는 8bit(256) 정도면 충분하고,
이를 1byte라는 또 다른 데이터 단위로 규정을 하고 있습니다.
따라서, 24bit는 3byte가 되는 것이죠~