CustomScript

2016年10月23日日曜日

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

  • WPF
画像ビューアー NeeView を 1.17 に更新しました。
エフェクトパネルの追加、起動時間の改善(インストーラー版のみ)が主な更新となります。

フォルダー構成が変更されています。Zip版で更新される場合は、下記「Zip版の更新についての注意」をお読みください。

  • 起動時間の改善(インストーラー版のみ)
  • エフェクトパネル
    • 表示>エフェクトパネル(E) で右パネルにエフェクトパネルが表示されます
      • パネルからエフェクトを選択することでエフェクトが適用されます
    • 設定ウィンドウ>表示設定>エフェクト
      • 「前回使用していたエフェクトを復元する」設定追加
      • 「色設定をHSVで行う」設定追加
    • 「グレイスケール」は廃止されました。エフェクトの「モノクローム」が代わりになります
  • 7z.dll
    • ver 16.04 に更新
    • 設定ウィンドウ>詳細設定に「7z.dll(32bit)の場所」追加。使用する7z.dllのパスを変更可能。
  • その他
    • フォルダ構成変更。dll類をLibrariesフォルダに移動
    • ページスライダー自動非表示をメニュー非表示設定から独立
    • 「スクロール↑(↓)」コマンドに移動量割合設定追加。
    • 「スクロール+前のページ(次のページ)」の縦スクロール対応。設定追加。
    • インストーラー版のショートカットをトップレベルに変更

Zip版の更新についての注意

フォルダ構成が変わりました。このため上書き更新はできません。
設定を引き継ぐには、全ての設定ファイル(全てのxmlファイル。UserSetting.xml,History.xml,Bookmark.xmk,Pagekmark.xml)を新しい1.17のフォルダ(NeeView.exeと同じ場所)にコピーしてください。
(インストーラー版はそのままインストールしても問題なく更新されます)

起動時間の改善について

.Netアプリケーションは、起動時にネイティブコードに変換する処理が行われるため起動が遅くなる傾向があります。
1.17のインストーラー版では、ngenを使用して変換済みネイティブコードもインストールすることで起動を高速化させています。
インストールという処理が必要なため、Zip版では未対応となります。

エフェクトについて

エフェクトはシェーダーで実装され、リアルタイムで適用されています。このためアニメーションGIFにも効果があります。
.Net標準で用意されているエフェクトを主に組み込んでいます。非実用的なエフェクトが多いかと思われますが賑やかしということで。(汗
パッケージサイズが増えたのは主にこのエフェクト用のdllを組み込んだことによります。

24 件のコメント:

  1. ver.1.17にアップしました。

    Zip版を利用しているので、高速化の恩恵にはあずかれないらしいですが、
    エフェクトは遊ばしてもらいました。カラートーンは、漫画雑誌のような
    効果が得られるようなので、偶には気分を変えてという感じで使わせてい
    ただきます。

    尚、
    >.Netアプリケーションはその性質上起動時間が長くなる
    >皆さんはどのくらいの起動時間なんでしょう?

    Zip版で計ってみましたが、画像(200枚程度)の所在がRar/フォルダの何れで
    も、画像が出るまで3秒弱でした。Windows7(32Bit)/.NET Framework4.6.2/
    Core2DuoE8400/SSDです。かなり古い環境ですから、遅いのかもしれませんが、
    Nee様のおっしゃるとおり、.Netアプリケーションは起動がもたつくので、こ
    んなものと思っています。

    返信削除
    返信
    1. 誤解を与えそうなので、補足しておきますと、機動までの時間は、
      rar/フォルダをコンテキストメニューに私が登録している
      FileMenu ToolsというソフトからNeeViewへ送っての時間です。

      NeeViewを立ち上げるだけの場合は、1~2秒程度で、又、当然なが
      ら、NeeViewが起動した状態からの場合、瞬時に開けます。

      削除
    2. NeeViewのご利用ありがとうございます。
      エフェクトは今回でバリエーションを増やす下地ができてきた感じなので、あとはシェーダが書ければ増やせそうです。…シェーダが書ければ(血

      > 画像が出るまで3秒弱

      情報ありがとうございます。
      SSDによる効果が大きそうですね。

      削除
  2. 前回「ver.1.16」にて、アプリの起動時間が遅いを投稿したものですが、
    この度「ver.1.17」がUPされていたのを確認したので、早速入れて見たところ、
    体感的に起動時間が前バージョンよりかは若干早い事を確認致しました。
    起動後の各圧縮ファイル等も同じく体感的に早い感じで起動も出来ています。
    個人的には概ね良好です。

    返信削除
    返信
    1. ご報告ありがとうございます。少しでも効果があったようで良かったです。

      今回の対策はHDDにより負担がかかる(キャッシュの読み込みが増える)処理のため、環境によっては効果がなかったり逆に遅くなることもあるという情報を後から入手していたので少し心配でした;

      削除
  3. 1.13からアップデートしてみたところ、すごく使いやすくなっていると感じました。
    LeeyesやHoneyViewを卒業してメインのビューアにしています。
    要望です。
    ・90°単位の回転の際に、回転したサイズでウィンドウに合わせるような設定
    ・その際、2ページ表示だった場合、回転した単ページが横長の場合に1ページ表示になるような設定
    が欲しいと思いました。
    Leeyesの回転時の挙動なんですが、これが快適で便利だったので、なにとぞご考慮願います。

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

      削除
  4. このコメントは投稿者によって削除されました。

    返信削除
  5. 1.17からNeeViewを初めて使わせて頂きました
    画像閲覧が使いやすくなり助かっております

    ここ数日、使用してみまして、私の使い方であると便利と思った機能は

    ・サブフォルダが2つ以上ある時に、デフォルトの設定で画像が読み込める

    フォルダ01 ←このフォルダをドラッグでNeeViewに読み込ませる
     ├ フォルダ02
     ├ フォルダ03
    このようなフォルダ構成のものを読み込もうとすると、"メニュー→その他→設定"の、
    どの項目を選択しましても、読み込むことができずに、
    "メニュー→ページ→サブフォルダを読み込む"を選択することで2つのサブフォルダの
    画像を読み込むことができますが、デフォルト設定でONに出来ずに、
    そのたびに選択する必要があります
    また、
    フォルダ01 ←このフォルダをドラッグでNeeViewに読み込ませる
     ├ 画像ファイル
     ├ フォルダ02
    という、フォルダ構成でもフォルダ02の画像が読み込めるデフォルト設定がありませんでした

    ・最小化、最大化がコマンド設定で設定することができる
    最小化、最大化(右上の-と□の機能)がコマンド設定で設定できると
    マウス操作が楽になると思いました

    ・フルスクリーン表示でスライダースクロールした時にも、
    非フルスクリーン時のタイトルバーにある
    (現在のページ数/読み込んだファイル数)の様な表記が見ることが出来ると
    スクロールが更に便利だと思いました

    長文の要望を書かせていただきましたが、
    確認したつりではありますが、既に出来る、
    設定が誤っている等あれば申し訳ございません

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

      ・サブフォルダが2つ以上ある時に、デフォルトの設定で画像が読み込めない
      こちらですが、例えばドライブCを開いた場合にドライブの全てのファイルを検索してしまうため、デフォルトでは複数サブフォルダを取り込まないようにしております。なにか良い実装方法がないか検討してみます。

      ・最小化、最大化がコマンド設定で設定することができる
      ・フルスクリーン表示でスライダースクロールした時にもタイトルバーの情報を表示する
      実装を検討させていただきます。

      削除
  6. nee様へ

     初めまして。先ほどNeeViewを見付けて使い始めたばかりです。
    いままでLeeyesを使っていましたが、Leeyesに近い作り・機能が豊富・
    不具合が見付けられないのでNeeViewへ切り替えることになると思います。

     自分が知っている限りどのビューワでも実装されていない機能で
    是非とも加えていただきたいものがあります。3ページ以上の同時表示です。
    16:9モニタなら縦画像を横に3枚、ウルトラワイドモニタならそれ以上の枚数を
    同時表示しても快適に閲覧できると思います。横画像と縦画像が混在した際の
    処理や表示枚数を設定する操作系の選定など難しいところもあると思いますが、
    表示枚数を増やすだけなら極端に難しいものでもないかと考えてしまいます。
    先ずはご検討いただければ幸いです。

     自分はほかのアプリでもウィンドウの最大化・最小化やアプリの終了を
    左手キーパッドに入れることがあります。NeeViewでの複数のキーストロークを
    マクロとしてどこかのキーに割り振れるといった機能があれば
    キーバインドの自由度が上がるのではないでしょうか。ウィンドウの最大化・最小化も
    それで実現できるかもしれません。

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

      削除
  7. お世話になります。NeeView1.17を使わせていただきました。
    これまでLeeyesをメインに使用してきまして、Leeyesとの操作性の違いに戸惑いつつも色々と設定を弄る等して試行錯誤しながら使用していますが、使用感は概ね良好、特に不具合等は発生せずに快適に使用できそうだと感じています。

    使用するにあたり、いくつか感じた点を要望として記載させていただきたく思います。

    ・履歴等の保存設定について
    詳細設定で「履歴、ブックマーク、ページマークを保存しない」という設定がありますが、「履歴」「ブックマーク」「ページマーク」それぞれ個別に保存する/しないの選択ができるようになると使い勝手がより向上すると思います。(個人的には、ブックマークは保存したいが、履歴については保存する必要はないと感じている)
    また、履歴についてですが、最後に開いていたページ位置は保存しないように設定できるとありがたいです。(過去にアクセスしたフォルダ・書庫の情報は履歴に残っていても構わないが、フォルダを開く際には1ページ目から表示されるようにしたい)

    ・起動時に開くフォルダについて
    起動時に開くフォルダをユーザーの側で指定できるような設定があるとありがたいです。

    ・ブックマーク・ページマークの整理・カスタマイズについて
    ブックマーク・ページマークを、Leeyesの「本棚」の機能のようにフォルダ等でグループ分けして整理できるようになれば便利になると思います。

    上記誠に勝手な要望かと思いますが、よろしければ検討していただけると幸いです。既に実装されている機能でしたらご容赦ください。

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

      > 操作性の違いに戸惑いつつも
      他のビューアだとホイールでのページ送りが主流だったりしますしね。
      プリセットみたいなものをそのうち用意できればと考えています。

      削除
  8. こんにちは。
    neeview導入しましたが、以下のエラーが出るため起動しません。
    他の人は動作しているようなのでこちらの問題と思いますが、何かわかりますでしょうか?
    環境:Win10の64bit+パッチ全適

    以下エラーログです。

    2016/11/13 9:52:48

    ExceptionType:
    System.Windows.Markup.XamlParseException
    ExceptionMessage:
    プロパティ 'System.Windows.FrameworkElement.Style' の Set で例外がスローされました。
    ExceptionStackTrace:
    場所 System.Windows.Markup.WpfXamlLoader.Load(XamlReader xamlReader, IXamlObjectWriterFactory writerFactory, Boolean skipJournaledProperties, Object rootObject, XamlObjectWriterSettings settings, Uri baseUri)
    場所 System.Windows.Markup.WpfXamlLoader.LoadBaml(XamlReader xamlReader, Boolean skipJournaledProperties, Object rootObject, XamlAccessLevel accessLevel, Uri baseUri)
    場所 System.Windows.Markup.XamlReader.LoadBaml(Stream stream, ParserContext parserContext, Object parent, Boolean closeStream)
    場所 System.Windows.Application.LoadComponent(Object component, Uri resourceLocator)
    場所 NeeView.MainWindow.InitializeComponent()
    場所 NeeView.MainWindow..ctor()
    場所 NeeView.App.Application_Startup(Object sender, StartupEventArgs e)
    場所 System.Windows.Application.OnStartup(StartupEventArgs e)
    場所 System.Windows.Application.<.ctor>b__1_0(Object unused)
    場所 System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
    場所 System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)

    Max4096文字のようなので、残りは別にします。

    返信削除
  9. 以下残りのエラーログです。

    -------- InnerException --------

    ExceptionType:
    System.FormatException
    ExceptionMessage:
    入力文字列の形式が正しくありません。
    ExceptionStackTrace:
    場所 System.Number.ParseDouble(String value, NumberStyles options, NumberFormatInfo numfmt)
    場所 NeeView.IsLessThanConverter.Convert(Object value, Type targetType, Object parameter, CultureInfo culture)
    場所 System.Windows.Data.BindingExpression.TransferValue(Object newValue, Boolean isASubPropertyChange)
    場所 System.Windows.Data.BindingExpression.Activate(Object item)
    場所 System.Windows.Data.BindingExpression.AttachToContext(AttachAttempt attempt)
    場所 System.Windows.Data.BindingExpression.AttachOverride(DependencyObject target, DependencyProperty dp)
    場所 System.Windows.Data.BindingExpressionBase.Attach(DependencyObject target, DependencyProperty dp)
    場所 System.Windows.StyleHelper.GetDataTriggerValue(UncommonField`1 dataField, DependencyObject container, BindingBase binding)
    場所 System.Windows.StyleHelper.GetChildValueHelper(UncommonField`1 dataField, ItemStructList`1& valueLookupList, DependencyProperty dp, DependencyObject container, FrameworkObject child, Int32 childIndex, Boolean styleLookup, EffectiveValueEntry& entry, ValueLookupType& sourceType, FrameworkElementFactory templateRoot)
    場所 System.Windows.StyleHelper.GetChildValue(UncommonField`1 dataField, DependencyObject container, Int32 childIndex, FrameworkObject child, DependencyProperty dp, FrugalStructList`1& childRecordFromChildIndex, EffectiveValueEntry& entry, ValueLookupType& sourceType, FrameworkElementFactory templateRoot)
    場所 System.Windows.StyleHelper.GetValueFromStyleOrTemplate(FrameworkObject fo, DependencyProperty dp, EffectiveValueEntry& entry)
    場所 System.Windows.StyleHelper.ApplyStyleOrTemplateValue(FrameworkObject fo, DependencyProperty dp)
    場所 System.Windows.StyleHelper.InvalidateContainerDependents(DependencyObject container, FrugalStructList`1& exclusionContainerDependents, FrugalStructList`1& oldContainerDependents, FrugalStructList`1& newContainerDependents)
    場所 System.Windows.StyleHelper.DoStyleInvalidations(FrameworkElement fe, FrameworkContentElement fce, Style oldStyle, Style newStyle)
    場所 System.Windows.StyleHelper.UpdateStyleCache(FrameworkElement fe, FrameworkContentElement fce, Style oldStyle, Style newStyle, Style& styleCache)
    場所 System.Windows.FrameworkElement.OnStyleChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
    場所 System.Windows.DependencyObject.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
    場所 System.Windows.FrameworkElement.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
    場所 System.Windows.DependencyObject.NotifyPropertyChange(DependencyPropertyChangedEventArgs args)
    場所 System.Windows.DependencyObject.UpdateEffectiveValue(EntryIndex entryIndex, DependencyProperty dp, PropertyMetadata metadata, EffectiveValueEntry oldEntry, EffectiveValueEntry& newEntry, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType)
    場所 System.Windows.DependencyObject.SetValueCommon(DependencyProperty dp, Object value, PropertyMetadata metadata, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType, Boolean isInternal)
    場所 System.Windows.Baml2006.WpfKnownMemberInvoker.SetValue(Object instance, Object value)
    場所 MS.Internal.Xaml.Runtime.ClrObjectRuntime.SetValue(XamlMember member, Object obj, Object value)
    場所 MS.Internal.Xaml.Runtime.ClrObjectRuntime.SetValue(Object inst, XamlMember property, Object value)

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

      いただいた情報から、エラーが発生している箇所は判明しましたが、ここでエラーになる原因が特定できておりません。

      次期バージョンでこの箇所でエラーにならない対策を施す予定ですが、
      原因不明のため他の箇所で不具合が起こりうる可能性があります。

      Windows10とのことですので.Netバージョンの差異とも考えにくいです。
      対策の目処がたてられず申し訳ありません。

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

      役に立つかどうかわかりませんが、追加情報を記載します。
      今エラーが出るPCは、Vista→Win8→Win10とupgradeしたOSです。
      別のWin10のPC(UG無し)だと、エラーが出ず起動する事を確認しました。
      MBは違いますがCPUは同じなので、違いはOSのUGの有無くらいだと思います。

      削除
  10. NeeView1.17を使わせていただきました。
    当方、目的に応じて複数のビューアを使い分けてまして(サムネイルでの簡易的なフォルダ内容確認にUnifieとVieasの組み合わせ、見開き画像閲覧とフォルダのグループ分け管理にLeeyes、等)、NeeViewもどのように活用できるか模索しながら(今後の発展も楽しみにしながら)利用していきたいと思います。

    恐縮ですが、こういった機能があると面白いな、と感じた事を記載させていただきたいと思います。

    ・タグを利用したフォルダや書庫、画像ファイル管理の機能
    ・ファイルやフォルダに対して評価する機能(一部音楽プレイヤー等に見られる、星の数で評価して星の数に基づいたファイル検索・一覧表示できる機能のようなイメージ)

    「こんな要望もあったよな」程度の認識を頭の片隅にでも残しておいていただけると幸いです。

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

      削除
  11. 気になった点をひとつ、
    全画面で左長押しでルーペ状態で上下に移動するとメニューやページバーが出るのが気になります。
    ドラッグ状態で上下メニューやバーを操作はできないのでルーペ中は非表示のほうがいいと思いました。

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

      削除
  12. 要望になるのですが
    ・フォルダリストを表示方法をツリー形式に変更してもらいたいです。
    ・ページリストをフォルダリストで選択したフォルダの下位フォルダを表示できるようにファイルリストに変更もしくは追加してもらいたいです。
    ・上記リストでのフォルダとファイルのリネーム機能を追加してもらいたいです。
    ・ブックマークリストが現在の表示方法だとフォルダリストと共存できない為ブックマークバーに変更かレイアウトの自由変更をできるようにしてもらいたいです。

    フォルダリストとファイルリストに関しては可能であれば対応をお願いしたい要望なのですが、
    ブックマークリストとリネーム機能にに関してはぜひ検討してもらいたいです。

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

      削除