下記参考になるべく機種依存しない様に書いてみました。ただperlが必要です。
カレントディレクトリのjpgファイルを処理します。
最後の方に実際の処理部分があって、
下記で200 X 200の点から100 X 100の範囲を選択し、
; area select (gimp-rect-select image 200 200 100 100 2 0 0)
下記でぼかし半径を水平垂直20でガウシアンぼかしをかけています。
; blur (plug-in-gauss 1 image drawable 20 20 1)
下記でJPEGでの保存をしていて、いくつか保存時のパラメータがあります。
; save file (file-jpeg-save 1 image drawable outFile outFile 0.85 0 1 0 "" 0 1 0 0)
詳細は上記リンクを参考に「コンソール」の「参照」ボタンを押すことで現れる「Script-fu プロシージャブラウザ」で、各関数の説明を参照してください。
ただ、簡単な説明しかありませんので、実際の所トライアンドエラーが必要かも知れません。
use strict; use warnings; use Cwd; use File::Spec; use File::HomeDir; my @files = glob "*.jpg"; my $newdir = 'new'; my $myfunc = 'my-func'; my $runall = 'run-all'; my $gimpcmd = 'gimp --no-interface --no-data --no-fonts --batch'; my $path = getcwd; my $runall_file = File::Spec->catfile( File::HomeDir->my_home, '.gimp-2.6', 'scripts', "$runall.scm"); open my $out, '>', $runall_file or die "cannot open $runall_file: $!"; print $out "(define ($runall)\n"; foreach (@files) { my $src = File::Spec->catfile($path, $_); $src =~ s/\\/\\\\/g; my $dst = File::Spec->catfile($path, $newdir, $_); $dst =~ s/\\/\\\\/g; print $out "\t($myfunc \"$src\" \"$dst\")\n"; } print $out <<"TAIL"; (gimp-quit 0) ) TAIL print $out <DATA>; #if (-f "$myfunc.scm" and open my $scm, '<', "$myfunc.scm") { # print $out (<$scm>); # close $scm; #} close $out; -d $newdir or mkdir $newdir; system qq{$gimpcmd "($runall)"}; __END__ (define (my-func inFile outFile) ; Load an image (define image) (set! image (car (file-jpeg-load 1 inFile inFile))) ; get drawable (define drawable) (set! drawable (car (gimp-image-get-active-drawable image))) ; area select (gimp-rect-select image 200 200 100 100 2 0 0) ; blur (plug-in-gauss 1 image drawable 20 20 1) ; save file (file-jpeg-save 1 image drawable outFile outFile 0.85 0 1 0 "" 0 1 0 0) )
Windowsだとperlが標準でないのでVBSが良いのですが、ちょっと移植の時間が取れないので……