안녕하세요. 천리안 프로그래머포럼 C++Builder 담당자 임펠리테리입니다.
빌더라운지에서 이미 대략적으로 알려드렸긴 했지만.. 다른 분들을 위해 다시한번
써봅니다.
아이콘 리소스의 포맷은 무척 단순합니다. 하지만 약간의 예비지식이 필요하죠.
기본적으로 아이콘(커서도 마찬가지)은 AND 마스크와 XOR 마스크를 조합한 그림입
니다. 무슨말이냐 하면, 보통 생각하는 일반적인 이미지가 AND 마스크에 저장되고,
이것과 XOR 마스크의 픽셀당 1비트의 정보가 조합되어 실제로 아이콘으로 나타납니다
이렇게 복잡한 경로를 거치는 이유는, 아이콘이나 커서의 경우 단순한 이미지와는
달리, 배경색이 비쳐보일 부분이나 배경이 반전되어 보일 부분이 필요하기 때문입니다
아이콘리소스는 기본적으로 여러개의 아이콘 이미지를 가질수 있게 설계되어 있으며,
앞부분에 전체 이미지의 갯수를 가지는 단순한 헤더 하나와, 각 이미지마다 별도의
헤더가 그다음에 연결됩니다. 이 각 이미지의 헤더에는, 그 이미지의 색수, 가로/
세로 크기, 그리고 각각의 AND마스크와 XOR마스크 오프셋이 기록되어 있죠.
대략적으로 기억나는대로 써봤고.. 실제로 아이콘 리소스를 write하려고 한다면
구체적으로 포맷을 분석한 문서를 참고하시든지 혹은 직접 화일 구조를 분석해보시면
되겠네요. 그리 복잡한 포맷을 아니니 헥스 에디터로 들여다보시면 금방 아실겁니다.
그럼 참고하시길...
독립문에서 임펠리테리였습니다.
(cbuilder, cbuilder@thrunet.com)
|