UNIT81 질문입니다.
, z xc님이 작성UNIT.81에서 아스키아트를 배우는데요
81.4에서 사용한 코드에 있는 size라는 변수에 관해서 질문이 있습니다.
깃허브에 있는 예제파일
Peppers80x80 -> 80*3 + 0(패딩값) -> 2400 * 80 = 19,200
sample50x50 -> 50*3 +2(패딩값) -> 152 * 50 = 7,600
sample -> 200*3 + 0(패딩값) -> 6000 * 200 = 120,000
3개파일을 각각 printf("%d\n",size); 해서 돌려봤습니다.
위의 계산대로라면 19,200 / 7,600 / 120,000이 나와야되는데
19,202 / 7,602 / 120,002 처럼 2바이트씩 증가되서
size가 출력됬습니다
혹시나 싶어서 제가 가지고 있는 다른 bmp파일을 사용해보니
2바이트 추가되서 size에 들어가는 현상이 없이 잘 출력됬습니다.
위의 3개의 파일은 왜 2바이트가 추가되서 size에 들어가있는건가요?
Re: UNIT81 질문입니다.
, 도장_ 관리자님이 작성제공되는 이미지 파일의 size가 19202로 저장되어 있어서 나타나는 현상입니다.
그러나 만일 size 값이 이미지 파일에 없어서 직접 계산해야 하면
size = (80 * 3 + 0) * 80 = 19200이 되어서 19200이 출력될 겁니다.
파일에 저장된 값을 사용하고 있어서 나타나는 현상입니다. 이건 해당 이미지 파일을 저장한 프로그램의 문제로 봐야 합니다. 동작에는 문제가 없습니다.