mieki256's diary



2022/08/11(木) [n年前の日記]

#1 [gimp] GIMP 2.10で利用できるフォントフォーマットが減っていた

Windows10 x64 21H2 + GIMP 2.10.32 x64 Portable samj版を使っていて、いくつかのフォントが使えなくなっていることに気づいた。フォント名は選べるのだけど、フォントの形状が反映されない…。

gimp_font_ss01.png


問題を起こすフォントは、Type1フォント (.pfb) 群。GIMP 2.4 や 2.6 時代に追加フォントとして配布されていた多数の個性的なフォント達。

_GIMP Type1フリーフォント一覧


GIMP 2.8.22 Portable を起動して確認してみたところ、そちらはちゃんとフォントの形状が反映される。

gimp_font_ss02.png


samj版の問題だろうかと、PortableApps版の GIMP 2.10.32 Portable をインストールして確認してみたものの、そちらもフォントが反映されない。

_GIMP Portable (image editor) | PortableApps.com

gimp_font_ss03.png

どうやら GIMP 2.10.xx は、Type1フォントが利用できなくなった気配がする。

pangoのバージョンが新しくなったせいらしい。 :

色々ググってみたら、GIMP が使っている pango というライブラリが、数年前にType1フォントやビットマップフォントのサポートを打ち切っていたそうで。

_Font Changing - GIMP Chat
_Pango dropped support for Bitmap fonts with version 1.44 (was: Bitmap fonts are broken) (#4411) - Issues - GNOME / GIMP - GitLab
_Pango 1.44 and the removal of support for bitmap fonts (#386) - Issues - GNOME / pango - GitLab

最近の GIMP 2.10 は、その新しくなった pango を使うようになったので、Type1フォントやビットマップフォントが使えなくなったのだろう…。

数年前からそういう不具合というか、機能のダウングレードが起きてたのに、自分、今頃になって気づくとは…。

使えるバージョンを探してみた。 :

GIMP 2.10 は、必ず Type1フォント(.pfb)やビットマップフォントが使えない…というわけでもなく。ある時期までは使えていたらしい。

どのバージョンなら使えるのか、PortableApps の GIMP 2.10.xx Portable版を片っ端からインストールして調べてみた。Portable版は異なるバージョンも共存できるから、こういう動作確認もできるのでありがたい。

_PortableApps.com - Browse /GIMP Portable at SourceForge.net

  • GIMPPortable_2.10.12-3.paf.exe : Pass
  • GIMPPortable_2.10.14-1.paf.exe : Pass
  • GIMPPortable_2.10.18-2.paf.exe : Pass
  • GIMPPortable_2.10.20-1.paf.exe : Pass
  • GIMPPortable_2.10.22_Rev_2.paf.exe : Fail

つまり、GIMP Portable版の場合…。
  • GIMP 2.10.20-1 Portable までは、Type1フォントやビットマップフォントも使える。
  • GIMP 2.10.22 Rev2 Portable から、Type1フォントやビットマップフォントが使えなくなった。

今後サポートが復活する可能性は、望み薄だろうな…。

とりあえず、Type1フォントが使える最終版、GIMP 2.10.20-1 Portable をインストールして、フォントを使った画像を作成したい時はソレを利用することにしよう…。

いやまあ、自分の環境には GIMP 2.8.22 Portable もインストール済みなので、そちらを使う手もあるけれど。GIMP 2.8 は起動がとんでもなく遅いので…。自分の環境だと起動するまで数分かかる…。HDDからSSDに移しても起動時間の遅さは変わらなかった…。

pfbをttfに変換できないものか。 :

Type1フォント(pfbフォント)を、ttfフォントに変換できないものだろうか。それができれば、GIMP 2.10.22以降も従来のフォントが利用できるのだろうけど…。いやまあ、フォントのライセンス的にその変換は許されるのでしょうかという疑問もあるのだけど。

ライセンスの問題はともかくとして、FontForge あたりで変換できないものかな。

余談。 :

ググってたら以下のページに遭遇。

_DTPの2023年問題、知ってますか? 終末の日が近いType 1フォントの“遺産”にどう対応すべきか(1/3 ページ) - ITmedia NEWS

Adobe のせいか…。Flash もそうだけど、Adobe が何かを決めると皆で右往左往しちゃうな…。

2022/08/12追記。 :

Linu Mint 19.3上では、GIMP 2.10.18 の時点でType1フォントが使えなくなっているという話を見かけた。

_Removing fonts from GIMP 2.10.18 - Linux Mint Forums

Ubuntu 20.04 + GIMP 2.10.30 では /usr/share/fonts/type1/urw-base35/ 内の Type1フォントが全滅という話も。ただ、AppImage版の GIMP 2.10.14 はType1フォントが使えているらしい。

_Broken fonts after Ubuntu upgrade to 20.04
_PFB fonts are broken in certain applications and missing in others (Kubuntu 20.04) - Ask Ubuntu

Windows版、Linux版、Portable版等々でサポート状況は違ってるようで…。このバージョンなら大丈夫というわけでもないっぽい…。

#2 [gimp] GIMP 2.10 Portable は Python-Fu が使えなかった

GIMP 2.10.32 Portable は Type1フォント(.pfb) やビットマップフォントが使えなくなっていたので、そのあたりのフォントが利用できる GIMP 2.10.20-1 Portable (GIMPPortable_2.10.20-1.paf.exe) を Windows10 x64 21H2上でインストールしたのだけど。

_PortableApps.com - Browse /GIMP Portable at SourceForge.net

少し触っていたら、GIMP 2.10.20-1 Portable は Python-Fu が動かないことに気が付いた…。

原因。 :

原因を調べたら、pygimp.interp の記述がおかしかった。
(Gimp-Portableインストールフォルダ)\App\gimp\lib\gimp\2.0\interpreters\pygimp.interp
  • GIMP 2.10 は GIMP 2.8 とフォルダ構成が変わっているのに、pygimp.interp 内では GIMP 2.8 時代のフォルダ構成が指定されている。それでは動くわけがない。
  • 加えて、改行コードをLFにしておかないといけないのに、CRLF になってる。それでは GIMPが pygimp.interp の解析時に失敗してしまう。

やっかいなのは、この pygimp.interp、毎回GIMPの起動時に、GIMPPortable.ini 内の指定により上書きされてしまうこと。

パス指定だけ間違っているなら、GIMPPortable.ini 内のパス指定を修正すれば済むのだけど…。改行コードを LF で上書きしてほしいのに CRLF にされてしまうので、GIMPPortable.ini の修正だけでは対応できない。

対策。 :

そんなわけで、まずは GIMPPortable.ini を修正。関連してる行をコメントアウトして、pygimp.interp の上書きをさせないようにする。

(Gimp-Portableインストールフォルダ)\App\AppInfo\Launcher\GIMPPortable.ini

「pygimp」で検索して、関連がありそうな行の先頭に「; 」をつけてコメントアウト。
; [FileWrite15]
; Type=ConfigWrite
; File=%PAL:AppDir%\gimp\lib\gimp\2.0\interpreters\pygimp.interp
; Entry=python=
; Value=%PAL:AppDir%\gimp\Python\pythonw.exe
;
; [FileWrite16]
; Type=ConfigWrite
; File=%PAL:AppDir%\gimp\lib\gimp\2.0\interpreters\pygimp.interp
; Entry=/usr/bin/python=
; Value=%PAL:AppDir%\gimp\Python\pythonw.exe
;
; [FileWrite17]
; Type=ConfigWrite
; File=%PAL:AppDir%\gimp\lib\gimp\2.0\interpreters\pygimp.interp
; Entry=:Python:E::py:
; Value=:python:

次に、pygimp.interp を修正。
(Gimp-Portableインストールフォルダ)\App\gimp\lib\gimp\2.0\interpreters\pygimp.interp

例えば、GIMP 2.10.20-1 Portable のインストールフォルダが D:\GIMP_INSTALL_DIR\なら、pygimp.interp の内容は以下になる。
python=D:\GIMP_INSTALL_DIR\App\gimp\bin\pythonw.exe
python2=D:\GIMP_INSTALL_DIR\App\gimp\bin\pythonw.exe
/usr/bin/python=D:\GIMP_INSTALL_DIR\App\gimp\bin\pythonw.exe
/usr/bin/python2=D:\GIMP_INSTALL_DIR\App\gimp\bin\pythonw.exe
:Python:E::py::\GIMP_INSTALL_DIR\App\gimp\bin\pythonw.exe:

また、改行コードは LF にしておくこと。デフォルト状態では CRLF になっていて、ファイル内容の解析時に問題が起きる。

修正が終わったら、GIMPインストールフォルダでDOS窓を開いて、以下を打って GIMP Portable を起動。GIMP起動時の情報が別のDOS窓で表示される。
GIMPPortable.exe --verbose --console-messages

最初のほう、pygimp.interp を読み込んだあたりで「警告」等のメッセージが出ていなければ、修正は上手く行ってる。

Python-Fuコンソールが動作しない問題。 :

上記の修正をすることで、Python-Fuスクリプト群は動作して、メニューにも出てくるようになったけれど。相変わらず、Python-Fuコンソールが ―― フィルタ → Python-Fu → コンソール、がエラーを出して起動しない。

以下のファイルを修正する。
(GIMP Portableインストールフォルダ)\App\gimp\lib\gimp\2.0\plug-ins\python-console\python-console.py

最初の行のシバン行(shebang、#! から始まる行のこと)が「#!/usr/bin/env python2」になってるのがよろしくないのだろう。*NIXならともかく、Windowsに /usr/bin/env というプログラムなんて存在しないので、エラーになるのではなかろうか。

なので、「#!/usr/bin/python2」もしくは「#!/usr/bin/python」に書き換えてやれば、pygimp.interp に記述した「/usr/bin/python2=」「/usr/bin/python=」の指定が反映されて動いてくれると思う。たぶん。少なくとも自分の手元の環境では、こういった修正で、Python-Fuコンソールが動いてくれた。

関連情報。 :

_2018/08/10 - GIMP 2.10.4 Portable をインストール
_2018/08/11 - GIMP 2.10.4 Portable の pygimp.interp がおかしい

GIMP 2.10.4 Portable の頃の不具合が、GIMP 2.10.20 Portable になっても修正されてなかったということだろうけど…。これひょっとして、「誰も消防車を呼んでいないのである!」案件だったりするのだろうか…。もっとも、そもそもどこに連絡すればいいのかも分からんのだけど。さすがに最新版は直ってるのだろうか。どうなんだろ。

以上、1 日分です。

過去ログ表示

Prev - 2022/08 - Next
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project