C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
분야별 포럼
C++빌더
델파이
파이어몽키
C/C++
프리파스칼
파이어버드
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

자유게시판
세상 살아가는 이야기들을 나누는 사랑방입니다.
[6990] Re: ^^ 그건 전통적인 아이콘 처리방식입니다.
김상구.패패루 [peperu] 1326 읽음    2003-03-25 14:13
32bit아이콘.PNG 25.2KB 32bit아이콘(위)과 24bit아이콘(아래)
전통적인 아이콘 처리 방식이 바로 그 방법입니다.
배경색을 지정하는 방식, 즉 특정 색을 마스크 정보로 사용하여 투명 효과를 내는겁니다.

따라서 이러한 방식으로 아이콘을 그리는 것은 외곽선에 대한 Anti Alias를 사용할 수 없습니다.
이에 비해 32bit 아이콘은 RGB 외에 A값이 하나 더 있죠. 투명도를 나타내는 알파채널입니다.

기존의 방식이 투명(A=0) 혹은 불투명(A=255) 두가지밖에 지원하지 않았기 때문에 계단효과를 없앨 수 없지만 알파채널을 지원하는 경우 투명도 자체를 변경할 수 있기 때문에 배경색과는 관계 없이 이미지가 부드럽게 배경색과 섞이는 효과를 낼 수 있죠.

마이크로엔젤로가 유명한 에디터이긴 하지만 최근버전은 저도 점검해 보지 않았으나 역시 전통적인 아이콘(24bit) 제작에 주로 사용되던 프로그램입니다.


실제 제작 과정을 통해 두가지 방식의 차이를 한 번 살펴보자면..

전통적인 방식에서는 16x16또는 24x24 또는 32x32 정도의 이미지를 도트작업을 통해 그립니다.
만약 크기별로 다양한 버전이 필요하다면 각각 다 도트작업으로 그려야겠죠.
투명해야 하는 부분은 이미지 안에서 쓰이지 않은 색으로 칠해주면 됩니다.

물론 그림을 크게 그려서 이를 축소하는 방식도 쓸 수 있겠으나 원하는 효과를 얻기 힘듭니다. 축소되는 과정에서 bi-cubic필터를 보통 많이 사용하는데 이 경우 이미지는 깨끗하게 축소가 되지만 외곽선 부분은 블랜딩되기 때문에 이 부분을 추가로 깨끗하게 정리해야 하는 과정이 필요합니다.
이 과정을 거치고 나면 이미지 내부는 매끄럽지만 외곽선은 심각한 계단현상이 나타나기 때문에 영 보기가 안좋죠. 그렇기 때문에 크기별로 도트작업을 하는것이 일반적입니다.

그렇지만 32bit에선 얘기가 달라지죠.
그냥 큼지막하게(100x100정도) 원하는 그림을 그리고 난 후 AWIcons와 같은 프로그램에서 단순히 축소만 시켜주면 외곽선 부분에 자동으로 알파값들이 적용됩니다. 16x16크기도 단순 축소과정만 거치면 되죠. 문제는 이 알파채널을 제대로 렌더링할 수 있느냐의 문제가 생기는겁니다.

기존의 Windows 운영체제는 2000까지는 이와 같은 아이콘을 지원하지 않습니다. XP부터 새로 지원되는 부분이죠. 빌더의 경우 전통적 개발방식에서는 아무 문제 없지만 XP지원 부분은 아직까지는 부족한게 사실이죠. 못하는건 아니지만.. ^^

+ -

관련 글 리스트
6988 도저히 못찾겠다.. 32bit Icon 지원하는 TImageList.. 김상구.패패루 1196 2003/03/25
6989     제가 알기로는.... 박정모 976 2003/03/25
6990         Re: ^^ 그건 전통적인 아이콘 처리방식입니다. 김상구.패패루 1326 2003/03/25
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.