작은 조각으로 레이어를 분할하는 스크립트를 작성하려고합니다. 올바르게 실행되지만 새 레이어에는 아무 것도 붙여 넣지 않습니다.Python-fu GIMP 스크립트는 이미지를 붙여 넣지 않습니다.
def explode_layer(i, l, dx, dy):
T=[]
for ix,ox in enumerate(range(l.offsets[0], l.offsets[0]+l.width, dx)):
for iy,oy in enumerate(range(l.offsets[1], l.offsets[1]+l.height, dy)):
pdb.gimp_rect_select(i, ox, oy, dx, dy, 2, False, 0)
if not pdb.gimp_edit_copy(l):
continue
layer = pdb.gimp_layer_new(i, dx, dy, 1,
l.name+" %d,%d"%(ix,iy), 100, 0)
i.add_layer(layer)
floating_sel = pdb.gimp_edit_paste(layer, True)
pdb.gimp_layer_set_offsets(floating_sel, *layer.offsets)
pdb.gimp_floating_sel_anchor(floating_sel)
T.append(layer)
return T
저는 우분투 10.04에서 gimp 2.6.8을 사용합니다. 어떻게 해결할 수 있습니까? 더 좋은 방법이 있습니까?
나중에 문제가 생길 수 있습니다. 그 중 일부는 거대 할 수 있습니다. 하나의 문자로 변수의 이름을 지정하지 마십시오. 특히 "이미지"의 i와 같이 완전히 깃털이있는 객체를 지정하지 마십시오. "및"l "은 레이어입니다. 무엇보다 - 변수 이름에 단일 문자 "l"을 사용하지 마십시오. "1"과 구별하기가 너무 어렵습니다. 2) "마술 숫자"사용하지 않기 - 김프 파이썬은 상수를 정의하고 사용하므로 숫자 "2"대신 "CHANEL_OP_REPLACE"를 사용하면 스크립트를 미래의 증거로 만들 수 있습니다. – jsbueno
조언을 주셔서 감사합니다. 플러그인을 작성하지 않고 python-fu 콘솔에서 사용하기 만합니다. 김프 스크립팅으로 더 좋아지면, 나는 갬프를 만드는 것을 고려할 것입니다. – Arpegius
ok - 그런 단축키는 "한 번 실행"콘솔 창에 대해서는 문제가 없지만 일단 고정되면이 코드는 플러그인입니다. 이미 "등록"기능 호출 만 작성하면됩니다. – jsbueno