반응형
글 작성 현재 김프버전: 2.10.22
이전글의 "hello world" 예제를 수정하여
실제로 매크로 스크립트를 만드는 과정을 나열해 본다.
만들고자 하는 매크로의, 매크로 없이 실제 작업는순서
- 이미지에 알파채널 추가.
- 김프는 이미지를 읽어들이면 알파채널을 자동으로 추가하지 않아서 수동으로 추가해 주어야 한다.
- [편집 > 기본 설정 > image import & Export > Add an alpha chaneel to imported images] 를 체크하면 파일을 열때 자동으로 알파채널이 추가된다. - 레이어를 마우스 우클릭 한뒤 (H)알파채널 추가 를 클릭한다.
- 김프는 이미지를 읽어들이면 알파채널을 자동으로 추가하지 않아서 수동으로 추가해 주어야 한다.
- 이미지의 레벨을 일정한 수치로 조정.
- 메뉴바의 [색 > 레벨] 또는 단축키를 설정하여 레벨메뉴를 연다.
- 입력/출력 레벨값과 감마값을 원하는 양으로 조절 또는 프리셋에 등록한 설정을 선택하여 실행한다.
- 이미지에 따라 주로 적용하는 레벨값이 두개이다.
- 녹색배경(크로마키) 선택
- 컬러선택 도구로 임계값을 70 정도로 맞추고 녹색을 클릭한다.
- 선택한 색상을 지운다.
위의 네가지 작업을 한번의 버튼으로 실행하는 매크로를 만들려고 한다.
매크로 없이 수동으로 하게되면 매 이미지마다 다음과 같은 과정을 거친다.
위의 작업을 버튼 한번으로 실행하는 매크로를 만들어 보자.
스크립트 기본틀
# coding: utf-8
from gimpfu import *
def alpha_level(image, drawable):
register(
"python-fu-alpha-level",
"알파추가 레벨적용",
"알파채널 추가하고 레벨값 선택 적용",
"그림그리는호랑이", "horangi.co.kr", "2020.11",
"알파와레벨",
"",
[
(PF_IMAGE, "image", "takes current image", None),
(PF_DRAWABLE, "drawable", "Input layer", None)
],
[],
alpha_level,
menu="<Image>/MyScript"
)
main()
- 스크립트 이름은 "alpha_level"로 설정.
- 메뉴에 보여질 메뉴이름은 "알파와레벨"로 설정.
알파채널 추가 스크립트 추가
def alpha_level(image, drawable): 아래에 스크립트를 추가한다.
#선택된 레이어에 알파채널 추가
pdb.gimp_layer_add_alpha(drawable)
두 가지의 레벨형식 선택 라디오버튼 추가
register 안의 파라미터 입력부분에 라디오버튼 UI를 추가한다.
(PF_RADIO, "gmode", "선명도 유형", 1,
(
("선택1", 1),
("선택2", 2)
)
)
- 라디오버튼 대화상자 제목 : "선명도 유형"
- 변수이름 : gmode
- 기본값 : 1
- 라디오버튼
- 이름 : "선택1", 선택값 : 1
- 이름 : "선택2", 선택값 : 2
라디오버튼 으로 선택한 gmode 값을 메인함수(alpha_level)에서 받을수 있도록 인자를 포함 시킨다.
def alpha_level(image, drawable, gmode):
선택한 항목에 따른 레벨값 적용하여 이미지 레벨작업 스크립트 추가
def alpha_level(image, drawable): 에 스크립트 추가
1. gmode 값에 따라 레벨 요소값 책정
if gmode == 1:
gamma = 0.74
in_high = 191
elif gmode == 2:
gamma = 0.66
in_high = 227
2. 책정된 레벨 요소값을 이미지에 적용 스크립트
pdb.gimp_levels(
drawable,
0,
0,
in_high,
gamma,
0,
255
)
pdb.gimp_levels()의 매개변수는 [파이썬콘솔 > 찾아보기] 에서 다음과 같이 확인할 수 있다.
지금까지의 전체 스크립트
# coding: utf-8
from gimpfu import *
def alpha_level(image, drawable, gmode):
pdb.gimp_layer_add_alpha(drawable)
if gmode == 1:
gamma = 0.74
in_high = 191
elif gmode == 2:
gamma = 0.66
in_high = 227
pdb.gimp_levels(
drawable,
0,
0,
in_high,
gamma,
0,
255
)
register(
"python-fu-alpha-level",
"알파추가 레벨적용",
"알파채널 추가하고 레벨값 선택 적용",
"그림그리는호랑이", "horangi.co.kr", "2020.11",
"알파와레벨",
"",
[
(PF_IMAGE, "image", "takes current image", None),
(PF_DRAWABLE, "drawable", "Input layer", None),
(PF_RADIO, "gmode", "선명도 유형", 1,
(
("선택1", 1),
("선택2", 2)
)
)
],
[],
alpha_level,
menu="<Image>/MyScripts"
)
main()
위와같은 방식으로
1. 뒷 배경색상을 "컬러로 선택" 메뉴로 선택하고
2. 선택된 범위를 지우기
두가지의 스크립트를 [파이썬콘솔 > 찾아보기]를 이용하여
함수를 찾아내어 스크립트를 작성한다.
완성된 매크로를 메뉴로 등록하여 실행하면 아래와 같다.
반응형
'김프(Gimp) 사용법' 카테고리의 다른 글
플랫팩(Flatpack)버전 김프(GIMP) 필수(?)플러그인 한번에 설치 (0) | 2022.04.07 |
---|---|
BIMP : 김프(GIMP) 이미지 일괄작업 처리 플러그인 (0) | 2021.04.12 |
python-FU 기본 (0) | 2020.11.15 |
리눅스 김프(GIMP) 최신버전(flatpak버전)용 G'Mic 플러그인 (0) | 2020.07.23 |
김프(Gimp) 시작할때마다 폰트 스캔하는 문제 (0) | 2017.10.24 |