2026/03/18(水) [n年前の日記]
#1 [cg_tools] 某画像編集ソフトを試用中
とある画像編集ソフト? お絵かきソフト? を試用中。Windows上で動作して、無料で利用できるフリーソフト。
ソフト名は…ちょっと書けない。ソレ書いちゃうとたぶん面倒臭いことになりそうなので…。Windows95/98時代から公開されていて、機能は豊富だけど操作感やUIにかなりクセがあると定評のソフト。この手のソフトに詳しいインターネット老人なら「ああ、アレかあ。いや、それともあっちか?」と分かるかも。あっちよりユーザ数が少なかったのではないかと思えるほうです。解説ドキュメント内で「使いこなせない/理解できないお前が悪い」と隙あらばとにかくdisってくるほう。「じゃあアレかあ」。そうそう、ソレソレ。…ドキュメントを眺めてる人ってそのソフトにせっかく興味を持ってくれたありがたい人達なはずなんだけど、なんでいきなり喧嘩を吹っ掛け始めるのかさっぱり分からない…。 _店の暖簾をくぐったばかりの客にいきなり「帰れ!」って怒鳴り出す店主 っぽいよな…。
それはともかく、別件でググってたら件のソフトは Delphi で実装されてるという情報を目にして興味が湧いたわけで…。先日まで Delphi や Lazarus を触ってたから、Delphi/Lazarusで画像編集ソフトを作るとしたら一体どの程度のものが作れるのかちょっと気になっていて。そのあたりを把握できるかもしれないなと…。
ソフト名は…ちょっと書けない。ソレ書いちゃうとたぶん面倒臭いことになりそうなので…。Windows95/98時代から公開されていて、機能は豊富だけど操作感やUIにかなりクセがあると定評のソフト。この手のソフトに詳しいインターネット老人なら「ああ、アレかあ。いや、それともあっちか?」と分かるかも。あっちよりユーザ数が少なかったのではないかと思えるほうです。解説ドキュメント内で「使いこなせない/理解できないお前が悪い」と隙あらばとにかくdisってくるほう。「じゃあアレかあ」。そうそう、ソレソレ。…ドキュメントを眺めてる人ってそのソフトにせっかく興味を持ってくれたありがたい人達なはずなんだけど、なんでいきなり喧嘩を吹っ掛け始めるのかさっぱり分からない…。 _店の暖簾をくぐったばかりの客にいきなり「帰れ!」って怒鳴り出す店主 っぽいよな…。
それはともかく、別件でググってたら件のソフトは Delphi で実装されてるという情報を目にして興味が湧いたわけで…。先日まで Delphi や Lazarus を触ってたから、Delphi/Lazarusで画像編集ソフトを作るとしたら一体どの程度のものが作れるのかちょっと気になっていて。そのあたりを把握できるかもしれないなと…。
◎ 感想 :
思考メモ。感想には個人差があります。それと、Delphi/Lazarus はあまり詳しくないのでたぶん頓珍漢なこと書いてると思います。
少し触ってみた印象だけど…。「頑張れば Delphi でここまでのものを作れてしまうのか」と素直に感心すると同時に、「ひょっとして Delphi で作るとこんな惨状(?)になってしまいがちなのだろうか?」という不安も湧いてきたというか…。
仮に Delphi/Lazarus で画像編集ソフトを作ろうとする場合、懸念事項として2点あるかなと…。
懸念その1。Delphi にGC(ガベージコレクション)が無いこと。
Delphi の元になった Pascal というプログラミング言語は、C言語より古い言語なので、C/C++と同様にGCが無くて…。GCはメモリ解放を自動でイイ感じにやってくれる機能なので、それが無いとなると、プログラマーは意識してメモリ解放を逐一指示しないといけない。だけど人間がやることだからついうっかり忘れてしまうことがちょくちょくあって、そのうっかりがソフトの動作を不安定にしている可能性はないのかなあ、どうなのかなあ、と…。
というのも。件のソフト、ちょっと触っただけでも数回ほど無言で落ちてしまって…。まだ基本操作しかしてないはずなのに落ちるのは萎える…。お前は Project Dogwaffle か!。なんちてぽっくん。 *1 また、何かの拍子に描画ツールが正常動作しなくなったり、説明のためのポップアップが出てこない状態に陥って、終了/再起動しないと元に戻らなかったりして…。
この不安定さは Delphi で作ったせいなのか、GC が無いとこういう出来になっちゃうのかなと…。いやまあ、そんなこと言ったら C/C++ で作ったアプリだって同じ問題抱えるじゃんよって話になるけれど。こういうのって、処理の速さと、バグが混入しやすくなることのトレードオフだったりするんかな…。もっとも今は C/C++ 並みに速いけどGCも持ってる言語が色々あるのでそっちを選んだほうがいいのかも。
懸念その2。UIの機能面について実装の難しさがありそう。
例えば、Lazarus/Free Pascal で作られた _LazPaint という画像編集ソフトがあるのだけど。これも今回試用したソフトと似た感じの…UIの奇妙さ?を感じるというか…。ちょっと言語化して上手く説明できないのだけど、見た目からしてなんだか妙な感じが…。なんだろうな、これは…。ツールバー回りの見た目がギクシャクしてるというか…。上手く説明できない…。それと、UIレイアウトをユーザがほとんどカスタマイズできない点も気になる…。
Delphi なら VCL、Lazarus なら LCL という、GUIアプリを作るためのライブラリが用意されているのだけど。この VCL/LCL はOSのAPIのラッパーのような感じらしくて、基本的なGUI部品ならすんなり出せるし、OSが持ってる機能を呼び出してるだけだから実行バイナリのファイルサイズも小さくなる利点があって…。ただ、OSが持ってる基本機能で済む場合はそれで十分だけど、それ以上のことをしようとすると…どうなんだろうなと…。これは勝手な想像だけど、今風のGUIアプリを作ろうとするとおそらく機能が足りなくて、そこは自前で実装することになってギクシャクした感じになるのかなと…。
例えば GIMP はシングルウインドウモード時に各ウインドウの配置をユーザが好きなように変えられるのだけど、あのあたりはおそらく GTK が担当してたりするんかなと。違うのかな…。他の画像編集ソフト/お絵かきソフトでもそういったことができるけど、そういった部分は Qt とかそういうアレが担当してたりするのでは、と…。
Paint.NET は C# + .NET Framework で作られているらしいけど、あの見た目も .NET Framework ならでは、だったりするんかな…。Windows API だけでは足りてない部分を .NET Framework が補ってるんじゃないのか…。
そう考えると、Delphi/Lazarus でその手のソフトを作ろうとすると、今風のGUIアプリならできて当然のことができなくなったり…するんかなあ…。どうなのかなあ。どうなんでしょうねえ…。
いやまあ、どの機能も頑張れば自前で実装できるのだろうけど。そもそも昔は Qt とか .NET Framework とか無かったわけで、UI面で機能追加するには全部自前でやるしかなかったはずで。GTK だって GIMP を作るために自前で作っていた部分を「コレって他でも使えそうだよな」と別に分けたソレなので。GIMP Toolkit の略称で GTK なので。だから頑張れば作れるはず。頑張れば。
ただ、今から作るなら、既に用意されてるアレコレを積極的に利用させてもらったほうがいいよなと…。そういったGUIライブラリ/フレームワークって色んなソフトで使ってるから、バグ報告もちゃんと上がってくるし、パッチも当たる可能性が高いしで、自分で実装するより信頼性ははるかに高いはず。
おそらく、Delphi/Lazarus にも、既にそういうライブラリだかフレームワークだかがありそうな気もする…。よく調べてないけど、Delphi の FMX(FireMonkey)って本来そのあたりもカバーするはずだったのかな、とも。
もっとも、今から画像編集ソフト/お絵かきソフトを作る意味って無いだろうな…。
そもそも、お絵かきするならクリスタ(CLIP STUDIO PAINT)を使うべきだよな…。圧倒的なユーザ数だし、解説記事も山のようにあるし。しかもそのユーザ達がせっせとペンやブラシやモデルデータや各種素材を作ってアップロードして、コミュニティ全体で作業の効率化がどんどん進んでる。「みんなで幸せになろうよ」的感覚を味わえるCGソフトのような気もしてきた。
いやまあ、画像生成AIの台頭もあって、今後自分で絵を描く人が減ってしまうのではという懸念もあるけれど…。となるとますます、画像編集ソフトを新規に作る意味なんて無くなっていくよなあ…。
ただ、このコンポーネントをフォームに貼り付けるだけで画像の拡大縮小表示やスクロールができるよ、みたいなものは欲しい気も…。レイヤーも重ねて表示出来たりすると嬉しい。とか妄想するとそれって画像編集ソフト作るのと変わらないじゃんってことになりそうだけど。ちょっとした実験をする時に、そういうのが欲しくなるというか…。
感想には個人差があります。思考メモです。オチは無いです。
少し触ってみた印象だけど…。「頑張れば Delphi でここまでのものを作れてしまうのか」と素直に感心すると同時に、「ひょっとして Delphi で作るとこんな惨状(?)になってしまいがちなのだろうか?」という不安も湧いてきたというか…。
仮に Delphi/Lazarus で画像編集ソフトを作ろうとする場合、懸念事項として2点あるかなと…。
懸念その1。Delphi にGC(ガベージコレクション)が無いこと。
Delphi の元になった Pascal というプログラミング言語は、C言語より古い言語なので、C/C++と同様にGCが無くて…。GCはメモリ解放を自動でイイ感じにやってくれる機能なので、それが無いとなると、プログラマーは意識してメモリ解放を逐一指示しないといけない。だけど人間がやることだからついうっかり忘れてしまうことがちょくちょくあって、そのうっかりがソフトの動作を不安定にしている可能性はないのかなあ、どうなのかなあ、と…。
というのも。件のソフト、ちょっと触っただけでも数回ほど無言で落ちてしまって…。まだ基本操作しかしてないはずなのに落ちるのは萎える…。お前は Project Dogwaffle か!。なんちてぽっくん。 *1 また、何かの拍子に描画ツールが正常動作しなくなったり、説明のためのポップアップが出てこない状態に陥って、終了/再起動しないと元に戻らなかったりして…。
この不安定さは Delphi で作ったせいなのか、GC が無いとこういう出来になっちゃうのかなと…。いやまあ、そんなこと言ったら C/C++ で作ったアプリだって同じ問題抱えるじゃんよって話になるけれど。こういうのって、処理の速さと、バグが混入しやすくなることのトレードオフだったりするんかな…。もっとも今は C/C++ 並みに速いけどGCも持ってる言語が色々あるのでそっちを選んだほうがいいのかも。
懸念その2。UIの機能面について実装の難しさがありそう。
例えば、Lazarus/Free Pascal で作られた _LazPaint という画像編集ソフトがあるのだけど。これも今回試用したソフトと似た感じの…UIの奇妙さ?を感じるというか…。ちょっと言語化して上手く説明できないのだけど、見た目からしてなんだか妙な感じが…。なんだろうな、これは…。ツールバー回りの見た目がギクシャクしてるというか…。上手く説明できない…。それと、UIレイアウトをユーザがほとんどカスタマイズできない点も気になる…。
Delphi なら VCL、Lazarus なら LCL という、GUIアプリを作るためのライブラリが用意されているのだけど。この VCL/LCL はOSのAPIのラッパーのような感じらしくて、基本的なGUI部品ならすんなり出せるし、OSが持ってる機能を呼び出してるだけだから実行バイナリのファイルサイズも小さくなる利点があって…。ただ、OSが持ってる基本機能で済む場合はそれで十分だけど、それ以上のことをしようとすると…どうなんだろうなと…。これは勝手な想像だけど、今風のGUIアプリを作ろうとするとおそらく機能が足りなくて、そこは自前で実装することになってギクシャクした感じになるのかなと…。
例えば GIMP はシングルウインドウモード時に各ウインドウの配置をユーザが好きなように変えられるのだけど、あのあたりはおそらく GTK が担当してたりするんかなと。違うのかな…。他の画像編集ソフト/お絵かきソフトでもそういったことができるけど、そういった部分は Qt とかそういうアレが担当してたりするのでは、と…。
Paint.NET は C# + .NET Framework で作られているらしいけど、あの見た目も .NET Framework ならでは、だったりするんかな…。Windows API だけでは足りてない部分を .NET Framework が補ってるんじゃないのか…。
そう考えると、Delphi/Lazarus でその手のソフトを作ろうとすると、今風のGUIアプリならできて当然のことができなくなったり…するんかなあ…。どうなのかなあ。どうなんでしょうねえ…。
いやまあ、どの機能も頑張れば自前で実装できるのだろうけど。そもそも昔は Qt とか .NET Framework とか無かったわけで、UI面で機能追加するには全部自前でやるしかなかったはずで。GTK だって GIMP を作るために自前で作っていた部分を「コレって他でも使えそうだよな」と別に分けたソレなので。GIMP Toolkit の略称で GTK なので。だから頑張れば作れるはず。頑張れば。
ただ、今から作るなら、既に用意されてるアレコレを積極的に利用させてもらったほうがいいよなと…。そういったGUIライブラリ/フレームワークって色んなソフトで使ってるから、バグ報告もちゃんと上がってくるし、パッチも当たる可能性が高いしで、自分で実装するより信頼性ははるかに高いはず。
おそらく、Delphi/Lazarus にも、既にそういうライブラリだかフレームワークだかがありそうな気もする…。よく調べてないけど、Delphi の FMX(FireMonkey)って本来そのあたりもカバーするはずだったのかな、とも。
もっとも、今から画像編集ソフト/お絵かきソフトを作る意味って無いだろうな…。
- FireAlpaca や Krita を触ると「これでいいじゃん」って気分になるし。
- GIMP だって昔と違って安定して動いてるし。
- Webブラウザ上で動いてしまう画像編集ソフトすら存在する時代だし。
- 元々有償ソフトだったはずの Affinity Studio 3.0 も無償で利用できることになったし。
そもそも、お絵かきするならクリスタ(CLIP STUDIO PAINT)を使うべきだよな…。圧倒的なユーザ数だし、解説記事も山のようにあるし。しかもそのユーザ達がせっせとペンやブラシやモデルデータや各種素材を作ってアップロードして、コミュニティ全体で作業の効率化がどんどん進んでる。「みんなで幸せになろうよ」的感覚を味わえるCGソフトのような気もしてきた。
いやまあ、画像生成AIの台頭もあって、今後自分で絵を描く人が減ってしまうのではという懸念もあるけれど…。となるとますます、画像編集ソフトを新規に作る意味なんて無くなっていくよなあ…。
ただ、このコンポーネントをフォームに貼り付けるだけで画像の拡大縮小表示やスクロールができるよ、みたいなものは欲しい気も…。レイヤーも重ねて表示出来たりすると嬉しい。とか妄想するとそれって画像編集ソフト作るのと変わらないじゃんってことになりそうだけど。ちょっとした実験をする時に、そういうのが欲しくなるというか…。
感想には個人差があります。思考メモです。オチは無いです。
*1: 海外製の Project Dogwaffle という画像編集ソフトはパレットウインドウ上で色を選択しただけで落ちるので…。一応、設定で少し症状を緩和できる。
[ ツッコむ ]
以上、1 日分です。