投稿

ラベル(新着情報)が付いた投稿を表示しています

フリーウェア) 更新情報 Juice ver.4.4.7 公開

イメージ
サブフォルダ付きの巨大書庫を効率的に扱う方法を模索しました。 サブフォルダの最初の一枚目を表紙として扱うタブを追加して、サブフォルダだけを解凍するボタンを配置しました。 巨大な書庫を全て開かなくてもおおよその見当をつけて効率的に書庫を閲覧できるようになったと思います。 書庫をディスクに解凍した時の初期化タイミングが間違っていました。 別の書庫を解凍し直した時に結果が空になるバクがありました。 初期化タイミングを変更してその問題を修正しました。 書庫一覧の作り方を変えました。 メモリ使用量を減らしたので1000を超える書庫が置かれているフォルダも軽快に開けるようになりました。 お楽しみください。 今回の更新項目: ◆新機能 ・サブフォルダの最初の一枚を表示するサブフォルダ機能を追加 ・サブフォルダだけを解凍する部分解凍を追加 ◆改良 ・書庫一覧の読み込み速度を向上させた ・書庫一覧のメモリ使用量を縮小させ1000を超えるフォルダでも問題無く開けるようにした ◆バグ修正 ・ディスクへ解凍を使っている時に書庫を開きなおすと解凍結果が消える問題を修正した ◆ドキュメント ・ヘルプに新機能の項目を追記 書庫一覧 サブフォルダ

フリーウェア) 更新情報 Juice ver.4.4.6 公開

イメージ
今回は大きな機能追加を行いました。 書庫ファイルがあるフォルダを開き、そこにある書庫の表紙一覧を表示する機能を追加しました。 この機能を実現する「書庫一覧」タブを追加しました。 表紙を確認して書庫一覧から開きたい書庫を選べるようになりました。 書庫の最初の画像を表紙として登録するので内容が予測できるはずです。 書庫探しの一助になると思います。 この機能を追加した事で起動時の見た目が分かれる事になりました。 書庫やフォルダやファイルを指定しないでJuiceを起動すると、書庫一覧タブが選択された状態で起動します。 「書庫フォルダを開く」ボタンを押せば書庫を選択可能なダイアログが開くので直ぐに書庫探しを始める事ができます。 書庫やフォルダを指定してJuiceを起動した場合は、これまでと変わらず「詳細一覧」にファイルリストが表示された状態で起動します。 書庫一覧を追加したので内部的にJuiceをListモードとViwerモードに分けて扱う事になりました。 メニューを「ファイル」「操作」「ヘルプ」に分けました。 「操作」の中にある「多窓操作」に「Viewerを全て閉じる」や「Listを全て閉じる」があります。 ここで言っているViewerとは書庫やフォルダを指定して起動したJuiceの事です。 Listは書庫やフォルダを指定しないで起動したJuiceの事です。 使い方としてはListモードのJuiceで書庫一覧を開いて、そこから見たい書庫を開く事を想定しています。 見たい書庫を選択してから「開く」を押すと、別のJuiceが起動して書庫を開きます。 書庫を開いたJuiceがViewerモードとなります。 恐らくユーザーの皆さんは大量の書庫をお持ちだろうから閲覧を快適にできると思います。 お楽しみください。 今回の修正項目: ◆新機能 ・画像ファイルをまとめた書庫(ZIP/CBZ)の1枚目画像を一覧表示する機能を追加 ・List / Viewer モードから他の Juice を操作できるメニューを追加 (ピン止め解除・閉じる・最前面化) ◆UI改善 ・フレーム無しウィンドウの右上に小さな閉じるボタンを追加 ・ボタンのキャプション変更。「しおりを挿む」から「しおりを保存」に変更 ・しおりファイルをどうするか確認す...

フリーウェア) 更新情報 Juice ver.4.4.5 公開

イメージ
今回の主要な更新はwebp対応です。 他にも二つの改修を行いました。 以下更新項目です。 ・Webp形式に対応させた。 ・検索の「解除」ボタンを押したら「画像を開く」ボタンにフォーカスが移動するようにした。 ・表示する画像データを保持するコンテナを共通化した。 Webp形式の画像を開けるようになったぜ! やったー!!って事です。 ただねーvectorからリリースされてからファイル選択ダイアログにwebpを追加するのを忘れた事に気付いたんだよね。 だからファイル選択ダイアログからはwebpを開けません。 ごめんよー webp拡張子をJuiceで開けるようにするか、Juiceのメインウィンドウにwebpファイルをドロップすれば開けるから暫くそれで利用しておいて。 zipファイルに含まれるwebpは問題無く開けるから安心して。 次のリリースは近日中に行うので暫くご不便をおかけするけど待っててね。 Juiceが使い易くなる機能を追加するので期待しててね。 遅くとも8月中にはリリースできるから。 お楽しみください❤

フリーウェア) 更新情報 Juice ver.4.4.4 公開

イメージ
今回の更新はサムネイル機能の使用感を向上させるのが目的です。 全てのサムネイルを作成してから登録する方針は変っていません。 作りながら登録するって方法も検討はしましたが・・・ 見えている範囲だけを作るとしたら、スクロールする度に作り直しにならない? それを避ける為に一度作ったサムネイルを取っておくとしたら、最初に全て作るのと大差ないのでは? と思ったのでこれまで通り最初に全てのサムネイルを作ってから見えている範囲を登録する事にしました。 この見えている範囲ってのが今回の更新の肝です。 以下更新項目です。 ・サムネイル作成処理を変更。 ・サムネイル登録処理を変更。 ・画像を表示する処理を改善。 それぞれ説明するね。 1番目の「サムネイル作成処理を変更」について・・・ これまではメモリに作成する場合とディスクに作成する場合でコードを分けていました。 が、間抜けなことにStreamを介せばメモリに作る場合とディスクに作る場合で同じコードが使える事に気付いちゃったんだよねー そこで共通化しました。 これまでもディスクに作る場合は画像のアスペクト比を守っていたのでそこは採用しました。 まあ出来上がりが綺麗になるので当然だよね。 その結果メモリに作る場合とディスクに作る場合で同じサムネイルが作成される事となりました。 最初からそうしておけよ!!と思わなくもないけどね、ごめんよー 2番目の「サムネイル登録処理を変更」について・・・ これが今回のハイライトだよ。 これまではダイアログにプログレスバーを出してシーケンシャルに登録していました。 登録が終わるまで動かせない。 個人的にはプログレスバーが動くのは好きなんだけどね・・・カッコいいし。 更に作成した全てのサムネイルを登録するので登録枚数が多すぎると完全な登録ができなくなるって問題を抱えていました。 これはサムネイルを登録しているImageListの仕様みたいなんだけど、登録枚数に制限があるみたいなんだよ。 それを突破する為に見えている範囲と少しの予備だけを登録する方式に変更しました。 さらに非同期処理を使って登録が終わるまでプログレスバーで操作を制限するのもやめました。 これにより作成が終わったらすぐに動かせるようになりました。 見えている範囲のサムネイル...

フリーウェア) 更新情報 Juice ver.4.4.3 公開

イメージ
動作環境を変えたので今回は大きな変更となります。 動作環境を.NET Frameworkから.NETに変更しました。 そろそろ変えなきゃな-と思ってたので頑張りました。 合わせて自己完結型のexeにしたので動作に必要なランタイムライブラリを別途用意する必要がなくなりました。 やったね❤ インストーラの提供もやめたので、取得したzipを解凍すれば使えるようになります。 さらにやったね❤❤ その他、細かい機能の追加を行いました。 まあ分かり易くなることを期待した変更っす。 楽しんでください❤❤❤ [ 変更点 ] ・動作環境を.NET10に変更した。 ・動作に必要なランタイムを含む自己完結型のexeにした。 ・プログレスバーダイアログに動作対象の書庫ファイル名またはフォルダ名を表示するようにした。 ・アイコンを変更した。 ・言語設定を保存できるようにした。 ・ユーザーが設定した言語設定が存在する場合は、ユーザーが設定した言語で起動するようにした。 ・タイマーの扱い方を変更した。 ・インストーラの提供をやめて書庫ファイルを解凍すれば使えるようにした。 ・動作環境を.NET10にした事でC#のバージョンがあがったので新しい言語機能を使うようにした。 ・ディスクに解凍する設定の時だけ機能する「解凍先を開く」ボタンを追加した。 ・追加した機能の解説をヘルプに追記した。

フリーウェア) 更新情報 Juice ver.4.4.2 公開

イメージ
今回は機能の実現方法を変更しました。 前のバージョンで搭載したファイルヘッダをよんで登録ファイルを決める機能が遅すぎたので処理方法を変更しました。 単純なループ処理で実現していたのですがループ処理を並列化して速度を向上させました。 少ないファイル数(1000枚以下)の書庫ファイルやフォルダを読み込ませた場合でも効果がみられます。 ファイル数が大量(5000枚以上)の場合は劇的な効果がみられます。 並列処理に変えたのでエラーを報告するように設定している場合ダイアログが表示されるタイミングが変化しています。 登録確認中に次々とダイアログが表示されますが全てのダイアログを閉じれば処理を進める事ができます。 楽しんでください❤ [ 変更点 ] ・表示する画像ファイルの登録処理を高速化

フリーウェア) 更新情報 Juice ver.4.4.1 公開

イメージ
今回は機能追加、バグ修正、機能の実現方法の変更を行いました。 [ 機能追加 ] ・アイコンファイルを表示可能にしました。 アイコンファイルを表示できるように画像データを保持するクラスを拡張しました。 具体的にはアイコンデータを保持する変数とそれ以外の画像を保持する変数を用意しました。 どちらかのデータを保持するようになっています。 [ バグ修正 ] ・フレーム無しウィンドウで画像を表示している時に再描画できなかった問題に対処しました。 マルチモニター環境ではフレーム無しウィンドウを表示中では最小化できるので再描画処理が必要でした。 これまでは画像を表示したら画像データを破棄してたので再描画させると黒画面になっていました。 再描画用に画像を保持するように変更しました。 画像データの削除は表示する画像データを入れ替えている関数に移動させました。 ・アラビア語だけ文言の表記順を変えてたんですが他の言語と同じにしました。 ver.4.4.0で修正漏れしていたので対処しました。 [ 機能の実現方法の変更 ] ・描画処理を単純化する為にウィンドウの大きさを決める処理の実行タイミングを変更しました。 画像ウィンドウのサイズを設定する処理を初回表示で呼び出される関数に移動しました。 これにより描画関数の複雑さが解消されました。 ・表示可能な画像ファイルか判定する処理を変更しました。 ファイルヘッダーを読み込んでGDIで表示できるか確認しています。 これによって拡張子がない画像ファイルも表示できるようになりました。 表示できないファイルはファイルリストに登録されなくなったので表示エラーは出なくなった筈です。 もし表示に失敗するのならファイルが壊れている可能性が大です。 ・画像ファイルの情報を表示する単位文字列を読み易く変更しました。 データ項目名と区切り文字の間にスペースを入れたので見易くなった筈です。 [ 修正内容 ] ・画像情報の単位文字列を見易くした。 ・画像データを入れ替える時に既存の画像データを破棄するようにした。 ・マルチモニター環境では最小化できるので再描画に画像データが必要になる。描画直後に画像データを削除するのを止める。 ・初回表示で画像を表示するウィンドウの大きさを指定するようにした。画像...

フリーウェア) 更新情報 Juice ver.4.4.0 公開

イメージ
今回は処理内容の改良を行いました。 [ 表示内容の変更 ] ・プログレスダイアログの進捗表示で数字と%の間のスペースを削除した。 ・プログレスダイアログの進捗状態を示す文言を変更した。 ・Aboutダイアログの動作環境を示す項目名を変更した。 ・アラビア語だけ文言の表記順を変えてたんですが他の言語と同じにした。 [ 機能修正 ] ・操作可能になる前の最終確認処理を書庫を読み込んだ時とフォルダを読み込んだ時で統一した。 ・栞が存在する書庫またはフォルダを読み込んだ時に栞内容が反映されてなかったので修正した。 ・栞が存在する時に表示される保存を促すメッセージの表示条件に表示モードの差異を追加した。 ・拡張子が無いファイルとアイコンファイルは読み込まないようにした。 [ 機能追加 ] ・画像ファイルが存在しない書庫またはフォルダを読み込んだ時の処理を追加した。 画像ファイルが無かった事を知らせるメッセージを表示するようにしました。 既存機能の改良が主な目的です。 新機能は 画像ファイルが存在しない対象を読み込ませた時に、画像が存在しない、とお知らせするメッセージ表示機能です。

フリーウェア) 更新情報 Juice ver.4.3.9 公開

イメージ
表示に関する更新を行いました。 負荷の軽減と表示が崩れる問題の解消です。 これまでは画像ファイルを指定する度にDataGridViewをスクロールさせていました。 これが結構な負荷なので選択した画像ファイルがDataGridViewの表示範囲に収まらなくなった場合のみスクロールさせることにしました。 1枚表示で次の画像ファイルをめくり続けるか前の画像ファイルをめくり続けると効果が良く分かります。 意外とカッコいいと思うぞ。 絞り込みを解除した時に選択されていた画像ファイルを解除後も選択するのをやめました。 「解除」を初期化と捉えればファイルリストの先頭を指すのが正しいと考えたからです。 まあちょっと言い訳すれば解除後の選択がDataGridViewの最終ページになるばあい表示が壊れるって問題を解決できなかったんですけどね。 先頭を指せば問題は出ないので良いよね? 書庫またはフォルダの内容から「更新時刻で絞り込む」の開始日と終了日を取るように変更しました。 作成日が古い書庫を開いたのに基準となる初期値が当日では使い難いと気付いたからです。 もっと早く気づけよ抜け作がと思わなくもない、ごめんよー。 ただし開いたフォルダに当日(更新日)のファイルが内包されている場合は開始日と終了日が当日になるようにしました。 これはフォルダにファイルを貯めている場合に有効な機能を提供する為です。 ワンクリックで当日のファイルだけを絞り込めるようにしたかったのです。 手軽さは大事だよね。 タブの位置を変更した時にDataGridViewの表示が崩れる問題に対処しました。 スクロールバーが出ない枚数を読み込んでいる時に表示が崩れる場合がありました。 一旦選択を解除してから選択をやり直す事で解消されました。 修正 ・DataGridViewのスクロール頻度を減らした ・絞り込みを解除した時に登録されている先頭のファイルを選択するように戻した ・書庫またはフォルダを開いた時に「更新時刻で絞り込む」の開始日と終了日に設定する初期値の決め方を変更 ・タブの位置を変更した時にDataGridViewの表示が崩れる問題に対処

フリーウェア) 更新情報 Juice ver.4.3.8 公開

イメージ
メモリ関係の修正を行いました。 サムネイルをメモリに作る時に出ていた境界線エラーが出ないように修正しました。 並列処理で作成していたんですがデータを受け取る変数の型が並列処理に対応していませんでした。 データを受け取る変数の型を対応可能な型に変更しました。 その結果 8000 枚を超えるサムネイルを作成しても境界線エラーが出なくなりました。 解凍した画像データをメモリストリームへ読み込む方式を修正しました。 ウィンドウのクローズボタンを使って終了させた時の処理を修正しました。 大きな修正はこの三点になります。 最大の修正内容はサムネイルをメモリに作る時の修正です。 CPUをフルに使ってくれるようになったので作成が速くなりました。 作ったサムネイルを登録する時間の方が長くなったな。 登録可能な枚数に制限は掛けていませんがリソースが無くなると失敗します。 登録可能な枚数は使いながら把握していってください。 サムネイルをメモリに作成する機能が完成したので使い勝手は向上したと思います。 やったね! お楽しみください! 修正 ・解凍した画像データのメモリストリームへの読み込み方法を修正 ・絞り込みを解除した時に絞り込み中に選択されていた画像が選択されるように変更 ・サムネイルの作成に失敗した時にダイアログの表示状態を制御するフラグ変数を初期化するように修正 ・サムネイル作成時に Stream の一時変数を使うのをやめた ・サムネイルをメモリに作るかディスクに作るか判定する式にバグがあったので修正 ・サムネイルを作る時に配列の境界エラーが出る場合があったのでループを ForEach に変更 ・サムネイルを作る時に配列の境界エラーが出る場合があったのでデータを受け取る変数の型を変更 ・ウィンドウを閉じるボタンで終了させた時点で栞が存在している場合は確認ダイアログが表示されるように修正

フリーウェア) 更新情報 Juice ver.4.3.7 公開

イメージ
細々した調整を行いました。 最大の進化はフレーム無しウィンドウ表示を使っていると時々画像ファイルがタスクバーの下に隠れてしまう問題を解消できた事です。 操作性向上の一環で方向キーでもページをめくれるようにしました。 連続入力には対応させなかったので押しっぱなしにしても連続でページめくりは行われません。 1回押すごとに1ページ移動します。 今回の修正で問題点は全て解消されたと考えています。 お楽しみください。 機能追加 ・方向キーでページをめくれるようにした。 ・全てのフォームでダブルバッファリングを有効にした。 ・終了時にガーベジコレクションを実行するようにした。 機能修正 ・マウスホイールの制御をコントロールウィンドウに移動させた。 ・マウスボタンの制御をコントロールウィンドウに移動させた。 ・パネル表示ウィンドウのマウスホイール制御を修正。 ・ウィンドウ表示のマウスホイール制御を修正。 ・パネル表示ウィンドウのマウスボタン制御を修正。 ・ウィンドウ表示のマウスボタン制御を修正。 ・画像を表示する度にコントロールウィンドウを最前面に指定するように変更。 ・パネル表示で画像が表示される度に画像を最前面表示にしてタスクバーに隠れないようにした。

フリーウェア) 更新情報 Juice ver.4.3.6 公開

イメージ
長らく適切な修正方法が浮かばず放置していた複数表示モードの問題を修正できました。 メモリは足りているのに例外が出ている理由が分からなかったんだよねー。 ひとつのプロセスが保持できるGDIオブジェクト数を超過してウィンドウを作ろうとするのが問題になっていたんだよねー。 そこで1プロセスが保持できるGDIオブジェクト数の25%を制限値としました。 25%を超えた場合は開いている全ての複数表示ウィンドウを閉じるようにしました。 これまでは無制限にウィンドウを開いていたので1プロセスが保持できるGDIオブジェクト数の上限を越えていました。 それが例外を発生させていた原因です。 上限を1プロセスが保持できるGDIオブジェクト数の25%としたのはタスクバーの硬直を早期復帰させる為です。 25%までならタスクバーが固まっても短い時間で復帰できるのを確認できました。 複数のJuiceを起動し複数表示モードを実行した場合でも短い時間でタスクバーを動かせるようになりました。 画像ファイルの読み込み処理も意図していた方式とは違った実装になっていました。 読み込み処理で画像を読み込めるまでファイルリストを辿るように書いたと思ってたんですがねー。 画像読み込みに成功するかファイルリストに未表示画像が無くなるまで読み込み処理を繰り返すように修正しました。 この修正によって「見開き表示」と「時計状表示」で発生していた表示抜けが無くなりました。 今回の更新で落ちずに動くモノができた筈です。 やったぜ!! 存分にJuiceをお楽しみください。 機能追加 ・「動作環境」タブを追加した。 ・「環境設定」に「画像読み込み失敗を報告」を追加した。 機能変更 ・複数表示モードとスライドショーを同時利用可能に変更した。 ・メモリ使用量が倍増するでメモリへ解凍した時に解凍先メモリのクローン作製をやめた。 ・2枚表示と4枚表示で読み込めない画像があると表示可能な画像を読み飛ばしていたので読み込み方式を変更した。 ・「表示言語選択」「動作変更」「タブの配置」「環境設定」を「動作環境」タブに移動した。 ・画像の読み込みに失敗した時にメッセージボックスで報告するか報告しないか選択できるようにした。 ・サムネイル作成処理中に失敗してもファイルリストの最後まで作成...

フリーウェア) 更新情報 Juice ver.4.3.5 公開

イメージ
機能追加とバグ修正とソースコードの整理を行いました。 機能追加 登録されているファイルリストを逆順に表示する機能を追加しました。 バグ修正 書庫をディスクに解凍した場合、画像を表示した後で書庫を閉じると例外が発生するバグを修正しました。 画像を表示する時にファイルとして開いていたのでファイルがロックされてしまい終了時の解凍フォルダ削除処理が実行できなくなっていました。 画像ファイルを開く時にファイルストリームを使って開くようにして修正しました。 このバグ随分と前のバージョンから存在していたみたい。 メモリへの解凍ばかり使っていたので直すのが遅くなりました。 ソースコードの整理 これまで書庫をメモリに解凍した場合、書庫を閉じる時にガーベッジコレクションが実行されるようにはGC.Collect()を呼び出していました。 これって作法としては不味いらしいので使ったメモリの後片付け処理を変更しました。 MemoryStreamを保持するクラスとImageを保持するクラスを作り、共にIDisposableにしました。 using命令の中で使いたかったので読み込んだメモリを複製する為に両方ともIClonaleにしています。

フリーウェア) 更新情報 Juice ver.4.3.4 公開

イメージ
ソースコードの修正を行いました。 ソースコード変更 ・複数表示ウィンドウのサイズ決定処理を変更。 この変更によって表示可能領域内に収まる最大値をとれるようになりました。 ・複数表示ウィンドウの初期表示座標決定処理を変更。 この変更によって初期表示位置が表示可能領域の中央になりました。 今回の修正目標は複数表示ウィンドウのサイズを表示可能領域内に収まる最大値にする事でした。 隙間ができてしまうのが嫌だったので修正しました。 上手くできたと思います。 縦方向に長い画像の場合ウィンドウズの設定を「タスクバーを自動的に隠す」に変更すると表示サイズがその分大きくなります。

フリーウェア) 更新情報 Juice ver.4.3.3 公開

イメージ
ソースコードの変更と動作変更を行いました。 ソースコード変更 ・複数表示ウィンドウのサイズ決定処理を変更。 ・複数表示ウィンドウの初期表示座標決定処理を変更。 動作変更 ・複数表示ウィンドウとフレーム無しウィンドウ表示中に「画像を閉じる」を選択した場合フレーム無しウィンドウを閉じるように修正。 最大の変更点は複数表示ウィンドウが表示されている状態でフレーム無しウィンドウを表示させた場合の「画像を閉じる」の動き方です。 この状態は最後に表示したのがフレーム無しウィンドウとなるので最後に表示したフレーム無しウィンドウを閉じる事にしました。