親指の爪ほどの...

1999.10.7

当ガレージ製品は、親指の爪ほどの大きさのサムネイル画像を作成するのに、相当の努力を重ねてきました。
また、メモリーの少ないマシンやウィンドウズ95のようなレガシーマシンでも動作するように、最新のコンポーネントやOSのサービスを享受せずに、Win32APIを使ってひたすらC言語でコードを書いています。
因みに、私の開発マシンは未だにWindows95(Oentium200MHz/メモリー64MB)です。このレガシーマシンで動作すれば、ほとんどのマシンで動くと思われます。

画質にはちょっとうるさい

自分の審美眼のせいか、とにかく美しくないのは嫌なのです。ウィンドウズAPIのストレッチビルドでは、我慢ならないのです。
画質が良くて速いのが理想ですが、速さと画質を天秤にかけてバランスのよいところで妥協してるつもりです。

「あるばむランチ」バージョン1.1(1999年10月)で当ガレージの画像処理担当のりだー君が縮小処理のスピードを落とさずに、画質を良くしてくれました。(注:アイコンぱくら、Easyサムネイルでも同じ処理を行っています。)
下表でバージョン1.0と1.1以上、お使いのブラウザでのサムネイル表示の比較をしてみました。どうでしょう?親指の爪ほどの小さな画像でも画質にこだわる姿勢が伝わるでしょうか。

  グレースケール
by○凹ナオキ氏
人工的な画像
by江口寿氏
人物の画像
さとう玉緒
Ver1.1以上で作成したサムネイル(1999年10月以降) バージョン1.1サムネイル バージョン1.1サムネイル バージョン1.1サムネイル
Ver1.0で作成したサムネイル(1999年10月以前) バージョン1.0サムネイル バージョン1.0サムネイル バージョン1.0サムネイル
ブラウザでストレッチ表示 ブラウザで縮小 ブラウザで縮小 ブラウザで縮小


アルバムだから大枚数のサムネイル表示に対応する

そのために、メモリー効率を第一に考えて、サムネイルはテンポラリーファイルに作成して画面のフレームバッファ分だけテンポラリーファイルからメモリー展開するようにしています。
すべてのサムネイルをメモリーに常駐させれば、プログラムも簡単で、メモリーと相談してある程度の数なら必要以上のスクロールスピードが出ると思います。でも、それでは、「ICONぱくら」のように3000個以上ものサムネイルを作成したらウィンドウズのメモリースワッピングが発生して急激にパフォーマンスは落ちてしまうでしょう。

バージョン1.1でImageLinkアルバムとImageLinkエクスプローラのサムネイルイメージとテンポラリーファイル出力処理をマルチスレッドで行うようにしました。ほおっておけばテンポラリーファイルが作成されるので、従来の"表示タイミングでサムネイルイメージとテンポラリーファイル出力処理を行う"方式にくらべて快適になりました。
テンポラリーファイル作成後は、2K〜4K程度のJPEGファイルを読むだけなので十分実用レベルであると思っています。
また、テンポラリーファイルに元のサムネイルイメージを保存しているおかげで、アルバムデザインやフィルターなんかも簡単に変更できる訳です。

サムネイル作成については、十分満足しています。
サムネイルに関してはこの辺にして次の課題に挑戦したいと思います。