CustomScript

ページ

2024年7月14日日曜日

画像ビューアー 「NeeView」41.3 更新しました

画像ビューアー NeeView を 41.3 に更新しました。不具合修正のみです。

41.3

(2024-07-14)

変更

  • .NET 8.0.7
  • 7z.dll ver 24.07

不具合修正

  • ページフィルター切替時にエラーになることがある不具合修正
  • ページリストでダミーアイコンの巨大なポップアップが表示される不具合修正
  • アニメーションフレーム生成中にブックを切り替えたときにエラーになることがある不具合を軽減

45 件のコメント:

  1. いつも利用させて頂いています。
    エフェクトの機能について要望なのですが、自分でスキャンした漫画雑誌のモアレを低減しつつレベル補正で暗い部分まで見易い状態で閲覧したいと考えているのですが、現状ぼかしのエフェクトとレベル補正のエフェクトを同時に利用することが出来ません。
    エフェクト1、エフェクト2…と言ったように複数のエフェクトを重ねて有効にする仕様を検討して頂くことは可能でしょうか?よろしくお願い致します。

    返信削除
    返信
    1. ご要望ありがとうございます。対応を検討します。

      削除
  2. エクスプローラーやファイラーから書庫を「D&D」したときに、NeeViewをフォアグラウンドにするような設定がほしいです。現状だとD&Dしたあとにマウスでフォアグラウンドにして矢印キーでページ操作とひと手間あるのでそれがなくなってくれると助かります。

    返信削除
    返信
    1. ご要望ありがとうございます。対応を検討します。

      削除
  3. いつも便利に使わせていただき、ありがとうございます。
    要望なのですが、マウスボタンでのページ送り、戻りの際、マウスカーソルを完全非表示にするスイッチが欲しいです。
    thinkpadですと手前にマウスボタンがあるので非常に快適なのですが、いちいちマウスカーソルが復帰するのが気になっております。
    自動非表示マウスポインターの非表示にするまでの時間設定の最小値が今は1秒ですが、0秒まで設定できるようにするのでも結構です。
    よろしくお願いいたします。

    返信削除
    返信
    1. ご要望ありがとうございます。対応を検討します。

      削除
    2. 設定がありました。「マウス ボタン操作で再表示する」をOFFにしてみてください。「再表示する移動距離」を大きめにするとより効果的です。

      削除
  4. 更新ありがとうございます。普段より便利に利用させていただいております。

    さて、かなり古くのバージョンから同じ挙動をするのでもしかすると仕様なのかもしれないのですが、フォルダの中に画像が入っているものをNeeviewで閲覧している際に、ページビューからページ(画像)を選択して、コピーして別フォルダにペーストすると何故かコピーではなく移動されます。ZIP圧縮されていれば問題ないのですが、直接画像を参照している際にはこのような挙動になります。コピーしたつもりが元フォルダから消えていてびっくりすることがあるのですが、ご確認いただければ幸いです。

    もう一点、クイックアクセスで動画を検索して表示している状態で、検索されたファイルリストから再生中の動画を削除した場合、$hoge.mp4といった先頭に$マークの付いたtmpファイルがリスト内に残り、中身は消した動画ファイルになっています。検索をリフレッシュすればそのtmpファイルは消えるのですが、リフレッシュしない限りは残ったままになります。本棚の設定の「隠しファイルを表示する」はOFFになっています。こちらもご確認いたただければ幸いです。

    返信削除
    返信
    1. ご報告ありがとうございます。
      ですが、問題を再現できませんでした。よろしければ再現の詳細手順を教えていただけると助かります。また、何らかの設定が影響している可能性もありますのでお気づきの点がありましたらお知らせください。
      以下、こちらで試した手順です。

      > 何故かコピーではなく移動されます。
      1. 「ファイル操作許可」はON
      2. 複数の画像が入ったフォルダーを NeeViewで 開く
      3. 「ページリスト」を表示し、任意のページを選択して右クリックメニューから「コピー(C)」を実行
      4. 画像フォルダーと同じドライブの別フォルダーをエクスプローラーに開き、Ctrl+V でペーストする。正しくコピーになり移動は確認できない

      > 先頭に$マークの付いたtmpファイルがリスト内に残り
      1. 「本棚」で複数の画像が入ったフォルダーに移動し、適当な検索キーを適用した状態でクイックリストに登録する
      2. このクイックリストを開き、一番上の動画を選択し再生する
      3. 一番上の動画を選択し、右クリックメニューから「削除(D)」を実行
      4. 選択した動画は問題なく削除されリストからも消え、次にある動画が再生される

      削除
    2. 再現しないとのことでお手数をおかけします。

      1.につきまして、条件を変えつつ色々試してみたところ、当方のローカル環境の問題であろうことが分かってきました。当方ではファイラにAS/Rを利用しているのですが、報告した問題はAS/R上にペーストしたときのみ発生してるようです。AS/Rではファイルをドラッグ&ドロップしたときの挙動を設定可能で、それを「移動固定」で利用しています。Neeviewからのコピーがドラッグアンドドロップで実装されているため、AS/Rに貼り付けた場合には、移動されてしまうと推測しました。当方の確認不足で申し訳ありません。以後は気を付けて利用していくこととします。

      2. についても再現手順は記載されたとおりで当方の環境では100%再現するのですが、今のところ別の条件は見つけられていません。こちらについては更に条件が見つけられればまたご報告いたします。

      削除
  5. 更新ありがとうございます。
    いつも便利に利用させていただいております。

    私はNeeViewを多重起動して利用することが多いのですが、各ウィンドウの履歴情報を統合して残すようにして頂くことは可能でしょうか。
    具体的な内容としては、多重起動時に各ウィンドウでそれぞれ複数のファイルを開き履歴情報が更新された状態にあるとき、全てのウィンドウを閉じた後に改めて起動し直した際に、履歴にそれぞれのウィンドウで更新された履歴情報が不足無く記録されている状態になっていて欲しいです。

    現在の41.3で確認している事象としては、起動していた全てのNeeViewのウィンドウを閉じて再度開くと、一つのウィンドウ以外の全てのウィンドウの履歴が記録されていなかったり、幾つかのウィンドウの履歴のみが記録されていなかったりしました。
    また、希にですが全てのウィンドウの履歴が正しく反映されていることもありました。
    感覚的には、どのウィンドウを最後に閉じるかが履歴の保存状況に影響している様に感じましたが、履歴情報を任意で保存できることを期待して「設定の保存」にショートカットを割り当てているため、各ウィンドウでの「設定の保存」の実施有無も影響しているようにも感じています。

    よろしくお願いいたします。

    返信削除
    返信
    1. ご報告ありがとうございます。
      履歴は統合して保存しているつもりでした。調査いたします。

      削除
  6. いつも楽しく使わせていただいております。感謝です。
    ちょっと気になっていたのですが、設定に該当するところがわからず教えてほしいのです。

    縦にディスプレイを並べております。
    上のディスプレイに NeeView を全画面表示すると、下のディスプレイにはみだします。
    ほんの少しなので気にはしなかったのですが、私の環境だけなのかもわかりません。
    もし、設定で対処が可能であれば教えてほしいのです。
    どうぞ、よろしくお願いします。

    返信削除
    返信
    1. ご報告ありがとうございます。
      ですが、こちらの環境(Windows10)では現象を確認できませんでした。また、NeeViewには全画面時のウィンドウサイズを調整する機能はありません。
      Aeroスナップでウィンドウを移動させるとディスプレイ外にはみ出す現象は確認していますが、他のアプリでも同様の挙動でOSの機能によるものと思われるため、対応は難しいです。

      削除
  7. 7-Zip 24.08 出てました

    返信削除
    返信
    1. ご報告ありがとうございます。

      削除
  8. すみません。「表示できるファイルがありません」と出る不具合がありました。
    今すぐですみませんが、修正をお願いします。

    返信削除
    返信
    1. 問題の再現方法がわかりません。よろしければ詳細な情報をお願いします。

      削除
    2. 返事が遅くなり申し訳ございません。何故か画像ファイルのタイトルが消失してしまいまして…。

      削除
    3. うーん、まだ問題を把握できません。具体的な再現手順をお願いします。どのような操作手順で、どの場所の表示がどのようにおかしくなるか、再現率は、といったこちらでも問題を再現するための情報です。

      「表示できるファイルはありません」と表示されるのは、そのフォルダーに表示できるファイルが存在しない場合です。ひとまず思いつく状況は以下のとおりです。

      - 本棚の場合、サブフォルダーや対応する圧縮ファイルが存在しないフォルダーに移動した時。
      - 本棚の場合、検索ボックの入力で検索結果が0になるとき。
      - メインビューの場合、開いたブックにページとして表示可能な画像ファイルが存在しないとき。

      削除
  9. こんにちは、とても素晴らしいソフトをありがとうございます。
    だけど、どうしても欲しい機能で、削除の際の確認を無用にする設定です。
    あるのかもしれないけど?設定見て回ったけど、見つけられませんでした。
    消す都度に、消しますか?って、すごいストレスになるんです。
    いらないのだから、一回で消えてくれって思ってしまいます。

    返信削除
  10. すみません。何度も何度も見てたら見つかりました。

    返信削除
  11. Canary版(0825)の公開ありがとうございます。
    スクリプトコマンド向けの新たなコマンドパラメータ nv.Comamnd[CommandName].Paramater.CheckFlagKey について提案があります。
    ぜひ一度ご検討いただければ幸いです。


    提案:
    nv.Values の項目名を格納する「CheckFlagKey: string」の代わりに、フラグ自体を直接格納する「CheckFlag: boolean」を用意する


    提案の背景:
    下記の例1,2のように、関連するスクリプトコマンドの動作に関わるフラグを自身の Paramater.Argument に格納(永続化)するスクリプトコマンドを書いて利用しています。
    現Canaryの実装では、同永続フラグをチェックマークに反映させたい場合、nv.Values の項目に反映するコードが別途必要になります。また、同様の反映処理がNeeView起動時(OnStartUp や起動スクリプトに実装)にも必要になります。
    もし boolean型の CheckFlag であったら、下記の例3のようにチェックマーク自身を永続フラグとして利用できてよさそう、と思った次第です。

    例1) 現状 - truthy/falsy な文字列を操作して、そのまま格納
    nv.Comamnd[CommandName].Paramater.Argument = nv.Comamnd[CommandName].Paramater.Argument
    ? ''
    : 'enabled';
    // チェックマーク更新
    // nv.Values[nv.Comamnd[CommandName].Paramater.CheckFlagKey] = !!nv.Comamnd[CommandName].Paramater.Argument;

    例2) 現状 - boolean値を内包したオブジェクトを操作して、それをJSON文字列化して格納
    const param = JSON.parse(nv.Comamnd[CommandName].Paramater.Argument ?? {});
    param.enabled = !param.enabled;
    nv.Comamnd[CommandName].Paramater.Argument = JSON.stringify(param);
    // チェックマーク更新
    // nv.Values[nv.Comamnd[CommandName].Paramater.CheckFlagKey] = param.enabled;

    例3) 提案 - boolean値をそのまま操作・格納(チェックマーク自体が永続フラグ)
    nv.Comamnd[CommandName].Paramater.CheckFlag = !nv.Comamnd[CommandName].Paramater.CheckFlag;


    副作用の検討:
    本提案採用時は現Canaryから2点の変化 a) フラグ永続化、 b) フラグ共有不可、があります。
    参考までに、a,bそれぞれの変化がもたらすスクリプトを書く上での副作用を、フラグの用途別に書き出してみました。

    用途1 - 純粋な状態表現フラグ
    - a 永続化: OnStartUp や起動スクリプトでの初期化が不要になる(うれしい)
    - b 共有不可: 共有用(値の並列化)コードが個別に必要になる。ただし、対象ユースケースが思いつかない(負の影響はなしと見做してよい??)

    用途2 - ブックやページの状態に応じたリアクティブな状態表現フラグ
    - a 永続化: OnBookLoaded や OnPageChanged で個別の更新が必要な点は変化しない(影響なし)
    - b 共有不可: 共有用(値の並列化)処理コードが個別に必要になる。ただし、対象ユースケースが思いつかない(負の影響はなしと見做してよい??)

    返信削除
    返信
    1. ご提案ありがとうございます。検討します。



      削除
    2. Canary0829で、CheckFlagKey → IsChecked に変更されていることを確認しました。
      ありがとうございました!

      削除
  12. こんにちは、素晴らしいソフトをいつも有難く使わせていただいております。
    「ファイル操作許可」にチェックをしても「削除」がグレーアウトしたままなのですが、何か特別な設定などがあるのでしょうか?
    ご回答いただけますと幸いです。よろしくお願いいたします。

    返信削除
    返信
    1. 通常のファイルは削除できるようになっていると思います。
      圧縮ファイル内のファイルは基本的に削除できません。ただし、ZIPファイルのみ設定の「ZIP」ページの「ZIPファイル編集」を有効にした場合のみZIP内ファイルを削除できるようになります。

      削除
    2. ご回答ありがとうございます。
      PDFだと削除できないことはありますか?
      アンインストールして再インストールしても削除できないままでした。

      削除
    3. PDFファイル自体は削除できますが、PDFファイル内のページは削除できません。PDFは圧縮ファイルと同じ扱いとなります。

      削除
    4. 承知しました。別のPDF編集ソフトで削除しようと思います。
      ありがとうございました。

      削除
  13. こんにちは。永く愛用させて頂いております。さて私め、以前のバージョンではフルスクリーンの解除と終了、両方のコマンドにESCを割当てておりました。ESCを2回押すと、フルスクリーンを解除してから終了するわけです。ですが、最近のバージョンでは競合状態においては、どちらかのコマンドしか実行されないようです。細かいと言えば細かいですしバグの温床だと言われればその通りなのですが、アプリの状態に応じたコマンドキーの重複についての調整をご検討頂けますとありがたく思います。

    返信削除
    返信
    1. ご報告ありがとうございます。対策を検討します。

      削除
  14. Canary版で気になった点を報告します。(0829で確認しています)
    参考にしていただければ幸いです。

    ■ スクリプトエラー
    1. nv.Book.ViewPages[0].Player のエラー

    libVLC無効(下記の設定項目が OFF の状態)でメディアファイル(音声ファイル・動画ファイル)を開いた場合、nv.Book.ViewPages[0].Player にアクセスするコードでスクリプトエラーが発生するようです。

    <設定項目>
    設定 > 対応形式 > 動画 > libVLC を使用して動画を再生する(nv.Config.Archive.Media.IsLibVlcEnabled)

    <スクリプトのエラーメッセージ>
    Error: (1): このオブジェクトは別のスレッドに所有されているため、呼び出しスレッドはこのオブジェクトにアクセスできません。

    <エラーになるもの>
    >> nv.Book.ViewPages[0]
    >> nv.Book.ViewPages[0].Player
    >> nv.Book.ViewPages[0].Player.Duration
    >> nv.Book.ViewPages[0].Player.IsMuted = true // 書き込み側のみエラー
    >> nv.Book.ViewPages[0].Player.Position // 読み出し側のみエラー
    >> nv.Book.ViewPages[0].Player.Volume = .5 // 書き込み側のみエラー


    2. nv.DestinationFolderCollection.Items の Copy メソッドのエラー

    2-1. 現在のブックに含まれない、"アーカイブのブック" の画像ファイルのパス文字列(c:\\test.zip\\test.jpg)を渡すと、下記のスクリプトエラーが発生するようです。
    なお、現在のブックに含まれている場合はエラーは発生せず、問題なくコピーされます。
    現在のブックに含まれない、"フォルダのブック" の画像ファイル(c:\\testFolder\\test.jpg)の場合もエラーは発生せず、問題なくコピーされます。

    <スクリプトのエラーメッセージ>
    Error: (1): Code=0x007c

    2-2 パス文字列の配列を渡すと、下記のスクリプトエラーが発生するようです。
    下記のような、現在のブック内の画像ファイルのパス文字列だけが含まれる配列を渡した場合でも再現します。
    >> nv.DestinationFolderCollection.Items(nv.PageList.Items.map(e => e.Path))

    <スクリプトのエラーメッセージ>
    Error: (1): Invalid cast from 'System.String' to 'NeeView.PageAccessor'.

    Moveメソッド側は確認していませんが、同様かもしれません。


    3. ブックマークフォルダの削除メソッドのエラー
    下記のようなブックマークフォルダを削除するコードでスクリプトエラーが発生するようです。
    >> nv.Bookmark.FolderTree.BookmarkNode.Remove(nv.Bookmark.FolderTree.BookmarkNode.Children[0]); // ルート直下一つ目のブックマークフォルダを削除

    <スクリプトのエラーメッセージ>
    Error: (1): No public methods with the specified arguments were found.

    スクリプトマニュアルで BookmarkNodeAccessor の Insert メソッドの戻り値の型と、Remove メソッドの引数の型が共に「QuickAccessNodeAccessor」になっていますが、本件に関係しているのでしょうか?
    Insert 実行時の戻り値は BookmarkNodeAccessor のように見えたので、マニュアル側の誤記?

    余談になりますが、ブックマークフォルダはルートノードと子ノードが共に BookmarkNodeAccessor なので、下記のようなコードでルートノードを削除できてしまいそうな雰囲気を感じました。
    >> nv.Bookmark.FolderTree.BookmarkNode.Remove(nv.Bookmark.FolderTree.BookmarkNode)

    ルートノードと子ノードの型を分けた上で、子ノードにだけ、引数なしの削除メソッド Remove を用意した方がよいのかもしれません。


    ■ 提案
    1. 下記のクイックアクセス登録用メソッドに、省略可能な引数 Name の追加を提案します
    クイックアクセスは登録後に名前を変更できますが、スクリプトによる登録時には名前を指定する手段があってもよさそうに感じました。

    <対象メソッド>
    nv.Bookshelf.FolderTree.QuickAccessNode.Insert


    2. 親フォルダをブックとして開いた状態における「ページ要素としてのメディアファイル」の扱いについて

    2-1) 下記設定項目が ON の場合でも、PageAccessor 及び ViewPagesAccessor に追加されたプロパティ「IsBook」が false になっています。
    実際にはブックとして開いても問題ないので、ページ要素としてのフォルダやアーカイブと同様に true にすることを提案します。

    2-2) 下記設定項目が ON の場合でも、フィルムストリップ/ページパネル上の要素/ナビゲーションパネルのサムネイル、のコンテキストメニュー項目「ブックを開く」が非表示になっています。
    実際にはブックとして開いても問題ないので、ページ要素としてのフォルダやアーカイブと同様に「ブックを開く」を表示させることを提案します。

    <設定項目>
    - 設定 > 対応形式 > 動画 > 動画をブックとして開く(nv.Config.Archive.Media.IsEnabled)

    返信削除
    返信
    1. ご報告ありがとうございます。
      修正、検討いたします。

      削除
  15. 今までダウンロード版を使用してきたのですが、この度ストアアプリ版をインストールしてみました。
    ショートカットをデスクトップに作成したときにアイコンが透過されずに背景が緑色になってしまったのですが、透過アイコンにするにはどうすれば良いでしょうか?

    返信削除
    返信
    1. 現象を確認しました。調査してみます。
      現状の認識ですとストアアプリの仕様っぽいです。

      削除
  16. いつも使用しています、ありがとうございます。
    要望なのですが、WebPアニメーションに対応していただけないでしょうか?

    返信削除
    返信
    1. ご要望ありがとうございます。
      対応を検討します。

      削除
  17. Native AOTに対応してほしい。
    ビルドが通っても動かないとか、ビルドエラーが出ないので何が問題なのかわからない等々、対応させるのが大変なのですがNative AOTになって起動が速くなればNeeViewの欠点がなくなるのでがんばって対応お願いします。

    返信削除
    返信
    1. ご要望ありがとうございます。
      検討いたしますが、現状、WPFがNative AOTに非対応であることもあり、望みは薄そうです。
      WinUI3は最近対応されたので移行の候補になりますが、ほぼすべてのUIとデータ依存関係の作り直しになってしまうため、こちらも難しいです。

      削除
  18. いつも便利に使わせていただいております。
    ソフトについて質問なのですが、アスペクト比を変更するショートカットはありますでしょうか?

    返信削除
    返信
    1. その機能のショートカットは用意されていません。
      現状ではスクリプトで実現可能かと思われます。以下、スクリプトの例です。
      https://bitbucket.org/neelabo/neeview.scriptsamples/src/master/Scripts/ToggleAcpectRatio.nvjs

      削除
  19. いつも利用させて頂いています。
    業務で利用することは可能でしょうか。主に画像ビューアとして使いたいのですが利用規約を見つけられなかったのでコメントさせていただきました。商用、非商用など利用規約をご教授いただけると幸いです。

    返信削除
    返信
    1. NeeViewはMITライセンスで提供されておりますので、それに従ってください。

      削除
    2. ありがとうございます。

      削除