サムネイルのキャッシュ
Susieプラグイン対応やリサイズ対応などの利便性から、X-Finderの特徴の一つだったサムネイル表示(縮小版・並べて表示等)だが、
11-1-1から、一旦描画されたサムネイルが保存されるキャッシュ機能が実装*1され、その使用用途が大きく広がった。
キャッシュを有効にするには"ツール"→"詳細オプション"→"最小キャッシュサイズ"の値を"1"以上にすればよい。
("0"だとキャッシュ無効、"-1"だと逐一以前作成したキャッシュを削除する)
キャッシュの恩恵
サムネイルを独自に設定・変更
Alternate Data Streamsの"thumbnail.jpg"がそのファイルのサムネイルとなるので、"thumbnail.jpg"さえ設定すればどんなファイルでもサムネイルを変更可能だし、通常サムネイルが表示されないファイルやフォルダにもサムネイルを付けることができる。
以下はビルトインコマンドの"Thumbnail:"を使用して"thumbnail.jpg"を任意のファイルに変更するランチャ。任意のファイルのフルパスをクリップボードにコピーしてから実行する。
サムネイルを設定する [パス] Thumbnail: %clipboard% "%focused%:thumbnail.jpg" [動作] 実行
このランチャでサムネイルを変更したところ。"Water Lilies"は実際の画像とは異なるサムネイルを表示している。
(プレビューで表示されているのが実際の画像)
サムネイル用の画像を作成するには、ImageMagick等も利用できる。
以下はImageMagickのconvert.exeを利用してフォーカスされた画像から160x160のサムネイル用画像を作成するランチャ。サムネイル用画像thumb.jpgを出力する [パス] ..convert.exe %focused% -resize 160x160 -size 160x160 xc:#E6FFE6 +swap -gravity center -composite thumb.jpg [動作] 実行実際に動作させると、この画像がこう変わる。空白を埋める色も指定できるので、ウインドウの背景色と統一しておくと違和感なく表示できると思う。
キャッシュはタブを更新しただけでは作成し直されないので、描画に失敗したファイルのサムネイルを個別に作成し直すときには"Thumbnail:Delete"を使用してキャッシュを削除するとよい。(上記のランチャで設定したサムネイルを削除したいときにも使用)
選択したファイルのサムネイルを削除する [パス] Thumbnail:Delete %Selected% [動作] 実行
以下ではサムネイルの設定の具体的な活用例について書いていく。
――関係するコマンド
- Thumbnail:Create 〜・・・〜のサムネイルキャッシュを作成する
- Thumbnail:Delete 〜・・・〜のサムネイルキャッシュを削除する
- Thumbnail: A B C,D・・・・Aを基にして、CxDの大きさのjpgファイルBを作成する
動画ファイルに好きなシーンのサムネイルをつける
システム標準の機能やMediaPlayer Susie Plug-inを使用すれば対応する動画ならサムネイルも一応作成することができるが、細かなシーンの指定等をすることはできない。
(以下では、サムネイルサイズ:160x120の例で記述していく)
だが、キャプチャ機能がある動画再生ソフトで好みのシーンをキャプチャし、上述のランチャで変換してそのファイルのサムネイルにすれば、好みのシーンをサムネイルにして管理することができる。
とはいっても一々動画をチェックしてサムネイルを選択するのは非常に時間がかかるので、ここでは動画のサムネイルを作るやつ*2でサムネイル一覧の画像を作成し、Bitmap Knifeで任意の領域を選択するといった方法でサムネイル用元画像を用意するランチャを紹介する。
サムネイル用画像を選択する [パス] ...MovieThumbGenWin32.exe -c=4 -r=4 -w=160 -h=120 -f=png -q=90 -b=FFFFFF "%focused%" "*thumbnail.png" -o Confirm:"確認","%focused%thumbnail.pngからサムネイルを選びます" ...BmpKnife.exe "%focused%thumbnail.png" [動作] 実行
実際に使用すると、こんな感じ。
以上でサムネイルサイズのjpgファイルが用意できるので、上述のランチャでサムネイルに設定すればよい。
また、別のツールを使ってより簡単にサムネイルの設定を行う方法もある。以下はそのランチャ。
サムネイル用画像を選択する [パス] ...MovieThumbGenWin32.exe -c=4 -r=3 -w=160 -h=120 -f=png -q=96 -b=FFFFFF "%focused%" C:\temp\temp.png -o ...T13_595.lnk Confirm:"確認","サムネイルを設定" Thumbnail: C:\temp\thumb.png "%focused%:thumbnail.jpg" [動作] 実行
実際に使用すると、こんな感じ。
T13_595.lnkはT13_595.jarのショートカット。実行には前もってJavaの導入が必要。
上記ランチャの実行前にT13_595.jarを実行し、入力ファイルの欄に「C:\temp\temp.png」、サムネイルサイズ(上記の例なら160,120)、
実行コマンドの欄に「"〜i_view32.exe" "%img%" "/convert=C:\temp\thumb.png"」を入力しておく。
シーンを選ばずに複数のシーンを並べたサムネイルを作成してその画像を動画のサムネイルにしたい場合は、下記のような内容のbatファイルを作成してbatファイルに動画を送るランチャを設定し、動画ファイルを選択して実行すればよい。
ランチャを実行するとサムネイル作成→サムネイル変更→リスト更新まで自動で行える。
複数の動画ファイルにサムネイルを設定する"thumb.bat"(160x120用) [thumb.bat] @echo off :thumb if "%~1"=="" goto :ed ...MovieThumbGenWin32.exe -c=2 -r=2 -w=80 -h=60 -q=95 -b=FFFFFF %1 C:\temp\thumb.jpg -o Type C:\temp\thumb.jpg > "%~1:thumbnail.jpg" shift goto thumb :ed ...XF.exe Refresh:2 goto :eof
実行後の画面はこんな感じになる。
IEのお気に入りにそのページのサムネイルをつける
IEのお気に入りにサムネイルをつければ、視覚的にお気に入りを管理できるようになる。これは特に普段あまり見ないページの内容を把握するのに非常に有効だと思う。
以下は CrenaHtml2jpgで任意のページのサムネイルを作成、IEのお気に入り(urlファイル)のサムネイルをその画像に変更するランチャ。(サムネイルサイズは160x120に設定)
インターネットショートカットのサムネイルをそのページから作成した画像にする [パス] 0:%focused% ...\crena\CrenaHtml2jpg.exe -u%current% -o...\crena\temp.jpg -fjpeg -w640x480 -s160x120 -q92 -d72 -t25 Confirm:"確認","サムネイルを設定します" Close: Thumbnail: ...\crena\temp.jpg "%focused%:thumbnail.jpg" [動作] 実行
確認ダイアログの背後のタブでページの描画が終わったくらいのタイミングでOKをクリックするとうまく動作すると思う。
フォルダのサムネイルをそのフォルダの最新画像にする
XPのexplorerには、フォルダ直下の画像最大4枚をそのフォルダのサムネイルにする機能があり、さらに、フォルダ直下に"folder.jpg"というファイルをおくことでその画像1枚のみをサムネイルとして指定できる機能がある。
以下はその機能を利用してフォーカスしたフォルダのサムネイルをそのフォルダ直下の最新画像1枚のものにするランチャ。
あらかじめ、"ツール"→"詳細オプション"の"システムで表示するファイル"に"*.folder"を記述しておくなどして、エクスプローラの機能でフォルダのサムネイルを表示するようにしておく必要がある。
フォルダのサムネイルを最新画像にする [パス] 2:Open: Open: *.jpg;*.png;*.gif;*.bmp Sort:-更新日時 Thumbnail: "%Focused%" "%current%\folder.jpg" Close: Thumbnail:Delete %focused% [動作] 実行・新規タブ
画像ファイルをまとめた圧縮ファイルに好きな画像のサムネイルをつける
ファイル数の増加やサブフォルダの増加を避けるために、画像ファイル等をフォルダに分類するのではなくzip等の圧縮フォルダにまとめて管理するといった方法があるが、圧縮フォルダは専用のViewerソフトがないと中身を確認できない。
上述のランチャでサムネイルを設定すれば中身を見た目で判別できるが、圧縮フォルダを解凍→フォルダ内の画像ファイルからサムネイルを作成する・・というのは結構手間がかかる。
以下ではHamanaとImageMagickを併用して閲覧中の書庫ファイル内の画像からサムネイル用のJPGファイルを作成する方法を紹介する。
Hamanaの設定は上の画面のようにする。
任意のキーやマウス操作に外部アプリケーションの実行を割り当て、"プログラムと引数"には上述の「imagemagickのconvert,exeを利用してサムネイル用JPGを作成する」ランチャの内容を割り当てる。(具体的には以下の内容)
..convert.exe "$F" -resize 96x96 -size 96x96 xc:#FFFFFF +swap -gravity center -composite C:\temp\hamana.png
ここでは、Homeキーを押すと「サムネイル表示中に選択したファイルを、96x96のサイズにアスペクト比を保持したままリサイズして空白を白で塗りつぶし、"C:\temp\hamana.jpg"として出力する」動作を行うようにしている。
出力されたファイルを確認し、サムネイルを変更したいファイルをフォーカスして以下のランチャを実行すれば書庫にサムネイルをつける作業は終了する。
サムネイルを設定する [パス] Thumbnail: C:\temp\hamana.png "%focused%:thumbnail.jpg" [動作] 実行
また、Imagemagickの機能を利用して以下のような画像を表紙用に作成することもできる。
このときのパスの内容は以下のとおり。
..convert.exe" "$F" -resize 160x120 -matte -virtual-pixel transparent -channel A -blur 0x12 -level 0,50% C:\temp\hamana.png
画像ファイルをまとめた圧縮ファイルの先頭画像をそのサムネイルにする
上述した圧縮ファイルの中身を確認する作業さえわずらわしいときのため、以下では複数ファイルを対象として、それぞれの圧縮ファイルの先頭画像を自動的にそのサムネイルにする方法を紹介する。
用意するのは下記の内容のbatファイル、Portable版の7-ZIP、Xnview付属のnconvert.exeである。
実行前に"C:\temp"フォルダを作成しておく必要がある。
複数の圧縮ファイルに先頭画像サムネイルを設定する"archivethumb.bat"(160x120用) [archivethumb.bat] @echo off set path="7z.exeのフォルダのパス";"nconvert.exeのフォルダのパス";%path% :thumb if "%~1"=="" goto :ed 7z x %1 -oC:\temp\tmp *.jpg *.png *.bmp *.gif -r -aoa cd /d C:\temp\tmp dir /b /s /o *.jpg *.png *.bmp *.gif>temp.txt find /N /V "" < temp.txt >nlist.txt for /F "tokens=1,* delims=[]" %%A in (nlist.txt) do if %%A LEQ 1 echo %%B>>pic1.txt for /F "delims=" %%A in (pic1.txt) do nconvert -quiet -32bits -out jpeg -o "c:\temp\thumb.jpg" -ratio -rtype lanczos -resize 160 120 "%%A" Type c:\temp\thumb.jpg > "%~1:thumbnail.jpg" rmdir C:\temp\tmp /q /s shift goto thumb :ed ..XF.exe Refresh:2 goto :eof
対象ファイルを"archivethumb.bat"に送るランチャを実行すれば、圧縮フォルダにサムネイルがついていくのが確認できると思う。
7-Zipが解凍できる形式なら全て実行可能。
また、対応形式がzipのみに限られるがより高速に動作する別のツールを使用した"archivethumb2.bat"は以下のとおり。
ここでは画像のリサイズにIrfanviewを使用している。
複数のzipファイルに先頭画像サムネイルを設定する"archivethumb2.bat"(160x120用) [archivethumb2.bat] @echo off :thumb if "%~1"=="" goto :eof ..T13_036.exe -f %1 -d C:\temp\tmp\ -i 0 -t "..i_view32.exe
"T13_036.exe"の仕様は以下のとおり。
-f 入力ファイル(zip)のパス
-d zipのi番目のファイルを出力するフォルダ(作業フォルダ)
-i zipの何番目のファイルを出力するか
-t ファイル出力後に実行するパス。(<input>は-fで指定したパスを表し、
または、こちらで公開されているSetFolderThumbnail.jsを使用して下記のようなランチャを実行すると、OSがフォルダとして扱えるファイル類に対して上記と同様な動作となる。
複数の圧縮ファイルやフォルダに先頭画像サムネイルを設定する [パス] 1:Include:JScript SetFolderThumbnail.js /r SetSelectedFolderThumbnail [動作] 実行