반응형
글 작성 현재 김프버전: 2.10.22
김프(Gimp)에서 매크로 기능을 사용하기 위해서는
"매크로 녹화" 와 같은 기능은 없고 "프로그래밍"을 통한 "스크립트"를 작성하여 사용한다.
김프에서 매크로 기능을 가능하게 하는 스크립트는 두가지가 있다.
- script-FU : 김프 초기버전 부터 사용해오던 기본적인 스크립트.
- python-FU : 파이썬 언어를 사용하는 새로운 스크립트.
이중에서 python-FU의 기본을 정리해 본다.
먼저 이름그대로 기본적인 파이썬 지식이 있어야 한다.
본인도 이전까지는 파이썬을 접해보지 않았으며
김프에 매크로 기능을 사용하기 위해 이번에 처음으로 접하게 되었다.
다행이도 다른 프로그래밍 언어와 큰 차이가 없어 적응하는데 별 문제는 없었다.
(script-FU를 사용하기 위해서는 Scheme 이라는 형식의 문법을 사용하는데,
그 문법은 참으로 눈에 적응되지 않았다.)
python-FU 로 할수있는 것
김프의 모든 기능을 스크립트로 작성하여
새로운 메뉴로 등록시켜 놓고 사용할 수 있다.
Hello World
#!/usr/bin/env python
# coding: utf-8
from gimpfu import *
def NAME_OF_MAIN_FUNCTION(image, drawable):
# 이곳에 수행할 스크립트를 작성한다
pdb.gimp_message("hello world")
register(
"python-fu-NAME-OF-MAIN-FUNCTION",
"간단한 소개",
"긴 설명/도움말",
"작성자", "카피라잇", "작성일",
"메뉴명",
"", # 이미지타입 (*, RGB, RGB*, RGBA, GRAY 등...)
[
# 함수에 전달할 파라미터들
# 파라미터 기본형식: (UI_객체, "변수명", "표기항목", 기본값)
(PF_IMAGE, "image", "선택된 이미지", None),
(PF_DRAWABLE, "drawable", "작업 레이어", None)
# 위 두 파라미터는 기본적으로 항상 포함되어야 한다.
# (PF_SLIDER, "slider", "슬라이더", val, (min, max, step))
# (PF_SPINNER, "spinner", "스피너", val, (min, max, step))
# (PF_RADIO,"radioval", "선택", val,
# (
# ("항목1", 1),
# ("항목2", 2)
# )
# )
# (PF_OPTION, "optval", "선택", 0, ["옵션1", "옵션2"])
# 등등.....
],
[],
NAME_OF_MAIN_FUNCTION,
menu="<Image>/Filters"
)
main()
- #!/usr/bin/env python
- 김프 내부에서 사용할 스크립트라는걸 등록한다(?)
- 위 한줄이 없어도 실행 되기는 하나, 파이썬 콘솔창과 함께 실행된다.
- 리눅스환경에선 없어도 콘솔창없이 실행되는데, 윈도우에서는 넣어주어야 콘솔창없이 실행된다.
- # coding: utf-8
- 문서의 인코딩을 지정해 준다.
- 없을경우 기본적으로 ASCII 로 간주한다.
- from gimpfu import *
- 김프모듈을 불러온다.
- 김프 내부의 모든 기능을 사용할 준비과정.
- def NAME_OF_MAIN_FUNCTION(image, drawable):
- 새로만들 함수(메뉴)를 정의한다.
- "NAME_OF_MAIN_FUNCTION" 부분에 새로운 함수이름을 지정한다.
- 이 함수 내부에 하고자 하는 작업의 스크립트를 작성한다.
- image: 현재 작업하고 있는 이미지의 ID.
- drawable: 현재 작업하고 있는 레이어 또는 선택영역 등의 ITEM.
- register()
- 메뉴에 등록한다.
- 함수에 전달할 파리미터를 받을 대화상자들을 지정한다.
- menu = "<Image>/Filters/MyScript"
- 메뉴의 위치를 정한다.
- "<Image>"가 김프의 메인 메뉴 최상단 이며, 위의 예는 "필터"탭의 "MyScript"라는 항목에 등록이 된다.
- "MyScript" 라는 항목이 없을경우 항목이 저절로 만들어진다.
- 최상단에 새로운 메뉴탭을 만들려면 "<Image>/MyScript"등으로 하면 된다.
- 스크립트 설치
- 작성한 스크립트는 확장자를 py로 하여 저장한다.
- 김프의 plugins 폴더에 작성한 파일을 넣어준다.
- plugins폴더는 김프 메뉴바의 [편집 > 기본설정 > 폴더 > Plug-ins] 를 클릭하면 확인할 수 있다.
위의 예제가 정상적으로 등록되면,
김프의 [필터 > MyScript] 안에 "메뉴명" 이라는 메뉴가 보이게 된다.
"메뉴명"을 클릭하면 오류콘솔탭 에 "hello world"가 표기된다.
"오류콘솔탭"은 좌우 도구모음탭 한곳에 작은 삼각형 모양의 버튼을 클릭하고 [탭추가 > 오류콘솔]을 선택하여 탭을 추가해 놓으면 볼수있다.
참고사항
- 구문오류, 오타 등 에러가 있는 스크립트는 메뉴에 등록되지 않는다.
- 메뉴에 보이지 않고 어디서 오류가 나는지 모를때에는
김프를 터미널에서 실행하여 오류메세지를 확인한다.
- 메뉴에 보이지 않고 어디서 오류가 나는지 모를때에는
- 리눅스의 경우 py 파일을 "프로그램으로 실행" 가능하도록 해줘야 한다.
- 파일탐색기로 해당파일을 [오른쪽클릭 > 속성 > 권한] 에서 "프로그램으로 실행 허용"에 체크 하거나
- 터미널에서 해당위치로 간다음 "sudo chmod +x *.py"를 실행한다.
- 등록된 메뉴의 스크립트 수정은 김프를 재시작 하지 않아도 바로 적용된다.
- 메뉴에 정상적으로 등록된 스크립트는 그 파일을 열어 수정을 하고 저장을 하면
김프를 재시작 하지 않고도 메뉴를 실행하여 바로 변경된 결과를 확인할 수 있다.
- 메뉴에 정상적으로 등록된 스크립트는 그 파일을 열어 수정을 하고 저장을 하면
- 실행할 수 있는 김프의 기능들은 파이썬 콘솔에서 찾아볼 수 있다.
- 파이썬콘솔 열기 : [필터 > python-FU > 콘솔] 클릭.
- 콘솔창 아래의 [찾아보기]버튼을 클릭한다.
- 검색어를 입력하여 기능함수를 찾는다.
- 찾아진 함수의 함수명과 파라미터 등을 확인하여 스크립트를 작성한다.
python-FU 기본학습 참고 사이트
www.gimp.org/docs/python/index.html#WHAT-IS-IT
jacksonbates.wordpress.com/python-fu-gimp-scripting-tutorial-pages/
반응형
'김프(Gimp) 사용법' 카테고리의 다른 글
BIMP : 김프(GIMP) 이미지 일괄작업 처리 플러그인 (0) | 2021.04.12 |
---|---|
python-FU 기본2. 매크로 작성 예제 (0) | 2020.11.15 |
리눅스 김프(GIMP) 최신버전(flatpak버전)용 G'Mic 플러그인 (0) | 2020.07.23 |
김프(Gimp) 시작할때마다 폰트 스캔하는 문제 (0) | 2017.10.24 |
김프(Gimp) 단축키를 내 마음대로 설정/변경 하기 (0) | 2015.10.06 |