CustomScript

2020年6月8日月曜日

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

  • .NET Framework 4.8
  • WPF
画像ビューアー NeeView を 37.1 に更新しました。
ほぼ不具合修正のみとなります。

37.1

(2020-06-08)

変更

  • ストレッチ変更で現在の角度そのままでストレッチを適用するようにした。

修正

  • システムの地域と言語の組み合わせによっては不正な設定ファイルを出力することがある不具合を修正。
  • ファイル削除確認の設定が機能していない不具合修正。
  • メニューやコマンドから同じストレッチを選んだときに再適用されない不具合修正。
  • 圧縮ファイル内に"x.zip"というような名前のフォルダーがあるときに読み込めない不具合修正。

2020年5月29日金曜日

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

  • .NET Framework 4.8
  • WPF
画像ビューアー NeeView を 37.0 に更新しました。
大きめの変更になります。下記更新履歴の重要項目を特にご確認ください。

37.0

(2020-05-29)

重要

  • x86版とx64版にパッケージを分離
    • 通常はx64版を使用します。OSが32bitの場合のみx86版を使用してください。
    • インストーラー版は旧バージョンのアンインストール後のインストールを強くお勧めします。
      • x86版とx64版は別アプリ扱いになり、意味はありませんが同時にインストール可能です。x86版は旧バージョンを上書きします。
    • Susieプラグインはどちらの版でも32bitプラグインをご使用ください。
  • .NET framework 4.8
  • 設定ファイルのフォーマット変更
    • 設定の構造を変更し、フォーマットをJSONに変更しました。これまでのXML形式の設定ファイルも読み込み可能で、JSON形式に自動的に変換されます。
    • 設定ファイルの後方互換性はおおよそ1年ほど維持されます。つまり2021年の夏頃のバージョンでは旧XML形式は読み込めなくなる予定です。エクスポートされた設定データも同様です。

新着

  • 起動高速化:ZIP版を含め、旧バージョンより起動が高速化します。
  • ナビゲーター:回転やスケール変更などの画像操作を行うナビゲーターパネルを新しく追加。
  • ナビゲーター:「基底スケール」設定を追加。ストレッチ適用サイズをさらに補正します。
  • ナビゲーター:「ページを移動しても回転を維持」等の設定をナビゲーターパネルに移動。
  • ナビゲーター:自動回転設定かつ回転の維持をONにしている場合、ブック読み込み時にその回転方向を強制するようにした。
  • スクリプト:JavaScriptでコマンドを拡張できるようになりました。詳細はスクリプマニュアルを参照してください。(ヘルプ > スクリプトヘルプ)
  • スクリプト:既定では無効化されており、使用するためには設定で有効にする必要があります。(設定 > スクリプト)
  • コマンド:「設定を保存」追加。
  • コマンド:「前の表示ページに戻る」「次の表示ページに進む」追加。ページ単位の内部履歴をたどります。
  • コマンド:「外部アプリで開く」コマンドパラメータのプログラムパスにNeeView自身を起動するためのキーワード "$NeeView" を追加。
  • コマンド:「ランダムなページに移動」追加。
  • コマンド:「ランダムなブックに移動」追加。
  • コマンド:「前のNeeViewに戻る」「次のNeeViewに進む」追加。複数起動時にNeeViewを切り替えます。
  • コマンド:「名前をつけてファイルに保存」画像保存ダイアログで登録されたフォルダーを選択できるようにした。
  • コマンド:N字スクロールのみの表示操作用コマンド「N字スクロール↑」「N字スクロール↓」追加。
  • コマンド:スクロール系のコマンドパラメータにスクロール時間設定を追加。
  • システム:名前順の並び替えに自然順を適用する設定追加。(設定 > 全般 > 自然な名前順)
  • システム:マウスクリックでウィンドウをアクティブ化したときのマウス操作を無効にする設定を追加。(設定 > ウィンドウ > マウスでウィンドウを~)
  • パネル項目:ダブルクリックでブックを開く設定追加。(設定 > パネル > ダブルクリックでブックを開く)
  • パネル項目:複数選択できるようにした。
  • パネル項目:リストのサムネイル表示やバナー表示でもポップアップ設定できるようにした。(設定 > パネルリスト項目 > * > アイコンのポップアップ)
  • パネル項目:リストのサムネイル表示でのホイールスクロール速度倍率設定を追加。(設定 > パネルリスト項目 > サムネイル表示でのマウスホイールスクロール倍率)
  • サムネイル:画像解像度設定を追加。(設定 > サムネイル > サムネイル画像解像度)
  • 本棚:現在開いているブックを示すオレンジ色のマークを追加。
  • 本棚:現在の項目数を表示する設定を追加。(設定 > 本棚 > 項目数を表示)
  • 本棚:Backキーで上位フォルダーに移動するショートカット削除。
  • 本棚:項目の種類を区別せずにソートする設定追加。(設定 > 本棚 > ファイルの種類を区別しない並び替え)
  • 本棚:既定の並び順設定「標準の既定の並び順」「プレイリストの~」「ブックマークの~」を追加。(設定 > 本棚)
  • 本棚、ページリスト:コンテキストメニューに「外部アプリで開く」を追加。
  • 本棚、ページリスト:コンテキストメニューに「フォルダーにコピー」を追加。
  • 本棚、ページリスト:コンテキストメニューに「フォルダーに移動」を追加。ファイルの移動ができるようにした。ファイル操作許可されている場合のみ有効。
  • 本棚、ページリスト:右ボタンドラッグに移動属性を追加。エクスプローラーにドロップすることでファイル移動できるようになる。 ファイル操作許可されている場合のみ有効。
  • ページリスト:移動ボタン追加。
  • ページリスト、ページマークリスト:画像ファイルを外部にドラッグできるようにした。
  • 履歴:現在ブックの場所の履歴のみを表示する設定を追加。(履歴パネルのメニュー > 現在のフォルダーのみ)
  • 履歴:無効な履歴を起動時に自動削除する設定を追加。(設定 > 履歴 > 無効な履歴を自動削除)
  • エフェクト:エフェクトパネルにトリミング設定追加。
  • エフェクト:「ドットのまま拡大する」の適用倍率設定を追加。(設定 > エフェクトパネル)
  • ルーペ:開始カーソル位置を画面中央にする設定追加。(設定 > ルーペ > 開始カーソル位置を画面中央にする)
  • ブック:ブック終端での先読みをページ送りの逆方向にも行うようにした。
  • ブック:ページ終端挙動に「ダイアログで確認」を追加。(設定 > 移動 > ページの終端を超えて移動しようとした時の挙動)
  • ブック:2ページ表示のときにページの終端にダミーページを表示する設定追加。(設定 > ブック > ダミーページを挿入する)
  • ブック:ブックが開けない場合の通知設定を追加。(設定 > 通知 > ブックにページがない場合にメッセージを表示する)
  • ブック:シャッフルしたときにページをリセットする設定を追加。(設定 > ブック > シャッフルしたときにページをリセット)
  • 画僧ドラッグ操作:「範囲を選択して拡大」を追加。(設定 > マウス操作 > ドラッグ操作設定)
  • 画像ドラッグ操作:拡大と同時に画面中央に移動するマウスドラッグ操作「拡大縮小(スライド式、中央寄せ)」を追加。(設定 > マウス操作 > ドラッグ操作設定)
  • 起動オプション:起動時にスクリプトを実行するオプション "--script" 追加。
  • 起動オプション:ウィンドウ状態を指定するオプション "--window" 追加。
  • 設定:検索ボックスの追加。
  • 設定:コマンド設定のリストに検索ボックス追加。
  • 設定:SVGの拡張子を設定できるようにした。(設定 > 対応形式 > SVGファイルの拡張子)
  • 設定:Susieプラグイン設定に「全有効/解除」ボタン追加。

変更

  • コマンド:ショートカット"Back","Shift+Back"の割当をページ履歴操作コマンドに変更。
  • コマンド:「スクロール+次のページに進む」「スクロール+前のページに戻る」コマンドのN字スクロールの挙動改善。移動の割合を均等にした。
  • コマンド:「スクロール+次のページに進む」「スクロール+前のページに戻る」コマンドパラメータに「ページ移動猶予(秒)」追加。あわせて「スクロール停止」フラグは廃止。
  • システム:エクスプローラーの削除確認ダイアログ挙動変更。ごみ箱にはいらないときのダイアログだけ表示するようにした。
  • システム:本棚等の内部履歴の上限が無制限だったのを100に変更。
  • 表示:ウィンドウサイズが変わったときに表示画像位置を調整しないようにした。
  • 表示:キャプションがメインビューに恒久的に表示される場合に画像が隠れないようにした。
  • パネル:パネルリストの左右キー操作を既定で無効にした。(設定 > パネル > サイドパネルでの左右キー有効)
  • 本棚:検索ボックスのレイアウト変更。検索設定は本棚パネルのメニューに移動。
  • サムネイル:キャッシュのフォーマットを変更。これまでのキャッシュは破棄されます。
  • サムネイル:キャッシュの保存場所をフォルダーのパスからファイルのパスに変更。
  • サムネイル:キャッシュの有効期限が設定可能にした。(設定 > サムネイル > サムネイルキャッシュの保存期間)
  • サムネイル:サムネイル画像解像度等の設定が変更された場合、異なる設定のキャッシュは自動的に再生成されるようにした。
  • ブック:透過画像の背景にチェック模様を指定できるようにした。(設定 > 対応形式 > 透過画像の背景をチェック模様にする)
  • ブック:標準画像ファイルの拡張子を編集できるようにした。(設定 > 対応形式 > 画像ファイルの拡張子)
  • ブックページ:操作感変更。ブックページ画像上でもジェスチャーが有効になるようにし、ダブルタッチでブックを開けるようにした。
  • ブックページ:レイアウト変更。フォルダーアイコン表示を削除。
  • ブックページ:画像のサイズ設定追加。(設定 > ブック > ブックページ画像サイズ)
  • Susie:64bitOS環境で "C:\Windows\System32" にSusieプラグインでアクセスできるようにした。
  • 起動オプション:フルスクリーオプション "-f" を廃止。
  • 設定:ページ表示設定をブック設定に統合、dip関係の設定を画像形式設定に移動。
  • 設定:設定ページの再編。「表示」項目を再編成し「ウィンドウ」「パネル」といったグループに再編。
  • 設定:外部アプリ設定を廃止、「外部アプリで開く」コマンドのコマンドパラメータで指定するように変更。プロトコル設定、区切り文字設定を削除。
  • 設定:クリップボード設定を廃止、「ファイルをコピー」コマンドのコマンドパラメータで指定するように変更。区切り文字設定を削除。
  • その他:「表示サイズ」を「ストレッチ」に名称変更。
  • その他:検索ボックス、アドレスバー等でのEscキーをコマンドショートカットとして受け付けるようにした。
  • その他:各種ライブラリ更新。
  • その他:細かなレイアウト修正。

修正

  • サムネイル画像作成失敗時にクラッシュする可能性のある不具合修正。
  • プレイリストの検索でクラッシュする不具合修正。プレイリストは検索に対応していないので無効化した。
  • サブフォルダーを含めてブックを開くときに開けない圧縮ファイルがあった場合にブックそのものが開けない不具合修正。そのファイルのみスキップするようにした。
  • 圧縮ファイルの名前変更に失敗する可能性のある不具合修正。
  • ウィンドウ最小化からの復帰で画像位置が変更される不具合修正。
  • その他細かな不具合修正。



再びパッケージを分けることになりました。x86版の需要ってあるのかな…。

2020年4月5日日曜日

.NET Framework の ネイティブイメージコンパイル

  • .NET Framework
ひさびさの技術情報です。

「ネイティブ イメージを使って .NET デスクトップ アプリを最適化する」 というものがあったので試してみました。

これまで .NET Framework のネイティブコンパイラといえば NGEN がありました。 ネイティブコードにコンパイルしたものをシステムのキャッシュに登録し、実行時にそのキャッシュを使うことで高速化する仕組みです。 ですが、扱いづらい部分もあって、NGENツールでコンパイルしてシステムのキャッシュに登録するという処理が必要なためにインストール時に処理ができるMSIパッケージ等でしか実用できませんでした。 あと、フレームワークが更新されるとキャッシュが無効になるという問題もありました。

新しいネイティブイメージコンパイラはそのあたりの懸案が解消されます。 ビルド時にネイティブコンパイルも行い、実行ファイルの中にネイディブコードを埋め込みます。このため、ZIPパッケージやストアアプリでも恩恵を受けることができます。 欠点としては、アーキテクチャをx86,x64どちらかに限定してビルドしないといけないこと、ネイティブコードの分実行ファイルのサイズが大きくなること、でしょうか。

試してみた


試しにNeeViewをネイティブイメージコンパイラに対応させて検証してみました。起動からウィンドウ表示までの時間を複数回計測します。
# Default NeeView.exe size : 2,552KB App.MainWndow.Loaded.Done: 1735ms App.MainWndow.Loaded.Done: 1697ms App.MainWndow.Loaded.Done: 1728ms
# with Native Image Compiler NeeView.exe size : 5,420KB App.MainWndow.Loaded.Done: 1070ms App.MainWndow.Loaded.Done: 1028ms App.MainWndow.Loaded.Done: 1047ms
ファイルサイズは倍増しましたが、起動速度は3割ほど早くなりました。結構効いてますね。 数回起動してコンパイル済みキャッシュが効いている状態なので、初回起動時ならこの差はもっと大きくなると予想されます。

導入の注意点


「ネイティブ イメージを使って .NET デスクトップ アプリを最適化する」 を参照して導入すればいいのですが、いくつか注意点があります。
  • PowerShellでNugetインストールするとあるが、そのPowershellはパッケージマネージャーコンソールのことである(ツール > NuGetパッケージマネージャー > パッケージマネージャーコンソール)。通常のNugetパッケージのようにプロジェクトのNugetパッケージ管理からインストールしても良い。実行ファイルのプロジェクトだけで良い。
  • デフォルトのビルドログは省略されているので、オプションの「ビルド/実行」でビルド出力/ログを最小以上にする。これで "Native image ~ generated successfully" が確認できる。
  • VisualStudioから実行するとネイティブコンパイルされてないバイナリに置き換わってしまう?

2020年3月28日土曜日

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

  • .NET Framework 4.7.2
  • WPF
画像ビューアー NeeView を 36.2 に更新しました。
不具合修正のみとなります。

36.2

(2020-03-28)

修正

  • 7zを使用した読み込みでCOM例外が発生することがある不具合修正
  • 起動引数としてプレイリストを指定したときに本棚として開かれていなかった不具合修正
  • ウィンドウ最小化から復帰した時にキーボードフォーカスが失われることがある不具合修正
  • 本棚をサムネイル表示にしているときの名前変更でポップアップが機能していた不具合修正


2020年3月7日土曜日

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

  • .NET Framework 4.7.2
  • WPF
画像ビューアー NeeView を 36.1 に更新しました。
不具合修正が主な更新です。

36.1

(2020-03-07)

変更

  • インストーラー版でインストール時にコンテキストメニュー追加が選択できるようになりました
  • 削除確認ダイアログが二重に表示されることがあるため、ファイル削除時のエクスプローラー確認ダイアログ表示を設定にした (設定 > 全般 > ファイル削除時にエクスプローラーの確認ダイアログを表示する)
  • 情報パネル、エフェクトパネルにTAB移動したときのフォーカス表示を削除

修正

  • 「パネルを一時的に表示する」コマンドが機能していない不具合修正
  • ハイコントラストモードでメニューが読めなくなる不具合修正

2020年2月29日土曜日

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

  • .NET Framework 4.7.2
  • WPF
画像ビューアー NeeView を 36.0 に更新しました。
しばらくぶりですが、地味めな更新です。

36.0

(2020-02-29)

新着

  • ウィンドウ最大化でのギャップ調整設定追加 (設定 > 表示 > タイトルバー非表示でのウィンドウ最大化のギャップ調整)
  • エクスプローラーのコンテキストメニュー「NeeViewで開く」を追加する設定追加 (設定 > 全般 > エクスプローラーのコンテキストメニューに登録)
    • インストーラー版ではインストール時に自動設定されます。ストアアプリ版は非対応です。
  • 「メインビューにフォーカスを移す」コマンド追加
  • ページ表示ログ出力機能追加 (設定 > ページ表示記録)
  • ごみ箱に対して大きすぎるファイルの削除時に完全削除の確認ダイアログを表示するようにした
  • 圧縮ファイル中の動画再生対応。テンポラリに出力して再生する
  • メニューの項目を右クリックすることで直接コマンドパラメータ設定ウィンドウを呼び出せるようにした
  • 「ファイルに保存(Shift+Ctrl+S)」コマンド追加。コマンドパラメーターに設定した情報で直接保存を実行する。重複ファイル名は連番をつけて回避される

変更

  • パネル等を自動で隠す機能の刷新 (設定 > 表示 > 自動非表示パネル)
  • フィルムストリップの表示ONにしたときにフォーカス移動するようにした
  • ファイル情報パネル:「日付」をファイル日付と撮影日時に分離。これに伴い「EXIFの日付を使用する」設定廃止
  • コマンドによるブック削除の挙動を本棚からの削除に近づけた
  • プレイリストから開いたブックも削除可能にした。プレイリストデータは変更されないがファイルが存在しないため結果としてリストには表示されなくなる
  • 初期ウィンドウサイズをシステム依存に変更
  • フルスクリーンにする前のウィンドウ状態を保存するようにした
  • フォーカスのTABキー移動の整備
  • 除外するフォルダー判定で大文字小文字を区別しないようにした
  • 右ボタンドラッグを他のドラッグ操作に割り当てられるようにした
  • 自動再帰判定は通常のフォルダーに対してのみ行うようにした
  • 「履歴全般」の本棚関連の設定を「本棚」ページに移動。 「本棚の場所を復元する」設定を分離し「起動設定」ページに追加
  • 設定ウィンドウのツリー項目の親と最初の子の表示が同じなので、親のページのみにした。
  • 「名前をつけてファイルに保存」コマンドの刷新。「表示を保存」で拡大回転等を反映させた表示のままの画像を出力する
  • Susie接続タイムアウトを30秒から1秒に変更し、10回リトライするようにした
  • 各種ライブラリの更新

修正

  • 通知を「小さく表示する」にしたときに繰り返されたメッセージが表示されない不具合修正
  • 拡大縮小の中心が「カーソル位置」のときのドラッグ操作「拡大縮小」不具合修正
  • フルスクリーン状態を復元する設定が機能しないことがある不具合修正
  • GIFファイルのショートカットがアニメーションしない不具合修正
  • フルスクリーン時にタスクバーが隠れない事がある不具合修正
  • 表示スケールが100%でないディスプレイでページ送り時にリサイズ処理が余分に実行される不具合修正
  • フォルダ名の大文字小文字のみの名前変更ができない不具合修正
  • 2ページ間の距離を設定しているときに不正終了することがある不具合修正
  • タブレットモードでフルスクリーンを解除したときにウィンドウが最大化されないことがある不具合修正
  • 回転スナップ値が大きいときにコマンドでの回転ができないことがある不具合修正
  • マルチディスプレイでウィンドウ最大化時に隣のウィンドウにはみだずことがある現象修正
  • 多重起動禁止で引数無しで多重起動しようとしたときにウィンドウがアクティブにならい不具合修正
  • ショートカットキーPageDownのメニュー表記がNextになっている不具合修正
  • フルスクリーンを再度設定しようとしたときの余分なウィンドウ状態変化を抑制



2019年7月20日土曜日

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

  • .NET Framework 4.7.2
  • WPF
画像ビューアー NeeView を 35.1 に更新しました。
不具合修正のみとなります。

35.1

(2019-07-20)

不具合修正

  • ウィンドウ最大化の時に隙間ができることがある不具合修正
  • 複数起動時にページマークがうまく反映されない不具合修正