2013-12-11 7 views
2

스프라이트 파일을 만들기 위해 20 개 이상의 레이어가있는 .xcf 파일이 있습니다.Gimp는 모든 레이어를 레이어 크기의 파일에 저장합니다.

모든 레이어를 각 레이어의 내용과 크기 만있는 별도의 파일로 저장하고 싶습니다.

나는 김프이 스크립트를 발견 : https://github.com/jiilee/gimp

불행하게도 그 스크립트는 전체 이미지의 크기가 아니라 각 층의 크기와 파일을 만듭니다.

예를 들면 다음과 같습니다. 너비가 700px이고 높이가 400px 인 이미지가 있습니다. 레이어가 x : 100px, y : 29px에 배치됩니다. 폭 : 72px, 높이 : 21px; 내가 찾은 스크립트는 700px x 400px 파일이며 72px x 21px 파일이 아닙니다.

이 작업을 자동으로 수행 할 수 있습니까?

답변

7

예,이 경우 script-fu 대신 스크립트 언어로 Python을 사용하는 것이 좋습니다. 이런 식으로 뭔가를 들어, 당신도 방금 필터 -에 다음과 같은> 파이썬-fu-> 콘솔

>>> img = gimp.image_list()[0] 
>>> img.layers[0].name 
'C' 
>>> folder = "/tmp/" 
>>> for layer in img.layers: 
... name = folder + layer.name + ".png" 
... pdb.gimp_file_save(img, layer, name, name) 
... 
>>> 

완료를 입력 할 수 있습니다, 플러그인을 필요가 없습니다 것입니다! 이 조각은 김프에서 열린 하나의 이미지를 가정합니다 (그것은 [0] 기본적으로 목록의 마지막 공개 이미지를합니다.)

호출을 이미지 레이어 될 수있는 (드로어 블에 소요 수출, 마스크를 , 또는 다른 항목)을 입력으로 사용하고 파일 이름 확장자로 유형을 추측하는 파일을 기본 매개 변수로 저장합니다.

물론 파일에 대한보다 정교한 이름 지정 체계를 만들어 파일을 향상시킬 수 있습니다. 이 코어를 자동화 된 Python-fu 플러그인으로 만들기 위해서는, 플러그인을 개인 플러그인 디렉토리의 .py 파일에 넣으면됩니다. (Unix/Mac OS/Linux의 경우 실행 파일로 설정해야 함) - GIMP-fu의 레지스터 및 주요 기능에 대한 호출을 동일한 파일에서 수행하십시오. - 예제를 여기에서 선택하십시오. http://www.ibm.com/developerworks/opensource/library/os-autogimp/ 파일을 정리하고 이러한 호출을하십시오. (목록 6으로 바로 갈 수 있습니다).

+0

고마워요, 저에게 꼭 필요한 것이 있습니다. – mabs

+0

파일을 저장하는 데 매우 느린 이유가 있습니까? 윈도우 8, 64 비트, i5, 8GB RAM에서 파일 당 약 10 분이 소요됩니다. 아니면 그냥 파일 크기입니까? (각각 ~ 30MB에서 7 파일?) –

관련 문제