ImageMagick の沿革
私は自分の命と、それを愛する気持ちにかけて誓う。決して他人のために生きはしないし、他人に私のために生きてくれと求めもしない。 -- アイン・ランド『肩をすくめるアトラス』のジョン・ゴールト
ImageMagick は、DuPont の上司だった David Pensak 博士からの、同時に 256 色しか表示できないモニターでコンピューター生成画像を表示したいという依頼から始まりました。
1987 年当時、24 ビットのトゥルーカラー画像を表示できるモニターは珍しく、かなり高価でした。DuPont には化学者や生物学者が大勢いましたが、相談できるコンピューター科学者はごくわずかでした。そこで私は Usenet に助けを求め、24 ビット画像を 256 色に減らすアルゴリズムを求める投稿をしました。USC 情報科学研究所の Paul Raveling が、解決策だけでなく、すでにソースコードになっていて USC の FTP サイトから入手できるものまで提供してくれました。その後数年にわたり、DuPont での仕事中に遭遇した他の厄介なコンピューター科学の問題でも、頻繁に助けを得る機会がありました。やがて私は、Usenet の博識な人々から受けた助けに感謝したいという気持ちに駆られました。自分の努力から他の人も恩恵を受けられるよう、開発した画像処理ツールを世界に無償で公開することにしました。
1990 年当時、無償で入手できる画像処理ツールはほとんどなかったので、私は熱烈な歓迎を期待していました。リリースが可能になる前に、Pensak 博士は DuPont の上層部を説得し、彼らが貴重な知的財産と見なすかもしれないものを手放すことに同意してもらう必要がありました。ImageMagick が化学的・生物学的なものではなかったため、彼らが会社にとっての価値を理解しなかったことで、単純に同意したのではないかと思います。いずれにせよ、DuPont が著作権を ImageMagick Studio LLC に移転しなければ、ImageMagick は今日存在しなかったでしょう。ImageMagick は 1990 年 8 月 1 日に Usenet の comp.archives グループに投稿されました。
ImageMagick のリリース後、機能拡張の依頼、バグの報告、ソースベースへの貢献を時折受けました。90 年代半ば、これらの努力の集大成を ImageMagick 4.2.9 としてリリースしました。当時、私は ImageMagick が完成したと思っていました。世界中の数千人のユーザーに利用され、「Linux」という無償配布される新しいオペレーティングシステムの一部としても登場するようになっていました。
次世代の ImageMagick バージョン 5 は、Bob Friesenhahn が私に連絡し、ユーザーが他の言語やスクリプトから画像処理アルゴリズムを利用できるようアプリケーションプログラミングインターフェースの改善を提案したことから始まりました。Bob は ImageMagick の C++ ラッパー Magick++ も書き、モジュールローダー機能、自動ファイル識別、テストスイートなどの拡張を貢献し始めました。その間にプロジェクトは他にも注目すべき貢献者を得ました: Glenn Randers-Pehrson、William Radcliffe、Leonard Rosenthol です。この頃には ImageMagick は数万人のユーザーに利用され、新しいリリースが既存の API 呼び出しやスクリプトを壊すと、彼らは不機嫌に反応しました。グループの他のメンバーは API とコマンドラインを凍結したがりましたが、私は ImageMagick がまだ思い描いていたものになっていないと感じていました。私が ImageMagick の開発を続ける一方、Bob らは ImageMagick のフォークを作りました。
私が一人で作業したのは長くは続きませんでした。Anthony Thyssen が ImageMagick コマンドラインプログラムの欠点について連絡してきました。彼は、複数の画像を扱う際にコマンドラインが分かりにくいと指摘しました。彼はコマンドラインを扱うための整然とした明確な方法を提案し、これが ImageMagick バージョン 6 になりました。彼の努力は、彼の Web ページ Examples of ImageMagick Usage に詳しく記されています。彼のサイトをじっくり読むことを強くおすすめします。彼は、私でさえ可能とは知らなかった方法で ImageMagick の力を示してくれました。
もう一人の注目すべき貢献者 Fred Weinhaus は、幾何変換・ブラー・シャープ・エッジ処理・ノイズ除去・色操作を行う多数のコマンドラインスクリプトを公開しています。Glenn Randers-Pehrson は私たちの PNG の達人で、他にも貴重な貢献をしています。Dirk Lemstra は ImageMagick を Windows でより堅牢にするための数多くの改善を行い、今も続けており、.NET ラッパー Magick.NET を配布しています。
ImageMagick の設計は進化のプロセスであり、設計と実装の努力が互いに影響し合い、さらなる進歩を導きます。バージョン 7 では、バージョン 6 の実装から学んだ教訓に基づいて設計を改善しました。ImageMagick は当初、X Windows サーバーに RGB 画像を表示するよう設計されていました。時とともに、RGBA 画像、そして CMYK・CMYKA 画像形式へとサポートを拡張しました。バージョン 7 では、任意のピクセルチャンネル数を持つ任意の色空間へとサポートを拡張しました。さらに、ImageMagick 7 はピクセルチャンネルを浮動小数点として格納し、帯域外の値(負の値など)を許可し、丸め誤差を減らします。
Cristy
ImageMagick 主任アーキテクト