ベースシステムは,plamo linux 4.5です。
plamo4.5のセットアップとともに入っているらしいです。
また、plamo4.6には、gimp2.6が入っています。
入れたものはgimp2.6.4です。
なお、plamo4.6にはgimp2.6がセットアップされていますので、そのまま使ってもいいと思います。
必要なものは./configureのエラーメッセージを確認して順次入れていきました。
新しいモノを入れようとすると、これがまたエラーになることがあります。
必ずしも最新版である必要はなくて、./configureで要求された以上であればいいのですから、少し古い版のモノを試してみるのも手です。
新しいライブラリを入れたら、ライブラリサーチパスを最新の状態に更新します。
# ldconfigこれで無事にインストールできたはずですが、起動できませんでした。
D-bus library .... failed to read machine uuid.と出て起動してくれません。
dbusのファイルを探して見つからなかった模様なので、作ってあげます。
# cd /usr/var/lib/dbus/当初から入っているgimp2.4と今回入れたgimp2.6は同じgimpなので、コマンド名が重複しています。また、一部のライブラリは2.6で上書きした形になっているようで、gimp2.4は起動できなくなっています。
ところが、サーチパスはgimp2.4の入っている/usr/binの方が順位が高いので、2.4を起動しようとしてしまいます(gimp2.6は/usr/local/bin)。 そのため、サーチパスの順序を入れ替えています。
最初に起動したときには「ユーザーインストール」になります。 案内に従ってポチポチとボタンを押していけばいいです。
保存もできるみたいなんですが、ソースを書き換える場合
plug-ins/file-jpeg/jpeg.cを書き換えてビルドし直します
トーンカーブのヒストリーが残るのですが、際限なく保存されてしまいます。 すると、名前をつけて保存したトーンカーブが、ヒストリーの彼方に追いやられてしまうことに。
ヒストリーの数を制限できればいいんですが...
そこで、ヒストリーを保存しているファイルを書き換えるperlスクリプトを書きました。 gimpを起動する前に実行することにします(別にgimpの起動コマンドを書いているので、そこに挟んでおきます)。
#!/usr/bin/perl
#
# -------------------------------------------------------
# gimp-strip-curves.pl
# Gimp2.6のトーンカーブの履歴ファイルを整理する
# -------------------------------------------------------
# - 自動保存された分は、○日前以前 or 10個め以降の分を消す
#
use Date::Simple;
$wdir = "$ENV{'HOME'}/.gimp-2.6/tool-options";
$ifile = "gimp-curves-tool.settings";
$ofile = $ifile . ".2"; # 「2」に意味はナイ ...
$qfile = $ifile . ".9"; # 「9」に意味はナイ ...?
# 元ファイル(ifile)から、新しい設定ファイル(ofile)を作成して ...
$maxdif = 10; # 履歴を残す最大日数
$maxhis = 10; # 履歴を残す最大数
chdir $wdir || die "cannot chdir to \"$wdir\"";
open( IN, $ifile ) || die "cannot open \"$ifile\"";
open( OUT, ">$ofile" ) || die "cannot open \"$ofile\"";
my $i=0;
my $kakko = 0;
while(){
$text = $_;
if( $kakko == 0 ){
# (GimpCurvesConfig "2009-09-20 00:03:11"
if( $text =~ m/\(GimpCurvesConfig\s\"(\d\d\d\d-\d\d-\d\d)\s/ ){
$dt = Date::Simple->new( $1 );
$today = Date::Simple->new( `date +%F` );
$dif = $today - $dt;
}else{
$dt = 0;
$today =0;
$dif =-1;
}
}
# ------------------ カッコの数でブロックを判定
$left = $text;
$left =~ s/\(+//;
$kl = length($text)-length($left);
$right = $text;
$right =~ s/\)+//;
$kr = length($text)-length($right);
$kakko = $kakko + $kl -$kr;
# print "$kakko ";
$te .= $text;
if( $kakko == 0 ){
if( $dif < 0 ){
print OUT $te;
}elsif(( $dif < $maxdif )&&( $i < $maxhis )){
$i++;
print OUT $te;
}
# print "--------------------------------------- $dt\n";
$te = "";
}
}
# 元ファイル(ifile)をバックアップ(qfile)して
$ret = `mv -f $ifile $qfile`;
# 新しいファイル(ofile)を正式な設定ファイル(ifile)にする
$ret = `mv $ofile $ifile`;
デバッグの方法を教えてください...(T^T)
強制的に保存品質を決め打ちしてダイアログも出さない保存スクリプト(script-fu)です。
jpegで保存する時には、画像品質を0〜100で任意に与えることができますが、デフォルトでは元のjpegファイルの設定値をそのまま引き継ごうとします。
デジカメで写真を撮ったときはなるべく高品質になる設定をしていますが、色味などを調整したあと、手元で保存する時には90くらいに落としています。
この値を手動で設定するのは面倒だし、その他にもいろいろ設定するダイアログやら確認するだけの警告やらが出て意外に煩雑だったので、何とかしてみました。
;
;
;
(define (script-fu-save-as-90
theImage ;画像
theLayer ;ドロアブル
)
; (gimp-image-undo-group-start theImage)
(let* ( (filename "") (sImage 0) (sLayer 0) )
(set! filename (car (gimp-image-get-filename theImage)))
; 内側では複製を持っておいてレイヤー結合をしておく
; (これをやって、レイヤーが合成された状態のサムネイルを生成させる)
(set! sImage (car (gimp-image-duplicate theImage)))
(set! sLayer (car (gimp-image-get-active-layer sImage)))
(set! sLayer (car (gimp-image-merge-visible-layers sImage CLIP-TO-IMAGE)))
(file-jpeg-save 1 sImage sLayer filename filename
0.90 ; jpegの圧縮品質( 0〜1.0 )
0.0 ; スムージング( 0〜1.0 )
1 ; 最適化(0/1)
0 ; プログレッシブ(0/1)
"" ; コメント
3 ; サブサンプリング(0[最小],3, 1[4:2:2],2[1:1:1(最高品位)])
1 ; 強制的にbaseline jpegを生成する(0/1)
0 ; リスタートマーカー(0[しない],列数)
2 ; DCT( 0[高精度整数演算], 1[整数演算], 2[浮動小数点演算] )(?)
)
(gimp-image-delete sImage)
)
; 元の画像の dirty count を0に戻す
; (汚れゼロ→直後に閉じるときには「保存するか」と聞く必要はない )
(gimp-image-clean-all theImage)
; (gimp-image-undo-group-end theImage)
(gimp-displays-flush)
)
(script-fu-register
"script-fu-save-as-90" ; 名前とfunction名は揃える。
"<Image>/Filters/Myscripts/save-as-90" ; メニュー登録位置
"description"
"name"
"copyright"
"date"
"RGB*"
SF-IMAGE "Image" 0
SF-DRAWABLE "Drawable" 0
)
gimpのバージョンでインストール内容が変わるので pkg-configのサーチパスに /usr/local/... を追加しておくこと。
irfan viewみたいなのと、VIXみたいなのが欲しいところ。 あと、画像加工の軽いやつ。Gimpまで使わなくてもいいよなー、という時のための。
サムネイルで画像ファイルを一覧します。サムネイルの生成にちょっと時間がかかりますが、任意の画像viewer・画像加工アプリを設定できます。
予め,gdk-pixbuf(0.8以上)を入れておく必要があります。
画像編集にはgimpを使うように指定しているのですが、複数の画像を編集させようとすると、前から順番に読み込ませようとします。
すると、結果的には後ろのファイルが手前のウィンドウになって、手前からの並びとしては逆順になってしまいます。
なので、gimpの起動スクリプトを書いて、逆順にファイル名を渡すようにしました。
ところが、gimpの複数読み込みには怪現象(笑)が!(タブン仕様ダトオモイマスケド..) どんな動作をするかは、スクリプトを見てみてください。
#!/usr/bin/perl
#
@files=@ARGV;
# gimpが起動しているかチェックする
open(IN, 'ps ax |');
$ex = 1;
foreach $psg ( ){
if( $psg =~/[\/ ]gimp\s/ ){
$ex = 0;
last;
}
}
close(IN);
if( $ex >0 ){
# gimpが起動していない時はファイルを逆順にする
@files = reverse( @files );
# あと、トーンカーブの掃除
$ret = `~/bin/gimp-strip-curves.pl`;
}else{
# gimpが起動している時には最後のファイルを先頭にする
$e = pop(@files);
unshift(@files, $e);
}
system( "gimp @files" );
軽量画像viewer。ファイルセレクタ・ファイラーの機能は持っていないので、danpeiと組み合わせて使ってます。
./configure で boostが無いというエラーになりました。サーチパスが届いていないようだったので、リンクを貼りました。
# cd /usr/inclueこれで ./configureは通ったのですが、makeの途中で、pdf-parser.cppのコンパイルで大量の警告を食らってエラーになりました。
これはパッチを当てる必要があるらしい。[→参考]
パッチはinkscape-0.46-poppler-0.8.3.patchというもの。 debianのサイトからそれらしいものを探してきました。
パッチを当てます。
$ cd inkscape-0.46/srcビルドしてみます
$ ./cofigureこれでできました。