-
(챕터 03) 이미지 파일을 사용하자(2)카테고리 없음 2013. 4. 30. 23:15
reinterpret_cast 란!?
특정 형 포인터에서 다른 형 포인터로 만들 때나 포인터와 정수를 서로 변환할 때 사용한다.
알파채널
투명여부를 판단하는데는 추가적인 정보가 필요하다. 현재 색은 적색, 녹색, 청색 세 가지밖에 없고 1바이트가 남는다.(unsigned)
이 남는 부분에 투명 불투명을 나타내는데 이것이 바로 알파채널..
책에서는 투명과 불투명 두개를 나타내니..0과 1로도 충분하다고 하지만 1바이트가 남았으니 여유있게 128 이상과 미만으로 나눈다고 한다. 즉 0과 255라는 양끝 값을 대표값으로!
검은색은 0이요, 255는 흰색인지라..
(처음에는 왜 그런지 몰랐다.)
알파채널인지 여부 판단은 아래 if문 같이 한다고 한다.
int alpha=(src&0xff000000) >> 24;
if(alpha>=128) {
여기서 src은 그림의 픽셀정보가 담겼다고 하자..
책에서 분석하길 알파채널이 최상위 1바이트 이므로 이것을 추출하고자 0xff000000와 &를 하고 그 결과를 24비트만큼 오른쪽으로 시프트해서 128과 비교한다고 한다.
근데 책에서는 "순진한 코드, 초보 티가 나는 코드" 라고 한다. 이것들이..??
바로 아래 더 나은 방법은
int alpha=(