3장. 윌버와 함께하는 첫 단계

차례

1. 김프의 기본 개념들
2. 김프의 주요 화면
2.1. 기본 도구 상자
2.2. 이미지 창
2.3. 대화 상자와 도킹
3. 실행 취소하기
3.1. 실행 취소를 할 수 없는 것들
4. 자주 하는 편집 작업
4.1. 목적
4.2. 이미지의 크기 변경하기 (화면용)
4.3. 이미지의 크기 변경하기 (인쇄용)
4.4. 이미지 압축하기
4.5. 이미지 잘라내기
4.6. 이미지 정보 확인하기
4.7. 모드 변경하기
4.8. 이미지 뒤집기
4.9. 이미지 회전하기
4.10. 원하는 개체만 선택하여 분리하기
5. 직선 그리기
5.1. 목적
5.2. 예제들

1. 김프의 기본 개념들

그림 3.1. 김프 마스코트, 윌버

김프 마스코트, 윌버

김프 소스 중 Wilber_Construction_Kit(src/images/)에는 다양한 모양의 윌버가 포함되어 있습니다. 이 캐릭터는 Tuomas Kuosmanen (tigertATgimp.org)가 그린 것입니다.


이 장에서는 김프에서 사용하는 기본 개념과 용어에 관한 간략한 소개를 할 것입니다. 이곳에서 소개된 내용들은 다른 장에서 자세히 설명될 것입니다. 각 내용과 관련된 부분은 목차에서 쉽게 찾을 수 있습니다.

이미지

이미지는 김프 사용의 가장 기본이 되는 부분입니다. 보통 이미지라고 하면 TIFF 나 JPEG 과 같은 하나의 파일을 가리킵니다. 또는 하나의 이미지가 열려 있는 창을 가리키는 말로 쓰는 경우도 있습니다. 하지만 엄밀히 말해 이는 올바르지 않습니다. 왜냐하면 여러 창에 같은 이미지를 열 수도 있기 때문입니다. 반대로 한 창에 여러 이미지를 띄우거나 창없이 이미지를 열수는 없습니다.

김프에서 이미지는 굉장히 복잡하게 구성되어 있습니다. 이는 기존의 그림이 그려진 종이라는 개념이 아니라 레이어라는 수많은 페이지로 이루어진 책과 같은 개념입니다. 김프 이미지에는 레이어 외에 선택 마스크, 채널, 경로 등도 포함됩니다. 또한 김프parasites(기생충)라고 부르는 이미지의 데이터 조각을 무작위로 이어붙이는 기술도 제공합니다.

김프에서는 동시에 많은 이미지들을 열 수 있습니다. 큰 이미지들을 동시에 열려면 많은 메모리가 필요하지만, 김프의 지능적인 타일기반 메모리 관리 시스템은 이러한 메모리 문제를 깔끔하게 처리할 수 있습니다. 하지만 한계는 있으므로 일반적으로는 사용 가능한 메모리를 늘이는 것이 좋습니다.

레이어

이미지를 한 장의 종이로 비유한다면, 레이어가 포함된 이미지는 투명한 종이가 여러장 겹쳐진 묶음입니다. 이 묶음의 각 종이에 그림을 그릴 수 있으며, 투명한 부분을 통해 다른 종이의 내용을 볼 수도 있습니다. 또한 종이의 순서도 바꿀 수 있습니다. 정리하면 레이어는 불투명할 필요도 없으며, 모든 레이어의 크기가 이미지의 크기와 같을 필요도 없습니다. 그런 까닭에 많은 레이어를 포함한 이미지를 보면 최상위 레이어 외에 다른 레이어의 내용들도 볼 수 있습니다. 김프 고급 사용자들은 이러한 레이어의 속성을 이용하여 많은 레이어를 가지고 이미지 편집 작업을 하곤 합니다.

해상도

디지털 이미지는 픽셀이라는 다양한 색상을 가진 사각형 요소들의 조합으로 이루어집니다. 각각의 이미지는 가로 900픽셀, 세로 600픽셀과 같이 픽셀 사이즈 속성을 갖습니다. 하지만 픽셀은 물리적인 크기를 의미하지는 않습니다. 따라서 이미지를 인쇄하는 경우에는 해상도라는 값을 이용해야 합니다. 해상도는 이미지의 픽셀 크기와 종이에 인쇄 시 실제 크기(보통은 인치)의 비율을 나타낸 값입니다. 대부분의 이미지 파일 형식은 이 값을 저장하며, 일반적으로 ppi(인치당 픽셀) 단위를 사용합니다. 이미지 파일을 인쇄할 때 해상도 값은 실제로 종이에 인쇄될 이미지의 크기를 결정합니다. 예를 들어 900x600 픽셀의 크기를 가진 이미지를 3x2 인치 크기의 카드에 인쇄하면 예쁘게 인쇄되지만, 큰 종이에 인쇄하면 깍둑이 모양으로 보기 흉하게 인쇄됩니다. 카메라나 스마트폰 등에서 저장한 이미지는 보통 72ppi나 96ppi의 해상도를 갖습니다. 김프를 이용해 이 해상도값을 변경할 수 있습니다. 하지만 해상도값의 변경은 실제 이미지 픽셀에는 아무런 영향을 주지 않습니다. 그리고 해상도는 오직 인쇄시에만 사용하므로, 그 외의 경우(이미지를 온라인 상에 게재하거나 스마트폰, 텔레비전, 비디오 게임 등에 표시하는 등)에는 해상도값을 무시하고 픽셀값을 기준으로 이미지를 표시합니다.

채널

채널은 픽셀 색상을 구성하고 있는 요소 중 하나입니다. 김프에서 픽셀이 가진 색상은 일반적으로 빨강, 녹색, 파랑, 그리고 투명(알파)입니다. 그레이스케일 이미지의 경우에는 회색과 알파만 있고, 인덱스 이미지는 인덱스와 알파만 있습니다.

한편 이미지의 모든 픽셀에 대한 색상 요소 중 하나를 채널이라고도 합니다. 색상 채널에 대한 자세한 내용은 채널 대화 상자 섹션을 참고하십시오.

김프에서는 이러한 요소들을 한데 모아 픽셀 색상을 구성하여 화면, 프린터, 기타 장치 등에 이미지를 표시합니다. 일부 출력 장치는 빨강, 녹색, 파랑 등의 다른 채널을 사용하기도 합니다. 이런 경우에는 김프에서 사용하는 각 채널이 해당 장치에 알맞는 채널로 자동 변환됩니다.

이미지의 특정 색상을 조절할 때 채널을 이용하면 편리합니다. 예를 들어 인물 사진에서 적목 현상을 제거하려면 빨강 채널에서 색상을 조절하면 됩니다.

채널에서 표현하는 색상을 허용하거나 제한한다는 점에서 채널은 마스크와 비슷하기도 합니다. 따라서 채널 정보에서 필터를 사용하여 이미지에 다양하고 세밀한 효과를 줄 수 있습니다. 이런 예로 채널 믹서 필터가 있습니다.

이러한 채널 외에 다른 채널(정확히는 채널 마스크)을 생성할 수 있습니다. 새로 생성한 채널은 채널 대화 상자의 아래부분에 표시됩니다. 직접 새 채널을 생성하거나 선택을 채널로(마스크) 기능을 이용해 저장할 수도 있습니다. 채널 마스크에 대한 더 자세한 사항은 용어집의 마스크 부분을 참고하십시오.

선택

이미지를 편집할때 일정 부분에만 영향을 미치도록 하고 싶을 때가 있습니다. 이럴때 선택 기능을 사용합니다. 선택을 하면 움직이는 점선으로 선택된 영역과 선택되지 않은 영역이 구분됩니다. 움직이는 점선을 흔히 행진하는 개미떼 라고 부르는데, 이는 엄밀히 말해 선택은 아닙니다. 김프에서 선택은 선택되거나 선택되지 않는 이분법적인 구분이 아니라 단계적으로 구현되어 완전한 회색톤 채널에 표현됩니다. 화면에서 볼 수 있는 점선은 50% 정도 선택된 영역의 윤곽선입니다. 퀵마스크 버튼을 눌러 퀵마스크 모드로 전환하면 선택의 제 모습을 확인할 수 있습니다.

김프를 효과적으로 사용하려면 선택을 잘 하는 방법을 배워야 합니다. 선택만 잘 다뤄도 거의 대부분의 작업을 할 수 있습니다. 이처럼 선택은 가장 중요한 부분이므로 김프에서는 선택 생성 도구, 선택 조정 도구, 그리고 색상 채널처럼 칠하듯 선택할 수 있는 퀵마스크 모드로의 전환 등의 상당히 많은 선택 관리 도구를 제공합니다.

실행 취소하기

이미지 작업 중 실수를 한 경우, 해당 작업 전으로 되돌릴 수 있습니다. 이미지에 할 수 있는 작업의 대부분을 실행 취소할 수 있으며, 실행 취소를 하기로 결정한 시점으로부터 상당히 많은 동작들을 실행 취소할 수 있습니다. 김프는 실행 취소를 위해 각 작업의 내용을 메모리에 저장합니다. 따라서 실행 취소가 가능한 횟수는 무한하지 않습니다. 작업 내용에 따라 실행 취소에 필요한 메모리 양이 다릅니다. 일부 작업은 필요한 메모리량이 무척 작아 많은 횟수를 실행 취소할 수 있는 반면, 일부 작업은 많은 메모리를 필요로 하기도 합니다. 김프의 각 이미지의 실행 취소 동작에 할당된 메모리량은 기본 설정에서 변경할 수 있습니다. 하지만 어떠한 상황에서라도 최소한 2-3회 정도는 실행 취소를 할 수 있습니다.(이미지를 닫는 동작은 실행 취소를 할 수 없습니다. 따라서 이미지를 변경한 뒤 이미지를 닫을 경우 김프는 자동으로 확인 과정을 호출합니다.)

플러그인

대부분의 이미지 편집 작업은 김프만으로 가능하지만, 김프에서는 플러그인 이라는 외부 프로그램을 통해 조금 더 편리하고 지능적인 확장 기능들을 제공합니다. 중요한 플러그인들은 김프와 함께 배포되지만, 그 외의 수많은 플러그인들을 사용할 수도 있습니다. 플러그인(또는 스크립트)은 사용자들이 김프 개발팀에 참여하지 않고도 직접 김프의 기능을 확장시킬 수 있는 가장 손쉬운 방법입니다.

그런 까닭에 필터 메뉴의 모든 명령과 다른 메뉴들의 많은 명령들은 플러그인으로 구현되어 있습니다.

스크립트

C 언어로 짜여진 플러그인 외에 스크립트를 사용할 수도 있습니다. 대부분의 스크립트들은 Script-Fu 라는 언어로 짜여졌는데, 이것은 Scheme이라고 불리는 Lisp 계열 언어로 김프 전용 언어입니다. Python 이나 Perl 등의 언어로도 스크립트를 만들 수 있습니다. 이러한 언어들은 Script-Fu 보다 유연하고 강력하지만, 김프와 함께 배포되지 않는 프로그램에 사용되기 때문에, 그 안정성에 대해 보장을 받지 못합니다.