2012-12-14 2 views
4

python-fu 인터페이스의 다른 그룹 레이어에 그룹 레이어를 추가하는 방법을 찾을 수 없습니다.GIMP Python-fu 중첩 된 그룹 레이어

Gimp.Layer 개체에서도 메소드를 찾으려고했지만 행운은 없습니다.

python-fu를 사용하여 다른 그룹 레이어에 그룹 레이어를 추가하려면 어떻게해야합니까?

+1

이 questin 온 - 주제 : 이제 모두 하나의 새 그룹 레이어를 추가하기 위해 수행하는 것은 명확하지 않고 문서화가 잘되어 있지 않습니다. – jsbueno

+0

건배 나는 그것을 조금 바꿔 썼다. (나는 새로운 질문이다 - 첫번째 질문!) – Larpon

답변

6

Python-fu의 레이어 그룹에 대한 지원은 2.8 릴리스 이전의 마지막 분에 추가되었으며 오히려 불완전합니다.

그래서, 김프 2.8에서 적절한 레이어 그룹을 만들 수있는 유일한 방법은 PDB 전화를 사용하는 것은 :

group = pdb.gimp_layer_group_new(img) 
group.name = "my group" 

합니다 (img.GroupLayer 호출을 사용하여 김프 2.8의 버그입니다 -로가는 길이어야한다) 미래에 가서 당신은 당신의 그룹이되면

, 당신은에

pdb.gimp_image_insert_layer(<img>, <layer>, <parent>, <position>) 

등을 사용하여 이미지의 아무 곳이나 삽입 할 수 있습니다 :

>>> img = gimp.Image(640, 480, RGB) 
>>> pdb.gimp_display_new(img) 
<display> 
>>> parent_group = pdb.gimp_layer_group_new(img) 
>>> child_group_1 = pdb.gimp_layer_group_new(img) 
>>> child_group_2 = pdb.gimp_layer_group_new(img) 
>>> grand_child_group = pdb.gimp_layer_group_new(img) 
>>> img.add_layer(parent_group, 0) 
>>> pdb.gimp_image_insert_layer(img, child_group_1, parent_group,0) 
>>> pdb.gimp_image_insert_layer(img, child_group_2, parent_group,1) 
>>> pdb.gimp_image_insert_layer(img, grand_child_group, child_group_1,0) 
>>> l1 = gimp.Layer(img, "test", 320,240) 
>>> pdb.gimp_image_insert_layer(img,l1, grand_child_group,0) 
그래서, 실제로, 당신은 부모에에 "add_layer"방법을 통해 이미지에 레이어와 그룹을 추가 할 수 있지만 레이어 그룹에 하나를 추가해야하는이 극단적 인 API의 비대칭,이

, 당신은에 있습니다 troguh로 가서 pdb.gimp_image_insert_layer 호출.

업데이트 (2 월/2015) - gimp.GroupLayer() 버그는 김프의 git에서 수정되었으며 이후에는 김프 2.8.16부터 제대로 작동합니다. 이 GIMP를위한 프로그래밍 API에 대한 요청 및 응답에서 볼 수 있듯이,이다 thaqt 것을 요청 -

>>> g = gimp.GroupLayer(img) 
>>> pdb.gimp_image_insert_layer(img, g, None, 0) 
+2

나를 위해 그것을 지워 줘서 고맙다. - 나는 pdb.gimp_image_insert_layer 호출을 완전히 놓쳤을 것임에 틀림 없다. 비록 내가 의도 한 용도가 아니라는 것을 알고 있습니다 - 나는 모험 게임 엔진을위한 씬 편집기 (실제로는 오브젝트 배치 편집기와 비슷합니다)로서 김프를 사용합니다. 터치 할 수있는 영역 (기생충이있는 채널)과 장면에 대표적인 그래픽 (기생충이있는 레이어)이있는 객체를 빠르게 설정할 수 있습니다. 장면 xml 파일 가져 오기 및 내보내기를 사용하면 게임에서 오브젝트를 배치하고 수정하는 속도가 훨씬 빨라졌습니다. 많은 시간을 절약 해 주셔서 감사합니다! – Larpon