bonkora 님이 제공해 주신 글입니다.
이런 내용이 강좌에 어울릴지 모르겠는데 필요한 분이 있을 수도 있을 것 같아 올립니다.
Tcl/Tk에는 두 가지의 이미지 타입인 포토와 비트맵이 있습니다. 포토 타입은 일반적인 그림, 즉 GIF나 JPG 등의 포맷을 가진 형입니다. 그림 파일을 불러서 이미지를 만든 후 그 이미지를 캔버스나 버튼에서 사용할 수 있습니다. 예를 들어 test.gif라는 파일이 있다고 하면
image create photo g -file test.gif
canvas .c
pack .c
.c create image 50 50 -image g
button .b -image g
pack .b
GIF 파일의 경우엔 MS윈도의 파일들과 호환이 잘 됩니다. 투명색을 사용한 것도 잘 쓸 수 있습니다. 그런데 JPG 파일도 위와 같은 방식으로 사용할 수 있는데 JPG 파일은 읽어 들일 때 에러메시지가 출력됩니다. 호환성의 문제 같은데 이 때는 확장 패키지 "Img"를 사용하면 읽을 수 있습니다. 명령들을 사용하기 전에 "package require Img" 명령을 실행시키면 됩니다. 포토 타입의 이미지들은 크기를 조절하거나 부분을 떼 내고 복사하는 등의 조작이 가능합니다. 위키에 있는 확장 패키지 Img의 설명도 참고하시면 되겠습니다.
비트맵 파일도 위와 같은 방식으로 사용할 수 있습니다. 그런데 MS윈도에서 만들어진 비트맵과는 호환이 안됩니다. 확장 패키지 Img를 사용해도 MS윈도의 BMP 파일은 사용할 수 없습니다. 일단 시험해 보기 위해 ActiveTcl의 설치 디렉터리의 아래에 있는 demos/Tk8.4/images/letters.bmp를 복사해 와서 아래와 같이 해 봅니다.
image create bitmap b -file letters.bmp
canvas .c
pack .c
.c create image 50 50 -image b
button .b -image b
pack .b
이 비트맵 파일은 전경색과 배경색의 두 가지 요소로 구성됩니다. 포토 타입처럼 다양한 조작을 할 수는 없고 대신 전경색과 배경색을 조작할 수 있습니다. 배경색은 지정하지 않으면 원래의 캔버스나 버튼의 바탕색이 사용됩니다. 위와 같이 실행한 뒤에 아래의 코드를 실행시켜 보십시오.
b configure -foreground red -background yellow