2012-02-26 2 views
2

У меня есть серия .xcf изображений, которые я хочу сохранить как .png. Я могу открыть каждый файл и сохранить как .png, но поскольку есть много изображений, это займет много времени.Сохранить как на нескольких файлах одновременно (GIMP)

Есть ли способ конвертировать все изображения за один раз, иначе я должен потратить меньше времени на эту работу?

Заранее спасибо.

ответ

2

Ну, если вы установили imagemagick, вы можете сделать это нравится:

mogrify -format png *.xcf 

Это превращает их автоматически в том же каталоге. Также прочитайте man mogrifyor this для других вариантов.

4

Я бы использовал консоль Python внутри GIMP для этого - если вы оказались в Windows, посмотрите, как установить расширение Python для GIMP 2.6 (в Linux он либо поставляется, либо не установлен, либо является вопросом установки пакет gimp-python, возможно, тот же самый в Mac OS)

Из консоли Python GIMP у вас есть доступ к огромному API-интерфейсу GIMP, который вы можете проверить, посмотрев диалог справки-> Браузер процедур, помимо наличия всех других функций Python, включая файловые и строгие манипуляции.

Один вы = в консоли Python-фу, это дело сделать что-то вроде этого:

import glob 
for fname in glob.glob("*.xcf"): 
    img = pdb.gimp_file_load(fname, fname) 
    img.flatten() 
    new_name = fname[:-4] + ".png" 
    pdb.gimp_file_save(img, img.layers[0], new_name, new_name) 

(это будет работать на директории GIMP использует по умолчанию - сцепить desried каталог для путей файлов работать на других предприятиях).

Если вам нужно это более одного раза, посмотрите примерные плагины, которые поставляются с gimp-Python, и вставьте код выше в качестве ядра для плагина python для GIMP для вашего собственного использования.

+0

О, это так грустно, что вы начали отвечать «Я бы пользователю Python» ... Должно быть, из коробки в таком инструменте. Спасибо за обход – ruX

+1

Эй, @ruX, после этого это задается в stackoverflow, а не в графическом дизайне. Что бы вы ожидали? ;-) – hypers

+0

Будучи инструментом пакетного преобразования, не является основной целью для GIMP. Это можно сделать с помощью сторонних скриптов, и, да, лучше поддерживать подлинную экосистему. – jsbueno

2

Вы можете быстро создать плагин под названием SaveAll. Сохраните этот код в какой-то файл с расширением .scm (например saveall.scm):

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
; This program is free software; you can redistribute it and/or modify 
; it under the terms of the GNU General Public License as published by 
; the Free Software Foundation; either version 2 of the License, or 
; (at your option) any later version. 
; 
; This program is distributed in the hope that it will be useful, 
; but WITHOUT ANY WARRANTY; without even the implied warranty of 
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 
; GNU General Public License for more details. 

(define (script-fu-save-all-images) 
    (let* ((i (car (gimp-image-list))) 
     (image)) 
    (while (> i 0) 
     (set! image (vector-ref (cadr (gimp-image-list)) (- i 1))) 
     (gimp-file-save RUN-NONINTERACTIVE 
         image 
         (car (gimp-image-get-active-layer image)) 
         (car (gimp-image-get-filename image)) 
         (car (gimp-image-get-filename image))) 
     (gimp-image-clean-all image) 
     (set! i (- i 1))))) 

(script-fu-register "script-fu-save-all-images" 
"<Image>/File/Save ALL" 
"Save all opened images" 
"Saul Goode" 
"Saul Goode" 
"11/21/2006" 
"" 
) 

Поместите файл в папку плагинов с таким же расширением (на Windows, это C: \ Program Files \ GIMP 2 \ доля \ садомазо \ 2.0 \ скрипты).

Тогда вам даже не нужно перезапускать приложение. Фильтры menu ->Script-Fu ->Обновить скрипты. У вас будет Сохранить ВСЕ вещь в Файл меню (в самом низу). Это быстро работает для меня.

Этот скрипт исходит от here.

Существует также сценарий another, но я его не тестировал сам.

-1

Этот сценарий отлично работает в gimp 2.8 под управлением Windows 7.

UCHLIN WILKINSON Сохранение всех открытых изображений с GIMP.

Удобно, если вы сканируете много изображений, и вы просто хотите экспортировать их все за один раз. Он основан на скрипте Saul Goode, расширенном для запроса имени базового изображения, каталога и т. Д.

Сохраните его как saveall.scm в каталоге сценариев Gimp. Например. ~/.gimp-2.8/скрипты/

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
; This program is free software; you 
; can redistribute it and/or modify 
; it under the terms of the GNU 
; General Public License as published 
; by the Free Software Foundation; 
; either version 2 of the License, or 
; (at your option) any later version. 
; 
; This program is distributed in the 
; hope that it will be useful, 
; but WITHOUT ANY WARRANTY; 
; without even the implied warranty of 
; MERCHANTABILITY or FITNESS 
; FOR A PARTICULAR PURPOSE. 
; See the GNU General Public License 
; for more details. 

(define (script-fu-save-all-images inDir inSaveType 
inFileName inFileNumber) 
    (let* (
      (i (car (gimp-image-list))) 
      (ii (car (gimp-image-list))) 
      (image) 
      (newFileName "") 
      (saveString "") 
      (pathchar (if (equal? 
       (substring gimp-dir 0 1) "/") "/" "\\")) 
     ) 
    (set! saveString 
     (cond 
     ((equal? inSaveType 0) ".jpg") 
     ((equal? inSaveType 1) ".bmp") 
     ((equal? inSaveType 2) ".png") 
     ((equal? inSaveType 3) ".tif") 
    ) 
    ) 
    (while (> i 0) 
     (set! image (vector-ref (cadr (gimp-image-list)) (- i 1))) 
     (set! newFileName (string-append inDir 
       pathchar inFileName 
       (substring "00000" (string-length 
       (number->string (+ inFileNumber i)))) 
       (number->string (+ inFileNumber i)) saveString)) 
     (gimp-file-save RUN-NONINTERACTIVE 
         image 
         (car (gimp-image-get-active-layer image)) 
         newFileName 
         newFileName 
    ) 
     (gimp-image-clean-all image) 
     (set! i (- i 1)) 
    ) 
) 
) 

(script-fu-register "script-fu-save-all-images" 
"<Image>/File/Save ALL As" 
"Save all opened images as ..." 
"Lauchlin Wilkinson (& Saul Goode)" 
"Lauchlin Wilkinson (& Saul Goode)" 
"2014/04/21" 
"" 
SF-DIRNAME "Save Directory" "" 
SF-OPTION  "Save File Type" (list "jpg" "bmp" "png" "tif") 
SF-STRING  "Save File Base Name" "IMAGE" 
SF-ADJUSTMENT "Save File Start Number" 
     (list 0 0 9000 1 100 0 SF-SPINNER) 
) 
-1
{ 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
; This program is free software; you 
; can redistribute it and/or modify 
; it under the terms of the GNU 
; General Public License as published 
; by the Free Software Foundation; 
; either version 2 of the License, or 
; (at your option) any later version. 
; 
; This program is distributed in the 
; hope that it will be useful, 
; but WITHOUT ANY WARRANTY; 
; without even the implied warranty of 
; MERCHANTABILITY or FITNESS 
; FOR A PARTICULAR PURPOSE. 
; See the GNU General Public License 
; for more details. 

(define (script-fu-save-all-images inDir inSaveType 
inFileName inFileNumber) 
    (let* (
      (i (car (gimp-image-list))) 
      (ii (car (gimp-image-list))) 
      (image) 
      (newFileName "") 
      (saveString "") 
      (pathchar (if (equal? 
       (substring gimp-dir 0 1) "/") "/" "\\")) 
     ) 
    (set! saveString 
     (cond 
     ((equal? inSaveType 0) ".jpg") 
     ((equal? inSaveType 1) ".bmp") 
     ((equal? inSaveType 2) ".png") 
     ((equal? inSaveType 3) ".tif") 
    ) 
    ) 
    (while (> i 0) 
     (set! image (vector-ref (cadr (gimp-image-list)) (- i 1))) 
     (set! newFileName (string-append inDir 
       pathchar inFileName 
       (substring "00000" (string-length 
       (number->string (+ inFileNumber i)))) 
       (number->string (+ inFileNumber i)) saveString)) 
     (gimp-file-save RUN-NONINTERACTIVE 
         image 
         (car (gimp-image-get-active-layer image)) 
         newFileName 
         newFileName 
    ) 
     (gimp-image-clean-all image) 
     (set! i (- i 1)) 
    ) 
) 
) 

(script-fu-register "script-fu-save-all-images" 
"<Image>/File/Save ALL As" 
"Save all opened images as ..." 
"Lauchlin Wilkinson (& Saul Goode)" 
"Lauchlin Wilkinson (& Saul Goode)" 
"2014/04/21" 
"" 
SF-DIRNAME "Save Directory" "" 
SF-OPTION  "Save File Type" (list "jpg" "bmp" "png" "tif") 
SF-STRING  "Save File Base Name" "IMAGE" 
SF-ADJUSTMENT "Save File Start Number" 
     (list 0 0 9000 1 100 0 SF-SPINNER) 
) 

} 
Смежные вопросы