省型旧形国電の残影を求めて

戦前型旧形国電および鉄道と変褪色フィルム写真を中心とした写真補正編集の話題を扱います。他のサイトでは得られない、筆者独自開発の写真補正ツールや補正技法についても情報提供しています。写真補正技法への質問はコメント欄へどうぞ

GIMP3 / Python プログラミング試行錯誤日誌: image オブジェクトのファイル・パス名を取得する

 これ、自分で前に image オブジェクトのファイル名やファイルのパス名を取得したコードを書いていたのに、どうしたか忘れたので、備忘録として記録します。

 実は、Gimp のレファレンスマニュアルを見て、Gimp.Image の項目を見ても、ファイルのパス名を直接取得するようなメソッドが書かれていません。

  結局、Gimp.Image.get_file() メソッドで、ファイルを取得して、さらに、Gio.File.get_path() メソッドで取得するのでした。Gio.File は、Gtk+ 内でファイルを扱うクラスです。具体的には例えば以下のようなコードを書きます。

 

        filePathName = image.get_file().get_path()

 

 このとき、上の image  はデフォルトの Gimp.Image クラスのインスタンス名です。こうすると、仮に、画像がピクチャディレクトリにあるとすれば、filePathName には、例えば、以下のようなパス名が取得されます。

/home/username/Pictures/test.xcf

C:\Users\username\Pictures\test.xcf

ここから、個別のファイル名などを切り出すには Python の os.path ライブラリにあるメソッドを使います。

ファイル名の切り出し

basename = os.path.basename(filePathName)

basename  >  text.xcf

ファイルの属するパス名の切り出し

dirname = os.path.dirname(filePathName)

dirname  >  /home/username/Pictures/

 

パス名とファイル名の切り出し

dirname, filename = os.path.split(filePathName)

dirname  >  /home/username/Pictures/

filename  >  test.xcf

 

ファイル (のパス) 名と拡張子の切り出し

pathname, extname = os.path.splitext(filePathName)

pathname  >  /home/username/Pictures/test

extname  >  .xcf

 

pathname, extname = os.path.splitext("test.xcf")

pathname  >  test

extname  >  .xcf