C#勉強1作目

ページ名:CSharpPractice01

機能要件

  • シンプルな画像ビューア
  • ドラッグアンドドロップ、または右クリックメニューから画像を開く
  • 対応拡張子は別で作る作品を考慮し、一般的にweb公開される画像は対応したい

  jpg、png、bmp、tiff、webpあたりか?

  • 上部のメニューなどはなし、できればフレームレス
  • 拡大縮小(Ctrl+ホイール、マウスでスライド)

  初期はウィンドウにあわせて拡大縮小。アルゴリズムは軽め、画質重視の2種か。

  • マウスホイールで同フォルダの次の画像を開く

  前後のファイルは読み込みたい

  • 設定を保持できる

 

製造メモ

・正直何もわからんのでまずは「指定パスのファイルを読み込む」からか

 →Web系以外を触るのは大学以来である…。

 →できたが、開放処理がよくわからない。GCあるらしいしそもそも不要なのか?

  次の画像を読み込むとかし始めたら必要か?

  →前後のファイルを読み込んでおくはPictureBoxではなくキャッシュだと思われるので処理が異なる?

   →コーディング的にはオブジェクト変数に突っ込んでおくだけかもしれないが。要調査

・次はドラッグアンドドロップで読み込む…や等倍表示なのでマウスでスライド移動するとかだろうか

 →ドラッグアンドドロップ完了。

  解説サイトではArrowDrop=trueのみでOKが多かったが…、それだけではダメでイベント定義について理解した。

 →ファイルパス読み込み部分はコピペのままで動作

  引数のイベント配列からドロップされたファイルパスを取得し、Pictureboxのロケーションに渡すのみのようだ。

・今回多少なりとも画像処理を行う予定のため、Pictureboxは不向きの可能性がある?

 主にメモリだが、ちょっとしたことでもメモリを食うようであればダメかもしれない

 →裏でBitmapやGraphicsを使用した画像処理を行い、Pictureboxに放り込むことにしている。

  →マウス操作などだとカクカクした感じになる。なめらかに移動させる方法はあるか?ただ優先度は低か。

 

実施日・次回予定

2023年

・7/22:VSインストール。フォーム作成、コンソールに文字列出力

・7/29:フォーム操作。Pictureboxの基本。イベント定義など

    ファイル固定パス読み込み、ドラッグアンドドロップ読み込み

・8/5: ESCキーで終了。マウス左クリックで画像の表示範囲を移動

・8/11:ウィンドウサイズに応じて表示範囲を変更。Ctrl+マウスホイールで拡大縮小。

 

・次回:メモリ対策。ファイルからフォルダのファイル一覧読み込みなど

 

やりたいことリスト:

・右クリックメニュー

 ・ファイルの履歴

 ・設定

・ウィンドウズのメニューバーを削除

・設定

 

課題

・画像表示のマウス移動時になめらかに移動せずカクついた感じになる。描画回数の問題?

・画像サイズ変更でメモリを食い続ける。サイズを小さくしてもメモリ消費が増え続けているため処理がよくない。

シェアボタン: このページをSNSに投稿するのに便利です。

コメント

返信元返信をやめる

※ 悪質なユーザーの書き込みは制限します。

最新を表示する

NG表示方式

NGID一覧