9. Tips
前のページ |  | 次のページ

## 9. Tips

サムネイルビューの描画完了を速くする

  gimv は、[設定 | サムネイルウィンドウ | ローディング時の再描画の間隔] で指定した枚数分、一度にサムネイルを読み込みます。

  描画が遅いマシンでこの値を多くすると、サムネイル更新回数(画面更新回数)が減り、多少速くなります。といっても、大きくすればするだけ更新頻度が下がり、画面に表示されない時間が長くなりますので、5 〜 15 が適当と思います。

イメージビューの描画完了を速くする 1

  [設定 | イメージウィンドウ | 表示/非表示] の表示設定を、「全てチェック」するか「全てチェックを外す」こと。

  GImageView は、一回ウィンドウをクリエイトした後に、チェックの入っていないバーを消す、という作業を行っています。ここで、全てチェックが入って"いない"場合は1つもクリエイトされず、逆に"全てチェックが入っていれば"全てクリエイトされます。これらを省略することで、「消す」という動作分だけ高速化します。これは、大きな画像(画面解像度以上)を展開する際に非常に有効です。

イメージビューの描画完了を速くする 2

  [設定 | イメージウィンドウ | 画像 | ファイ ルオープン時にウィンドウのサイズに合わせる] をチェックする。

  GImageView は、ユーザの設定に関わらず、[イメージウィンドウ | ウィンドウ | ウィンドウの初期サイズ] で指定されたサイズに画像を展開し、その後に画像本来のサイズにリサイズします。ここにチェックを入れることで、リサイズ分が省略されるため、その時間分だけ高速化します。但し、これは初期サイズで指定した画像よりも、開く画像が大きい場合にのみ有効です。

  この設定を行った場合、イメージビューで「画像サイズで表示」するには、[等倍] をクリックし画像を等倍リサイズした後に、「ウィンドウ枠を画像に合わせる」しか方法がありません。注意してください。

イメージビューの描画完了を速くする 3

  [設定 | イメージウィンドウ | 画像 | 自動的に画像のサイズにリサイズする] のチェックを外す。

  これによって、初期ウィンドウサイズよりも小さな画像でも、リサイズしなくなります。上記設定と組み合わせることで、本来の画像のサイズに関係なく、指定サイズで開くようになり、リサイズ分だけ高速化されます。

  この設定を行った場合、イメージビューで「画像サイズで表示」するには、[等倍] をクリックし画像を等倍リサイズした後に、「ウィンドウ枠を画像に合わせる」しか方法がありません。注意してください。

イメージビューの描画を速くする

  [設定 | イメージウィンドウ | 画像 | 元の画像をメモリ内に保持する] にチェックを入れる。

  GImageView は、表示した画像をリサイズしたり回転した時、"元の画像"をレンダリングし直して再表示しています。ここで、「元の画像をメモリに保持する」ようにすると、レンダリング時に、"元の画像" をメモリから読み出すようになり、1回1回ディスクから読み出す時(ノンチェック時)に比べ、レンダリング時の描画速度が大きく向上します。

  なお、一番最初に画像を展開する時は、どんな設定であれディスクから読み出すことになりますから、このオプションは関係ありません。メモリに保持していると、画像一枚につき 1MB 弱から、多い時には数 MB 以上のメモリを余分に消費するため、メモリの少ないシステムでは数枚の画像を開いただけでメモリを食い潰す可能性があります。このためデフォルト設定は OFF です。

  これらは、バッファを ON にした状態と OFF にした状態の GImageView プロセスのメモリ消費量を top 等で確認してもらえれば一目瞭然です。ちなみに、GQview や gThumb、G-ThumB 等の同類のソフトは、GImageView で言う所の "バッファ" は常に ON の状態ですので、数枚以上の画像を同時に開く時には、メモリ消費量の違いが顕著に現れると思います。

  この部分が、GImageView の謳っている、低消費メモリとも関係しています。

サムネイルサイズを一時的に変更する

  ツールバーの値を変更し、リターンした後に [編集 | キャッシュ再読込] (Shift + R)か、[全てのサムネイルを再作成] (Ctrl + R or マウスメニュー)することで反映されます。

  ここで、"キャッシュの再読込"を行った場合、キャッシュの画像が新しいサムネイルサイズに拡大(縮小)して表示されます。縮小の場合はよいのですが、拡大の場合、ドットが荒くなります。これを避けたい場合、"全てのサムネイルを再作成"してください。新しいサイズでキャッシュが作り直さるため、ドットが荒くなることはありません。

  なお、新規ウィンドウ・新規タブに、ツールバーで設定した設定は反映されません(保存されません)。ここで変更した値は、そのタブでのみ有効になります。恒久的に変更したい場合、[設定 | サムネイルウィンドウ | サムネイルビュー | サムネイルサイズ] の値を変更するか、「終了時の状態を保存する」ようにして下さい。

[リスト更新]・[キャッシュ再読込]・[全てのサムネイルを再作成]の違いについて
  リスト更新 (R)

    ディスクとメモリ上の情報の差分のみを更新します。ファイルリストを更新するのみで、サムネイルのリサイズは行いません。

  キャッシュ再読込 (Shift + R)

    全ての情報を破棄して、再度全ての情報をディスクから読み込みます。この時、キャッシュが存在する場合はキャッシュから読み込み、無い場合は元の画像から作成します。キャッシュが存在する場合、サムネイルのリサイズだけ行います。

    再作成ではなくリサイズですから、保存されていたキャッシュが指定サイズより小さい場合、単なるサムネイルの拡大となるので、画像が汚くなります。

  全てのサムネイルを再作成 (Ctrl + R)

    全ての情報を破棄して、再度全ての情報をディスクから読み込みます。全て、元の画像からサムネイルを再作成します。表示サムネイルサイズの変更が行われた場合、これを行うのが一番良いと思います。

カスタムレイアウトについて

  [表示 | レイアウト]を指定することで、GImageView サムネイルウィンドウの、各ペインの位置を変更できるようになります。レイアウト 0 をデフォルトとし、レイアウト 4 まで標準で用意されています。

  また、これらのレイアウト以外に、カスタムレイアウトとして、任意のペイン構成を作るこ ともできます。

  現在(version 0.1.2)、カスタム設定を GUI や CUI から行うことは出来ません。カスタム設定を作る場合、~/.gimv/gimvrc を直接いじる必要があります。今後、設定画面ないしは設定方法がきちんと組み込まれると思います。それまでは、at your own riskでお願いします。

  いじる項目は下記の 6 つです。

  - thumbwin_pane1_horizontal (pane1 は水平分割か垂直分割か)

  - thumbwin_pane2_horizontal (pane2 について、以下同様)

  - thumbwin_pane2_attach_1 (pane2 を pane1 の child1 に張り付けるか,child2 に張り付けるか)

  - thumbwin_widget [0] (pane1 のもう片方に張り付けるウィジェット。1 がディレクトリビュー、2 がサムネイル、3 がプレビュー)

  - thumbwin_widget [1] (pane2 の child1)

  - thumbwin_widget [2] (pane2 の child2)

  カスタムにすると、ここで設定した値が使用されます。レイアウト 0 〜 4 は、これら 6 つの値があらかじめプリセットされています。これらを変更することは出来ません。

カスタムレイアウトとウィンドウ構成

  簡単に言うと、「任意にカスタム可能な物がレイアウト」で、「規定物がウィンドウ構成」です。

  現状では「ウィンドウ構成」や「タブorディレクトリビューのツールバーの DnD」でレイアウトを自在に変更できるようになっていて、これらの変更を行 うと「レイアウト」は自動的に「カスタム」になります。

  「レイアウト」は今のところ(「カスタム」を除くと)5種類に固定されていま すが、最終的には、自分の好みの形態をいくつでも「レイアウト」に登録できるようになるそうです。インターフェイスとしては、(レイアウトのメニューに「レイアウトを保存」という項目を追加して、レイアウト保存時に名前をつけられる形になる)、というものが考えられています。

類似画像検索

  GImageView の類似画像検索アルゴリズムは、以下のようになっています。

  1. 画像のサイズ/アスペクト比に関わらず、全ての画像を32x32dotの枠に押し込める

  2. 各画素のR/G/Bの誤差を積算平均する(0 〜 1.0)

  3. 誤差が閾値以下の場合は「一致する」と判定する

  この閾値は設定の「検索」で設定できますが、実際には類似度?(1.0 - 誤差)で設定するようになっています。この値以上の場合は一致する、と判定されるわけです(パーセンテージの方が良かったかもしれませんが)。

  また、32x32 の画像データ(ソフトによっては「指紋」等と命名されているようです)は、実際には高速化のためにサムネイルを使用しています。このため、サムネイルが作成されていないと正しく動作しません。

  このような実装の為、人間が見ると一見非常に似ているような画像でも、実際には「一致してない」と判定される事があります。以下のよう場合、そうなります。

  1. カラーバランスが全体的にシフトしている場合 (全てのピクセルが一様に「誤差がある」と判定されている)

  2. 殆ど同じような画像だが、画像の一部(上/下/右/左)が切り取られている場合 (対応しないピクセルを比較してしまっている)

前のページ | ホーム | 次のページ
8. GImageView FAQ | 上に戻る | 10. GImageView 更新履歴