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

자유게시판
세상 살아가는 이야기들을 나누는 사랑방입니다.
[12681] PNG 파일을 Ico로 변환하기
김상구.패패루 [peperu] 8259 읽음    2007-01-26 15:51
아래 VISTA에서 사용하는 아이콘에 대해 잠깐 잡설을 늘어놨습니다만 제가 예전이나 지금이나 알파채널이 들어간 아이콘에 대해서 좀 관심이 많습니다. 최근에는 위젯 프로그래밍 등에도 알파채널이 있는 이미지를 사용하는 추세이고... 여러 분야에서 알파채널의 용도는 확대되고 있습니다.

문제는 이런 알파채널을 가진 이미지 자체를 만들기가 그리 간단한 문제가 아니라는거죠. 그래서 제가 생각한 제일 간단한 방법은 역시 포토샵 등에서 알파채널을 포함한 PNG부터 만들고 이를 다양한 분야에 활용하는겁니다. 역시나 이런 생각은 저만 한 것이 아닌지 여러가지 컴포넌트들이 존재하는군요. TPngImageList등의 컴포넌트를 활용하면 PNG파일을 이미지리스트에 넣어서 툴바 등 다양한 곳에 사용할 수 있습니다. 배경과 어우러지는 깔쌈한 아이콘들을 사용할 수 있겠죠.

인터넷 상에 다양한 프리 아이콘들이 돌아다니지만 대부분은 알파채널을 사용하지 않은 24bit 아이콘들이 대부분인 상황에서  PNG포멧의 적극적인 활용은 더욱 더 중요해 지는 것 같습니다. 최근에 Torry에서 다운받은 glyFX 에는 다양한 크기의 아이콘들이 있지만 ICO파일의 경우 알파채널을 사용하지 않고 PNG파일들만 알파채널을 사용하고 있더군요. 물론 툴바에 사용하려면 PNG파일을 사용하면 되겠지만  프로그램 아이콘으로 사용하려면 좀 문제가 있습니다. 그래서 PNG를 ICO 파일로 변환하는 툴을 찾아 보려고 PNG 공식 사이트를 들어가 봤지만 제대로 된 것이 없더군요. 알파채널을 유지하면서 ICO로 바꾸는 것은 이미지 하나만 저장되는 ICO파일로밖에 못 바꾸고, 멀티이미지 ICO파일을 만들 수 있는것은 256칼라밖에 지원을 안하고...

그러다가 찾은 좋은 툴이 @Icon Shshi입니다. http://www.towofu.net/soft/e-aicon.php
아이콘스시라는 이름에서 알 수 있듯이 일본인이 만든 프로그램인데 의외로 기능이 좋네요. GUI도 지원하고 있고 알파채널 편집기도 지원합니다(사실 이게 제일 맘에 듭니다). 최신버전은 1.2인데 이놈은 VISTA지원은 아니고, 최신 베타버전을 사용하면 VISTA용 ICO파일을 만들 수도 있네요.
프리웨어인데다 무엇보다도 알파채널 편집기를 지원하기 때문에 일반 사진을 아이콘으로 바꾸는 작업도 비교적 간단하게 할 수 있습니다. 배경부분 지우고 경계부분을 슥슥 문질러주면 아주 자연스런 아이콘을 만들 수 있으니까요. 그리고 이 프로그램을 잠깐 써 보면서 알게된게, 역시 VISTA에서 새로운 아이콘 포멧을 도입했네요. 그리고 ICO파일 내부의 각 이미지에 대해서도 PNG 압축을 사용할 수 있는 것 같습니다. 아이콘때문에 프로그램이 어마어마한 사이즈가 될 일은 없다는거죠.

일단 그동안 제가 만든 프로그램들 중에 제대로 아니콘도 없이 배포된 것들 부터 아이콘을 새로 입혀줘야겠습니다. 이제 굳이 사각형으로 반듯한 모양으로 아이콘을 디자인 할 이유도 없어졌네요. ^^

추가로, 코드기어툴을 이용해서 프로그램을 만들게 되면 VISTA에서 Alt+Tab으로 윈도우 스위칭을 하거나 트레이에서 미리보기를 할 때 아무것도 표시되지 않고 그냥 검게 나오는 문제가 있습니다. 이는 Application객체의 Hidden Window때문에 발생하는 문제인데 CDN에 가 보시면 관련 문서가 있군요.

Creating Windows Vista Ready Applications with Delphi
http://www.installationexcellence.com/articles/VistaWithDelphi/Index.html

고쳐주려면 조금 번잡스럽긴 하지만 기왕 만든 프로그램 사소한 문제로 평가절하되는 사태는 막아야겠죠? ^^
문서는 델파이 기준입니다만 빌더에 적용하는 것도 거의 동일합니다.
박지훈.임프 [cbuilder]   2007-01-27 04:33 X
마지막에 언급한 글은 이미 다 번역해놨다..
거기 있는 샘플을 C++빌더로 변환해서 보내줄 테니까 비스타에서 테스트해봐다오.
(아니면 나보다 시간 많은 니가 직접 변환해서 좀 해보고 보내주~)

델파이/C++빌더 겸용 글로 바꿔서(--;;) 포럼에 올릴 생각임.
박지훈.임프 [cbuilder]   2007-01-27 04:34 X
이건 전에 봤던 글을 요약한 거 같은데.. 원래 글은 훨씬 길었는데 말야.
비교해서 확인해봐야겠군.
김상구.패패루 [peperu]   2007-01-27 08:56 X
그런 얘긴 좀 빨리 하란 말이닷...
김상구.패패루 [peperu]   2007-01-27 10:59 X
글이 좀 바뀐거같구만... 내가 건 링크 맞나?
굳이 C++코드로 바꿀 필요는 없고, 내가 바꿔서 일부는 이미 적용한 뒤 테스트 해 봤으니까...
그리고, 왜 자꾸 나한테 비스타 테스트 해 달라는거얌... 나도 테스트하려면 하드 바꿔달아야한단 말이닷! 무지 귀찮음
박지훈.임프 [cbuilder]   2007-01-27 23:06 X
그리고 난 비스타 안깔아서 테스트가 안되니 니가 운영진으로서 책무를 다하기 바람.. ㅎㅎ
글을 그대로 번역해서 올리려고 하는 거니까 모든 샘플을 다 빌더로 바꿔줘야 함.
글이 두개라는 거 알고 있지? ^^
김상구.패패루 [peperu]   2007-01-29 16:04 X
췟!

+ -

관련 글 리스트
12681 PNG 파일을 Ico로 변환하기 김상구.패패루 8259 2007/01/26
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.