2024年10月5日土曜日

テキストファイル内の画像パスをPPVで表示

テキストファイル中に画像ファイルのパスを書いておけば、それを別IDのPPVで閲覧できるようにする。これで、テキストファイルのメモでも画像や図を扱いたい!という我々の永遠の課題を解決できるかもしれない?

準備

以下をScriptフォルダに保存。

以下を編集して取り込み。

_Command    = {    ; ユーザコマンド・関数
openhalfppv    = *windowsize %N,%*windowrect(,w),%*calc("%*windowrect(,h)/2")
    *ppv -bootid:X -k %%J"%*arg(1)" %%: *fitwindow %N,%%N,4 %%: *windowsize %%N,%*windowrect(,w),%*windowrect(,h) %%: *selectppx %n
previewimagepath = *openhalfppv %*script(%0Script\getimagepath.js,1)
    *mapkey use,K_halfppv
    *linecust imgpreview,KV_main:LOADEVENT,*ifmatch %%n,%n %(%: *RotateCustomize _User:imgpath,%*script(%0Script\getimagepath.js) %: *ifmatch !0,0%*getcust(_User:imgpath) %: *execute VX,%%J"%*getcust(_User:imgpath)"%)
    *linecust quitimgview,KV_main:CLOSEEVENT,*ifmatch %%n,%n %%: *linecust imgpreview,KV_main:LOADEVENT, %%: *linecust quitimgview,KV_main:CLOSEEVENT,
}

K_halfppv    = {
Q    ,*ifmatch !0,0%NVX %: %Oi *windowsize %N,%*windowrect(,w),%*calc("%*windowrect(,h)*2")
	*closeppx "%n,VX"
^N    ,*RotateCustomize _User:imgpath,%*script(%0Script\getimagepath.js) %: *execute VX,%%J%*getcust(_User:imgpath)
ENTER    ,*ifmatch !0,0%NVX %: %Oi *windowsize %N,%*windowrect(,w),%*calc("%*windowrect(,h)*2") %: *closeppx VX %: *stop
	*openhalfppv %*script(%0Script\getimagepath.js,1)
}

やり方

画像ファイルパスを書き込んだテキストファイルを用意し、PPVで表示する。

PPV上で以下のコマンドを実行。

*previewimagepath

PPVの大きさが半分になり、空いたスペースにPPV[X]が起動。画像ファイルを表示する。

PPvの表示ファイルが切り替わると、表示画像も切り替わる。以下はPPv中心の連動ビュー(参考:一対一対応 | PPxMemo)と組み合わせたもの。

その他キーバインド

  • [ENTER] 画像表示非表示トグル
  • [Q] 半分になったPPVの大きさをもとに戻してから終了
  • ^[N] テキストファイル内の次の画像ファイルパスを表示

追記 2024-10-14

表示している画像ファイルパスをハイライトする設定は以下。

_Command    = {    ; ユーザコマンド・関数
openhalfppv    = *windowsize %N,%*windowrect(,w),%*calc("%*windowrect(,h)/2")
    *ppv -bootid:X -k %%J"%*arg(1)" %%: *fitwindow %N,%%N,4 %%: *windowsize %%N,%*windowrect(,w),%*windowrect(,h) %%: *selectppx %n
previewimagepath = *openhalfppv %*script(%0Script\getimagepath.js,1)
    *mapkey use,K_halfppv
    *highlight %*script(%0Script\getimagepath.js,1)
    *linecust imgpreview,KV_main:LOADEVENT,*ifmatch %%n,%n %(%: *RotateCustomize _User:imgpath,%*script(%0Script\getimagepath.js) %: *ifmatch !0,0%*getcust(_User:imgpath) %: *execute VX,%%J"%*getcust(_User:imgpath)" %: *highlight %*getcust(_User:imgpath)%)
    *linecust quitimgview,KV_main:CLOSEEVENT,*ifmatch %%n,%n %%: *linecust imgpreview,KV_main:LOADEVENT, %%: *linecust quitimgview,KV_main:CLOSEEVENT,
}

K_halfppv    = {
Q    ,*ifmatch !0,0%NVX %: %Oi *windowsize %N,%*windowrect(,w),%*calc("%*windowrect(,h)*2")
	*closeppx "%n,VX"
^N    ,*RotateCustomize _User:imgpath,%*script(%0Script\getimagepath.js) %: *execute VX,%%J%*getcust(_User:imgpath) %: *highlight %*getcust(_User:imgpath)
ENTER    ,*ifmatch !0,0%NVX %: %Oi *windowsize %N,%*windowrect(,w),%*calc("%*windowrect(,h)*2") %: *closeppx VX %: *stop
	*openhalfppv %*script(%0Script\getimagepath.js,1)
}

0 件のコメント:

コメントを投稿