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

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

GIMP3

レイヤーマスク複写プラグイン - GIMP3を便利に! プロジェクト

今回の「GIMP3を便利に!」プロジェクトしては、あるレイヤーのマスクを他のレイヤーに貼り付けるマスクです。マニュアルでやろうとすると、貼り付け先のレイヤーにマスクを掛けて、貼り付け元のマスクを指定して、貼り付け先のレイヤーに移動して、マスクに…

GIMP アップスケールプラグインが GIMP 3.x 対応へ

先日、GIMP 2.10 用の低解像度の画像を高解像度にアップスケールするプラグインがあると報告しました。 yasuo-ssi.hatenablog.com それを報告した直後、2週間前に、GIMP 3.x にも対応するようにバージョンアップされていました。ダウンロードは以下から。 gi…

GIMP3 プラグイン: パラメータ指定輝度マスク

先日、相対 RGB 色マスク作成プラグインを公開しましたが、そもそも GIMP にはパラメータで指定するマスクを作る機能があまりないということに気づきました。そこで、darktable にあるようなパラメータ指定輝度マスク作成プラグインを作成してみました。 こ…

GIMP3 プラグイン版 相対 RGB 色マスク作成ツール Ver. 0.3 アップデート

皆様お盆休みはいかがお過ごしでしょうか? ところで、6月に、相対 RGB 色マスク作成ツール GIMP3 プラグイン版 Ver. 0.2を公開しました。すでに述べたように、GIMP3 では非破壊編集の実装が不十分なため、非破壊編集を使わずにプログラミングを行いましたが…

GIMP3 対応プラグイン: シグモイド・カーブ

新たに、写真補正のための、GIMP3 用 Python プラグインを作成しました。 GIMP ではトーンカーブを使って手動画像のコントラストを調整できます。ただこの調整を、手動ではなくパラメーターを使って調整しようとすると、レベル補正からガンマ補正を掛けるし…

GIMP3 / Python サンプルプログラム: UI 上で cairo を使ってグラフを描く

このサンプルプログラムは UI 上で与えたパラメータに応じて、UI (ダイアログ) 上にグラフを書くものです。cairo という2次元のベクトル画像を描く Gtk のライブラリを使っています。 サンプルプログラムのダウンロードはこちらから。 このサンプルプログラ…

GIMP3 / Python サンプルプログラム: 対話型 (インターアクティブ) スライダー

GIMP3 の Python UI プログラミング サンプルファイルの第3弾です。今回はスライダーですが、単なるスライダーではありません。インターアクティブ (対話型、相互作用型) に動くスライダーで、ちょっと高度です。 インターアクティブとは、UI を動かすとその…

GIMP3 / Python プログラミング試行錯誤日誌: Python でピクセル値を計算する際の色空間に関する注意点

今回は GIMP3 上でピクセル値計算処理を行う場合に非常に重要な問題を扱います。 以前に書いたように、GIMP で基本的に計算が行われる色空間はリニア RGB です。 yasuo-ssi.hatenablog.com しかし、UI 上での表示は TRC がかかった知覚的 RGB (sRGB)となって…

不均等黄変ネガ写真補正 GIMP3 編集移行キット アップデート

4月に公開した「不均等黄変ネガ写真補正 GIMP3 編集移行キット」ですが、先日リリースした黄変補正ツール Ver. 5.9a でバグフィックスした GIMP プラグインを入れ替えたバージョンを、Ver. 0.2 としてリリースしました。5.9a をダウンロードした方は、同じで…

GIMP3 / Python サンプルプログラム: 画像計算機

今回GIMP3 / Python プラグインのサンプルプログラムとして、画像計算機 (image arithmetic) を作成してみました。以前書きましたが、GIMP で画像の数値計算を行う場合、基本的には Gimp.Drawable の curves_spline メソッドを使うようです。 yasuo-ssi.hate…

GIMP3 / Python サンプルプログラム: コンボボックス UI

GIMP3 の Python UI プログラミング サンプルファイルの第2弾です。今回はコンボボックスです。テキストボックス風ですが、右端をクリックすると、下に下がった選択肢を表示しその中から選べるようにする UI です。 ダウンロードはこちらから。 このサンプル…

GIMP3 / Python サンプルプログラム: テキストボックス UI

GIMP3 になって Python プログラミングの方法が大きく変わっています。特に、UI の作り方が大幅に変わっており、UI を作る自由度は上がっているのですが、一方で非常に複雑化しています。多分ここで戸惑う方は非常に多いのではないかと思います。 そのためプ…

GIMP3 / Python プログラミング試行錯誤日誌: GIMPにおけるレイヤー操作

今回、相対 RGB 色マスク作成ツール GIMP3 プラグイン版を公開しましたが、非破壊編集が使えないので、その代わりに色々レイヤー操作を行う必要が出てきました。ここで Python を使ったレイヤー操作の基本についてまとめておきたいと思います。 ・何らかの方…

GIMP3 プラグイン版 相対 RGB 色マスク作成ツール Ver. 0.2 アップデート

先日、相対 RGB 色マスク作成ツール GIMP3 プラグイン版を公開しました。 yasuo-ssi.hatenablog.com その際、次のバージョンで、マスクを適用する明度範囲を設定するパラメータを追加すると述べましたが、早速実装しましたので公開します。合わせてマスク反…

GIMP 3.2 に向けた開発版、3.1.2 が公開

GIMP 3.2 に向けた開発版、3.1.2 が公開されました。関心のある方は試してみてバグレポートをしてみてはいかがでしょうか? 思いのほか Ver. 3.2 への歩みが速いです。 www.gimp.org

GIMP3 / Python プログラミング試行錯誤日誌: GIMP上でピクセル値計算をどうやるか?

GIMP プラグイン開発のためプログラムを書いていて、ピクセルの値を操作したい場合があります。そのような場合どうすればよいのでしょうか? まず端的に Gimp.Drawable に set_pixel というメソッドがあります。 -------------------- set_pixel(x_coord, y_…

GIMP3 プラグイン版 相対 RGB 色マスク作成ツール

2021年に ImageJ 用プラグインとして最初のバージョンを開発した相対 RGB 色マスク作成ツールですが、一昨年の年末にこのアイディアを ART 用のプラグインとして盛り込んだのに引き続き、今回 GIMP3 用プラグインとして移植しました。 ART のプラグインはや…

GIMP3 / Python プログラミング Tips: 実行を一時止めるデバッグ用メッセージボックス

GIMP の Python プラグインを開発する際に、プログラムの実行を一時止めるプログラムを考えました。 以下のコードをコピーして、gimp_debug.py という名前で保存します。 -------------- #!/usr/bin/env python3 import gi gi.require_version('Gimp', '3.0'…

GIMP3 / Python プログラミング試行錯誤日誌: レイヤーの順番変更と順番変更後の注意

GIMP のプログラミングにおいて、レイヤーの順番を変更したい場合があります。この場合はどうしたら良いのでしょうか? 今、image という名のイメージオブジェクトがあり、その中に含まれるレイヤーを以下のコマンドで取得したとします。 layers = image.get_…

GIMP3 におけるプラグインのインストール方法

すでに個別記事に書いているところもありますが、ここで、GIMP3 におけるプラグインのインストール方法についてまとめておきます。 インストールの方法ですが次のような手順です。原則として、GIMP3 の個人設定ディレクトリの下の plug-ins ディレクトリに本…

GIMP3 対応 新 UI を採用したチャンネルミキサー - GIMP3を便利に! プロジェクト

以前 ART 用に新しい UI を採用したチャンネルミキサーの CTLスクリプトを公表しました。 yasuo-ssi.hatenablog.com 今回それの GIMP3 用プラグイン版を公開します。 既に以前指摘しましたが、伝統的なチャンネルミキサーは一般のユーザにとって使うのが非常…

GIMP3 / Python プログラミング試行錯誤日誌: gimp:threshold の情報はどこにあるか?

gimp3 で新設された (?)、GIMP 特有の非破壊フィルターの情報に関するドキュメントは一切ないようなので、どうやらそれに関する情報を得るにはソースコードを見るしかないようです。そこで、先日の gimp:threshold のソースコードはどこにあるのかを探してみ…

GIMP3 / Python プログラミング試行錯誤日誌: しきい値ツールを Python 上から非破壊的に適用できるフィルターを探す

GIMP のメニューに [しきい値] というフィルターモジュールがあります。 しきい値モジュール このフィルターは以下にあるように一定の閾値で画像を黒と白に転換するモジュールです。 しきい値モジュールを適用した結果 これを適用すると、以下のレイヤーダイ…

GIMP3 / Python プログラミング Tips: Gegl フィルターブラウザを有効にする

先日 Gegl オペレーションの一覧について記事を書きましたが、GIMP3 の UI 上から Gegl フィルターブラウザを使えるようにすることを教えてもらいました。 このツールは、Kamil Burda さんという方が作成した Batcher というプラグインを導入すると使えるよ…

GIMP を Photoshop 風インターフェースにする PhotoGIMP v. 3

GIMP のユーザーインターフェースを Photoshop 風にする PhotoGIMP の GIMP3 対応版が出ています。 github.com Linux に乗り換えて、Photoshop が使えなくなり、GIMP に乗り換えざるを得ないのに UI が異なって戸惑っている方、あるいは、Adobe のライセンス…

GIMP3 / Python プログラミング試行錯誤日誌: Chat GPT はどこまで GIMP3 プログラミングの助けになるか

Chat GPTなどの生成 AI のプログラミングへの有用性が指摘されています。この手の AI ツール あまり信用していないのですが、しかし、GIMP3 用のプログラミングに苦しむ中で、活用を考えざるを得ません。 使ってみた結果ですが、既存のソースコードを解読す…

GIMP3 / Python プログラミング試行錯誤日誌: Gtk.Dialog を使ってダイアログボックスを作成する

ようやく GIMP3 の Python プログラミングの要領が少しずつ分かってきましたが、今のところ本格的なダイアログボックスの作成についてちゃんと理解できていません。2.10 の gimp-fu 依存時代は、Register 関数で簡単に (ただしあまり凝ったことはできません…

GIMP3 / Python プログラミング Tips: Gegl オペレーションの一覧

先日 Chuck Henrich 氏が作成した GIMP3 用 Python プラグインのコードの解読を試みましたが、その中でガウスぼかしを実行する GEGL フィルターを使っていました。 この GEGL フィルターにはどんなものがあるのか、その一覧は下記に掲載されていました。 geg…

GIMP3 / Python プログラミング試行錯誤日誌: frequency-separation-group-v3 UI コードの解読

ハンガリーの Chuck Henrich 氏による GIMP 用 Python プラグイン: Frequency separation plug-in の GIMP3 版が公開されています。 discuss.pixls.us このプラグインは、元の画像からテクスチャー部分と、カラー & トーン部分を分離してレイヤーグループに…

GIMP3 / Python プログラミング試行錯誤日誌: UI を作る際のチュートリアル & レファレンスサイト

何とか、ある程度 GIMP3 用プラグインを Python で書けるようになりましたが、まだよく分かっていないのが ダイアログなどの UI (GUI) をどの様に作ったら良いのかということです。 一応、Gimp Developers サイトには、C で UI を書く方法は載っているのです…