午後わてんのブログ

ベランダ菜園とWindows用アプリ作成(WPFとC#)

複数の画像ファイルを一度にトリミングして保存するアプリPixtrimをつくった21 メモリの開放

前回は2日前

gogowaten.hatenablog.com

の続き

 

今度こそ保存実行時のメモリ使用量を減らすことができた…はず

 

f:id:gogowaten:20191023145623p:plain

ゲーム中のスクリーンショット画像
(MHF-Gことモンスターハンター フロンティア Gより)
をAlt+PrintScreenでクリップボードに入れて
その画像をクリップボードからPixtrimに109枚取り込んだところ
この時点でのPixtrimのメモリ使用量は78MB
感覚的にはかなり少ない感じ、500MBくらい使っていてもいい気がする(適当)
取り込んだ画像の大きさは1026x624ピクセル
切り取りの設定は
  • 位置がx,y=(1,23)
  • 大きさが1024x600
これでファイルとして保存(保存実行)する時のメモリ使用量が
前回だと処理が進むに連れてどんどん増えていって
500MBとか設定によっては1GBを超えていたのが
今回は200MB以下で130MBから30MBくらいを行ったり来たりするまでになった
 

f:id:gogowaten:20191023150351p:plain

保存実行中のスクリーンショット、この時は94MB
 

f:id:gogowaten:20191023150401p:plain

これも保存途中のスクリーンショットで38MB
 

f:id:gogowaten:20191023150410p:plain

保存完了直後には12MB
少ないのはいいけど少なすぎて逆に不安になるw
けど切り取りだけなら普通に使えている
 
画像の読み込みには画像ファイルからとクリップボードからを区別している
前回は画像ファイルからの処理だけ直して、テストも画像ファイルだけで済ませていたから直ったと勘違いしていた
プログラムの書き方が良くないのが原因だけど1年前の自分だから仕方ないね
でもめんどくさいから書き直しはしない、実際期待通りに動いているからね
 
2015年9月5日追記
クリップボードから取り込んだ画像を保存実行や自動保存した後に、リストにある画像を選択するとエラーで止まってしまう…
必要な物までDisposeしてメモリから削除していた模様
追記ここまで
 
 
Pixtrimダウンロード
ファイル名
Pixtrim1.8.26.0.zip (32ビットWindows用)
Pixtrim1.8.26.0_x64.zip (64ビットWindows用)
 
OneDrive
ヤフーボックス