パスの文字列を加工したりとかいろいろ複合的に使ってみたやつ。
;---------------------------------- ;---------------------------------- ; フォルダから画像を読み込む ; ファイルパスからファイル名を取得する (define (my-extract-file-name text) (car (reverse (strbreakup text "\\") ) ) ) ; 画像を読み込んだ後、タブを表示する (define (my-tab-update image) (begin (gimp-display-new image) (gimp-displays-flush) image ) ) ; リストで与えられた画像ファイルを全て読み込む (define (my-open-all-images flist) (if (null? flist) '() (cons (my-tab-update (car (gimp-file-load 0 (car flist) (my-extract-file-name (car flist) ) ) ) ) (my-open-all-images (cdr flist) ) ) ) ) ; パスで指定したディレクトリから画像を読み込む。 ; パスの最後は\\*で終わっている必要がある ; 例 (my-open-images "C:\\dev\\*") (define (my-open-images pathnamelist) ( my-open-all-images (car (cdr (file-glob pathnamelist 0))) ) ) ;---------------------------------- ;---------------------------------- ; 画像をxcf形式で保存する ; 画像を一枚xcf形式で保存する。 ; ファイル名は元の名前+xcf (define (my-save-as-xcf-single image outdir basename) (gimp-xcf-save 0 image (car (gimp-image-get-active-drawable image) ) (string-append outdir basename ".xcf") (string-append basename ".xcf") ) ) ; outdirへ画像群を保存。outdirは"\\"で終わっている必要がある (define (my-save-images outdir images) (if (null? images) '() (begin (my-save-as-xcf-single (car images) outdir (my-extract-file-name (car (gimp-image-get-filename (car images) ) ) ) ;画像番号からファイルパスを取得しファイル名を切り出す ) (my-save-images outdir (cdr images) ) ) ) )
;(my-save-as-xcf-images "H:\\input\\*" "H:\\output\\") (define (my-save-as-xcf-images indir outdir) (my-save-images outdir (my-open-images indir) ) )