人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

GIMP2.6での画像バッチ処理について

画像の一部分にぼかし処理の位置と範囲を指定してぼかし処理を施したいのですが、
Batch Processでは画像全体にしかぼかし処理が行えずに困っています。

ぼかし処理の位置指定と範囲指定が可能で、バッチ処理ができる方法をおしえてください。

●質問者: iichico
●カテゴリ:コンピュータ ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● TransFreeBSD
●500ポイント

下記参考になるべく機種依存しない様に書いてみました。ただ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が良いのですが、ちょっと移植の時間が取れないので……

関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ